无法在篮子的几个地区部署相同的λa。 s3
我们使用模板部署lambda SAM CloudFormation.
我们想把lambda打包给篮子里 S3, 然后部署 AWS :: Serverless :: Function 在几个地区。
但是,Lambda代码必须位于部署它的同一个区域中。
AWS 事实上,记录了如何解决这个问题,创建了另一个lambda形式。
将zip文件复制到要部署它的每个区域以及新篮子 s3
在每个区域插入它。 然后你的lambda函数看起来像这样:
问题是它取决于ZIP文件的确切路径的知识。 在我们的情况下,我们使用模板的替换 SAM, 所以我们从未指定细分 S3 或钥匙 S3 - 相反,我们的功能如下所示:
部分 S3 根本没有提到模板中 CloudFormation. 和λ通过浏览桶看到的lambda有这样的名称:
这是因为在组装期间有许多类似的ZIP档案。 无情的模板模型对此进行解码,如果我们查看控制台 CloudFormation 在“模板”选项卡上,选择“View Processed Pattern”,我们将看到该字段 S3Bucket 和 S3Key 填写正确。
组件由B执行。 Azure DevOps 使用
我们指定段和区域的名称的任务,但再次不是ZIP文件的名称。
考虑到我没有在模板中访问Lampda的zip文件的确切路径,我应该如何将zip文件的副本自动化到本地篮子?
刷新:
我试图在之前立即在属性中添加下一行 CodeUri:
但是,在部署时,我收到以下错误:
我们想把lambda打包给篮子里 S3, 然后部署 AWS :: Serverless :: Function 在几个地区。
但是,Lambda代码必须位于部署它的同一个区域中。
AWS 事实上,记录了如何解决这个问题,创建了另一个lambda形式。
CopyZips
将zip文件复制到要部署它的每个区域以及新篮子 s3
LambdaZipsBucket
在每个区域插入它。 然后你的lambda函数看起来像这样:
MyFunction:
DependsOn: CopyZips
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket: !Ref 'LambdaZipsBucket'
S3Key: !Sub '${QSS3KeyPrefix}functions/packages/MyFunction/lambda.zip'
问题是它取决于ZIP文件的确切路径的知识。 在我们的情况下,我们使用模板的替换 SAM, 所以我们从未指定细分 S3 或钥匙 S3 - 相反,我们的功能如下所示:
MyFunction:
Type: 'AWS::Serverless::Function'
Properties:
CodeUri: ./MyCompany.Service.Broker.Public
部分 S3 根本没有提到模板中 CloudFormation. 和λ通过浏览桶看到的lambda有这样的名称:
ApiFunction-CodeUri-2342873t823t482346-97346583746583745.zip
这是因为在组装期间有许多类似的ZIP档案。 无情的模板模型对此进行解码,如果我们查看控制台 CloudFormation 在“模板”选项卡上,选择“View Processed Pattern”,我们将看到该字段 S3Bucket 和 S3Key 填写正确。
组件由B执行。 Azure DevOps 使用
AmazonWebServices.aws-vsts-tools.LambdaNETCoreDeploy.LambdaNETCoreDeploy@1
我们指定段和区域的名称的任务,但再次不是ZIP文件的名称。
考虑到我没有在模板中访问Lampda的zip文件的确切路径,我应该如何将zip文件的副本自动化到本地篮子?
刷新:
我试图在之前立即在属性中添加下一行 CodeUri:
Code:
S3Bucket: !Ref 'LambdaZipsBucket'
但是,在部署时,我收到以下错误:
Resource with id [ApiFunction] is invalid. property Code not defined for resource of type AWS::Serverless::Function
没有找到相关结果
已邀请:
1 个回复
莫问
赞同来自: