[英]How do I update AWS Lambda function using CloudFormation template
[英]Can I update AWS Lambda function using CloudFormation template?
我想使用 CloudFormation 堆棧部署和更新 Lambda function。
我的堆棧創建工作流程是:
但是,我不知道如何使用模板更新 Lambda function。 我嘗試將新的 function 代碼上傳到 S3 並另存為新文件名。 並使用新文件作為參數來更新堆棧。 但是由於文件是 zip 文件,CloudFormation 無法檢測到任何更改。
我的問題:
AWS::Lambda::Function
還是AWS::Serverless::Function
資源? 我希望支持版本控制。謝謝你。
我的 CloudFormation 模板如下。
AWSTemplateFormatVersion: "2010-09-09"
Metadata: ""
Description: ""
Parameters:
LambdaS3:
Description: Api Gateway Authorizer Lambda S3Bucket Name
Type: String
Lambdafilename:
Description: Api Gateway Authorizer Lambda file Name (Latest)
Type: String
Transform: AWS::Serverless-2016-10-31
Resources:
# LambdaFunction:
# DeletionPolicy: "Delete"
# Type: "AWS::Lambda::Function"
# Properties:
# Description: ""
# FunctionName: "LambdaFunction"
# Handler: "lambda_function.lambda_handler"
# Code:
# S3Bucket: !Ref LambdaS3
# S3Key: !Sub '${Lambdafilename}.zip'
# MemorySize: 512
# Role: !GetAtt IAMRole2.Arn
# Runtime: "python3.8"
# Timeout: 20
# TracingConfig:
# Mode: "PassThrough"
LambdaFunction:
DeletionPolicy: "Delete"
Type: "AWS::Serverless::Function"
Properties:
Description: ""
FunctionName: "LambdaFunction"
Handler: "lambda_function.lambda_handler"
CodeUri:
Bucket: !Ref LambdaS3
Key: !Sub '${Lambdafilename}.zip'
MemorySize: 512
Role: !GetAtt IAMRole2.Arn
Runtime: "python3.8"
Timeout: 20
Tracing: "PassThrough"
AutoPublishAlias: live
DeploymentPreference:
Type: Linear10PercentEvery10Minutes
CodeUri
采用Version 。 因此,如果您的存儲桶是版本,則對其對象的任何更改,即使名稱相同,也會導致不同的版本。 因此,一旦您將新版本指定為參數,您的 function 就會得到更新。
在堆棧更新期間不會自動檢測到對 Amazon S3 中部署 package 的更改。 要更新 function 代碼,請更改模板中的 object 密鑰或版本。
不幸的是,除非您在每次更新時更改“AWS::Lambda::Function”資源上的“S3Key”,否則 CloudFormation 不會將其視為更改
當您應用 CloudFormation 堆棧更新時,它將檢查任何已部署資源的屬性中是否有更新。 當 Lambda 資源屬性(如 memory、超時、環境變量等)有更新時,沒有問題,因為 CloudFormation 會選擇這些更改並相應地更新。
當更新 Lambda function 代碼或其任何依賴項時,就會出現問題。 由於這些不是資源屬性更新,CloudFormation 無法知道是否有更改並更新受影響的組件。
當更新 Lambda function 代碼或其任何依賴項時,就會出現問題。 由於這些不是資源屬性更新,CloudFormation 無法知道是否有更改並更新受影響的組件。
請參考以下博客文章
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.