CloudFormation lambda 函数给出本地代码
CloudFormation lambda function give local code
我正在尝试使用 CloudFormation 将 lambda 函数部署到 AWS。我的问题是,对于代码部分,我想提供一个本地文件而不是 s3 存储桶。这就是我目前所拥有的。
getStores:
Type: AWS::Lambda::Function
Properties:
Handler: index.get
Role: !GetAtt SyncGalaxyLambdaRole.Arn
Code:
ZipFile:
Fn::Join:
- "\n"
- - exports.get = function(event, context) {
- " console.log('hello world!');"
- "};"
Runtime: nodejs6.10
现在在 Code 部分我想给出一个通过 webpack 生成的本地文件的内容。我该怎么做?
您可以避免将 Javascript 代码与 cloudformation 内联。将来很难维护。您还可以使用 AWS SAM 将代码压缩到 s3 存储桶并用于 lambda 函数。这是 AWS 推荐的方法。 http://docs.aws.amazon.com/lambda/latest/dg/deploying-lambda-apps.html
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Hello World
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs4.3
CodeUri: ./
执行以下步骤创建堆栈。
- 安装和配置 AWS CLI。
aws s3 mb s3://[STACK_NAME]-app-artifact --region [REGION]
- 运行 你的 webpack 生成代码的步骤。
aws cloudformation package --template-file samTemplate.yaml --s3-bucket [STACK_NAME]-app-artifact --output-template-file NewSamTemplate.yaml
aws --region [REGION] cloudformation deploy --template-file NewSamTemplate.yaml --stack-name [STACK_NAME] --capabilities CAPABILITY_IAM
.
更新代码后,您只需重新运行上述步骤即可创建堆栈。
我正在尝试使用 CloudFormation 将 lambda 函数部署到 AWS。我的问题是,对于代码部分,我想提供一个本地文件而不是 s3 存储桶。这就是我目前所拥有的。
getStores:
Type: AWS::Lambda::Function
Properties:
Handler: index.get
Role: !GetAtt SyncGalaxyLambdaRole.Arn
Code:
ZipFile:
Fn::Join:
- "\n"
- - exports.get = function(event, context) {
- " console.log('hello world!');"
- "};"
Runtime: nodejs6.10
现在在 Code 部分我想给出一个通过 webpack 生成的本地文件的内容。我该怎么做?
您可以避免将 Javascript 代码与 cloudformation 内联。将来很难维护。您还可以使用 AWS SAM 将代码压缩到 s3 存储桶并用于 lambda 函数。这是 AWS 推荐的方法。 http://docs.aws.amazon.com/lambda/latest/dg/deploying-lambda-apps.html
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Hello World
Resources:
HelloWorldFunction:
Type: AWS::Serverless::Function
Properties:
Handler: index.handler
Runtime: nodejs4.3
CodeUri: ./
执行以下步骤创建堆栈。
- 安装和配置 AWS CLI。
aws s3 mb s3://[STACK_NAME]-app-artifact --region [REGION]
- 运行 你的 webpack 生成代码的步骤。
aws cloudformation package --template-file samTemplate.yaml --s3-bucket [STACK_NAME]-app-artifact --output-template-file NewSamTemplate.yaml
aws --region [REGION] cloudformation deploy --template-file NewSamTemplate.yaml --stack-name [STACK_NAME] --capabilities CAPABILITY_IAM
.
更新代码后,您只需重新运行上述步骤即可创建堆栈。