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