AWS SAM-部署打包的模板时出现“遇到不受支持的属性CodeUri”错误

时间:2018-08-29 10:07:26

标签: amazon-web-services aws-sam

将CloudFormation模板迁移到AWS SAM方法后,在部署使用aws cloudformation package创建的模板时,在CloudFormation中出现错误

  

遇到不受支持的属性CodeUri

模板中包含的所有Lambda函数。

经过调查,很明显,没有从打包的模板中删除CodeUri属性,并且AWS::Lambda::Function类型不支持 CodeUri 属性,尽管适当的资源作为打包过程(这样打包就可以了)。

2 个答案:

答案 0 :(得分:2)

AWS SAM不删除 CodeUri 的原因是错误的资源类型-它应该是AWS::Serverless::Function而不是AWS::Lambda::Function

此更改之后, CodeUri 已从打包的模板中删除。

答案 1 :(得分:0)

您只需要使用CodeS3BucketS3Key键以正确的格式设置功能文件的路径即可:

Function:
  Type: 'AWS::Lambda::Function'
  Properties
    //other properties
    Code:
      S3Bucket: bucketName
      S3Key: myFunction.jar

文档:https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-function.html#cfn-lambda-function-code

就我而言,我正在使用现有资源(导入资源)创建一个堆栈,并且不支持带有{strong> CodeUri 的AWS::Serverless::Function类型。