我正在 AWS lambda 控制台中尝试此操作。
我已经在终端上安装了 npm install @aws-sdk/client-kinesis 并使用压缩文件并创建了一个具有 client-kinesis 的 lambda 层。
如果使用以下内容就可以了!
// ES5 example
const { KinesisClient, AddTagsToStreamCommand } = require("@aws-sdk/client-kinesis");
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
如果我使用以下内容,则会出现错误 -
//ES6+ example
import { KinesisClient, AddTagsToStreamCommand } from "@aws-sdk/client-kinesis";
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
"Runtime.UserCodeSyntaxError: SyntaxError: Cannot use import statement outside a module",
问题 -
- 如何从 AWS lambda 控制台进行这项工作?
- 用作ES5 vs ES6 有什么坏处吗?仅仅是语法还是还存在性能问题?
Thanks !
- 为了在 lambda 中实现此功能,您必须:
- Use NodeJS 版本 16 或更高版本(更新)适用于您的 Lambda 运行时
- Add
"type": "module"
到你的 package.json 文件中,以便告诉 Node 使用 ES6 模块而不是传统的 ES5/CommonJS 语法。
- 如果存在性能问题,那是极小的,我们不必担心! PS:我建议在更改运行时时测试 lambda 使用的 ES5/CJS/CommonJS 模块的兼容性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)