AWS SAM - 'Encountered unsupported property CodeUri' 部署打包模板时出错
AWS SAM - 'Encountered unsupported property CodeUri' error when deploying packaged template
将 CloudFormation 模板迁移到 AWS SAM 方法后,部署使用 aws cloudformation package
创建的模板时,在 CloudFormation 中出现错误
Encountered unsupported property 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 不受支持。
将 CloudFormation 模板迁移到 AWS SAM 方法后,部署使用 aws cloudformation package
创建的模板时,在 CloudFormation 中出现错误
Encountered unsupported property 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 不受支持。