6

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

遇到不受支持的属性 CodeUri

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

经过调查,很明显 CodeUri 属性没有从打包的模板中删除,并且AWS::Lambda::Function类型不支持CodeUri属性,尽管作为打包过程的一部分将适当的资源上传到 S3(因此打包这样的作品)。

4

2 回答 2

11

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

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

于 2018-08-29T10:07:25.933 回答
0

Code您只需使用,S3BucketS3Key键以适当的格式设置函数文件的路径:

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

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

于 2020-09-02T08:46:42.180 回答