将值从cloudformation传递给用python编写的lambda函数

时间:2018-05-15 18:46:44

标签: python aws-lambda amazon-cloudformation

我在cloudformation模板中定义了我的lambda函数。此lambda函数使用cloudformation Ref:BucketName获取存储桶名称。我面临的问题是BucketName值是在下一行,并打破python代码,因为python是空间敏感的。有没有办法解决它?

      "ZipFile": {
        "Fn::Join": [
          "\n",
          [
            "import boto3",
            "import json",
            "def handler(event, context):",
            "    try:",
            "        s3BucketName=event['detail']['requestParameters']['bucketName']",
            "        if s3BucketName == '", {"Ref": "BucketName"},"':",
            "            return ",

2 个答案:

答案 0 :(得分:0)

由于你的" \ n"它会进入下一行。在你的阵列之前。它在数组中的每个字符串之间添加换行符,包括引用BucketName的位置。

Wojciech是对的;在这种情况下,YAML会更容易。但是如果你想坚持JSON,你可以摆脱" \ n"并用空字符串替换它。然后将\ n放在您真正需要分隔符的每一行。 e.g:

"import boto3\n",
"import json\n",

答案 1 :(得分:-1)

使用!Sub,当然是用yaml写的,所以写起来比较容易。 这是"多线串和SUB SYNTAX"中的一个很好的例子。部分:http://www.fischco.org/technica/2017/cloud-formation-sub/

诀窍是使用"!Sub |"构造