我从 aws 控制台创建了一个 lambda 函数(见下文)。这是一个简单的函数,返回 5-100 之间的随机数。有用。我使用 node_modules 创建了 zip 文件并上传了该文件,因为它有一些依赖项。如果我想移动这个 lamda 代码,它依赖于内联 cloudformation 模板,这可能吗?
var moment = require('moment');
exports.handler = (event, context, callback) => {
var randomNumber = Math.floor(Math.random() * (100- 5+ 1)) + min;
callback(null, randomNumber + ' generated at ' + moment().format());
};
云信息模板
Description: learning lambda
somelambdaexample:
Type: AWS::Lambda::Function
Properties:
Description: process a signal
Role: someRole
Code:
ZipFile: !Sub |
exports.handler = function(event, context, callback) {
};
Timeout: 30
Runtime: nodejs12.x
最佳答案
如果您想将依赖项与 lambda 捆绑在一起,您有两个选择:
- 使用 dependencies 创建部署包 ,并将其上传到S3。然后在CloudFormation中,您可以specify S3中包的
S3Bucket
和S3Key
。 - 或创建 AWS::Lambda::LayerVersion和你的依赖。然后在您的 lambda 函数模板中,您可以使用 Layers 链接到该层。属性(property)。通过使用图层,您可以像现在一样使用
Code: ZipFile
来内联函数代码。
那么,回答你的问题:
if i wanted to move this lamda code, which has dependencies to inline cloudformation template, will it be possible?
是的,使用图层可以。
关于node.js - 如何编写具有 Node 依赖性的内联 lambda 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62766683/