gpt4 book ai didi

amazon-web-services - 如何使用CloudFormation创建Lambda并仅在之后部署zip文件?

转载 作者:行者123 更新时间:2023-12-03 07:38:43 24 4
gpt4 key购买 nike

我有以下 CloudFormation 模板:

AWSTemplateFormatVersion: '2010-09-09'
Resources:
HostingBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: "my-hosting-bucket"
LambdaExecutionRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: lambda.amazonaws.com
Action: sts:AssumeRole
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
MyFunction:
Type: AWS::Lambda::Function
Properties:
Handler: index.handler
Runtime: nodejs12.x
Role: !GetAtt 'LambdaExecutionRole.Arn'
Timeout: 300
Code:
S3Bucket: !Ref 'HostingBucket'
S3Key: !Sub 'lambda/backend.zip'

但是在部署时出现以下错误:

Resource handler returned message: "Error occurred while GetObject. S3 Error Code: NoSuchKey. S3 Error Message: The specified key does not exist. (Service: Lambda, Status Code: 400, Request ID: SOME-REQUEST-ID)"

现在我明白为什么会发生错误:我的 lambda 正在尝试获取已部署的代码,但它还不存在,因为 S3 是在同一堆栈中创建的。可能我需要以下步骤:

  1. 创建 S3 存储桶(通过 CloudFormation)
  2. 将 lambda 代码部署到创建的 S3 存储桶
  3. 创建 lambda(通过 CloudFormation)

在将 Lambda 处理程序部署到 S3 之前,如何部署此 CloudFormation 模板?我想使用以下流程:

  1. 创建 S3 存储桶 lambda(通过 CloudFormation)
  2. 将 lambda 代码部署到创建的 S3 存储桶
  3. 让 lambda 获取最新代码(iirc 自动发生)

最佳答案

您通常会在管道中的构建期间将工件部署到 S3 中。

关于amazon-web-services - 如何使用CloudFormation创建Lambda并仅在之后部署zip文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75413992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com