将 CloudFormation 模板迁移到 AWS SAM 方法后,在部署使用创建的模板时aws cloudformation package
,在 CloudFormation 中出现错误
遇到不受支持的属性 CodeUri
在模板中包含的所有 Lambda 函数上。
经过调查,很明显 CodeUri 属性没有从打包的模板中删除,并且AWS::Lambda::Function类型不支持CodeUri属性,尽管作为打包过程的一部分将适当的资源上传到 S3(因此打包这样的作品)。
将 CloudFormation 模板迁移到 AWS SAM 方法后,在部署使用创建的模板时aws cloudformation package
,在 CloudFormation 中出现错误
遇到不受支持的属性 CodeUri
在模板中包含的所有 Lambda 函数上。
经过调查,很明显 CodeUri 属性没有从打包的模板中删除,并且AWS::Lambda::Function类型不支持CodeUri属性,尽管作为打包过程的一部分将适当的资源上传到 S3(因此打包这样的作品)。
AWS SAM 不删除CodeUri的原因是资源类型不正确 - 它应该是AWS::Serverless::Function
而不是AWS::Lambda::Function
。
在此更改之后,CodeUri将从打包的模板中删除。
Code
您只需使用,S3Bucket
和S3Key
键以适当的格式设置函数文件的路径:
Function:
Type: 'AWS::Lambda::Function'
Properties
//other properties
Code:
S3Bucket: bucketName
S3Key: myFunction.jar
就我而言,我正在使用现有资源(导入资源)创建堆栈,并且不支持AWS::Serverless::Function
带有CodeUri的类型。