amazon-web-services - 如何在 Typescript 中优雅地导入 AWS - Lambda?

标签 amazon-web-services typescript types aws-lambda

我正在 aws lambda 上构建一个 typescript 项目。由于 aws-sdk 已经带有类型定义,我希望它也包含 aws lambda 的定义。但我似乎必须单独安装 @types/aws-lambda 才能正常工作。

//import { Lambda } from "aws-sdk";
import { Context } from "aws-lambda";

module.exports.hello = async (event:any, context:Context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'function executed successfully!',
      input: event,
    }),
  };
};

我希望这样的事情是可能的:

import { Lambda } from "aws-sdk";

module.exports.hello = async (event:any, context:Lambda.Context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'function executed successfully!',
      input: event,
    }),
  };
};

但它不是 ;)

那么我该如何正确地做到这一点呢?

最佳答案

aws-sdk 不包含 lambda 的类型。因此,不幸的是,您将同时需要 aws-sdk@types/aws-lambda。此外,我建议在 package.jsondevDependencies 中声明 @types/aws-lambda

import * as AWS from "aws-sdk";
import { Context } from "aws-lambda";

module.exports.hello = async (event:any, context:Context) => {
  // eg. if you need a DynamoDB client
  // const docClient: AWS.DynamoDB.DocumentClient = new AWS.DynamoDB.DocumentClient({region: 'ap-southeast-2'});
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'function executed successfully!',
      input: event,
    }),
  };
};

关于amazon-web-services - 如何在 Typescript 中优雅地导入 AWS - Lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52289862/

相关文章:

amazon-web-services - AWS 示例模板 : S3_Website_With_CloudFront_Distribution. 模板在启动执行 Route 53 域名时失败

amazon-web-services - AWS EMR 引导操作作为 sudo

amazon-web-services - CloudFormation:Fn::GetAtt:不适用于 AWS::RDS::DBInstance 上的 Endpoint.Address

javascript - 缩小/丑化我的应用程序

node.js - 我在哪里可以存储 JSDoc typedef 信息以在项目之间共享?

c - 函数内部变量的变量类型

arrays - 向量、矩阵和数组数据类型之间有什么区别?

objective-c - 扩展无法在运行时访问通用参数

javascript - 在 Webpack 3 中禁用 tree-shaking

types - 达朗 : Const objects having value semantics cannot be used in rhs of assignment