string - 在 Cloudformation 中使用字符串函数来获取 Lambda 代码

标签 string aws-lambda aws-cloudformation

我有一个大致如下所示的 cloudformation 片段:

"LambdaScale": {
  "Type": "AWS::Lambda::Function",
  "Properties": {
    ...
    "Code": {
      "S3Bucket": {
        {
          "Ref": "LambdaBucket"
        }
      },
      "S3Key": {
        "Fn::Join": [
          "/",
          [
            { 
              "Ref": "LambdaDirectoryKey"
            },
            "some_func.zip"
          ]
        ]
      }
    },
 ...
 }

但是当我尝试运行它时,出现以下错误:

An error occurred (ValidationError) when calling the CreateStack operation: Template format error: [/Resources/LambdaScale/Type/Code/S3Bucket] map keys must be strings; received a map instead

读到这里,我觉得 S3Bucket 和 S3Key 属性需要字符串文字,并且不支持字符串操作函数。这真的是真的吗?如果是这样,这对于在不同环境中部署这些模板来说是一个巨大的障碍。

是否有我没有考虑过的解决方法?感谢您的建议!

最佳答案

你有:

  "S3Bucket": {
    {
      "Ref": "LambdaBucket"
    }
  },

可能应该是:

  "S3Bucket": {
      "Ref": "LambdaBucket"
  },

关于string - 在 Cloudformation 中使用字符串函数来获取 Lambda 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48175648/

相关文章:

amazon-web-services - AWS 示例模板 : S3_Website_With_CloudFront_Distribution. 模板在启动执行 Route 53 域名时失败

string - 我可以访问从 Delphi CreateProcess 命令返回的字符串吗?

string - java - 如何在java中将String []解析为int []?

c - 为什么 strchr 需要一个 int 来查找 char?

asynchronous - AWS Lambda : Async Calls outside handler (initialization section, 调用 lambda)

firebase - 无法破坏 Firebase 连接,导致热 Lambda 由于 'Firebase App name ' [DEFAULT ]' already exists'

amazon-web-services - 批量处理AWS Lambda消息

amazon-web-services - ECS任务不断抛出错误 "DockerClientConfigError: unable to get BridgeIP for task in bridge mode"

amazon-web-services - 从 Lambda 中访问 S3 中的 CloudFormation 模板

java - 如何按每个字符串的第二个字符对字符串数组进行排序?