首页 > 解决方案 > 将值从 cloudformation 传递给用 python 编写的 lambda 函数

问题描述

我在 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 ",

标签: pythonaws-lambdaamazon-cloudformation

解决方案


由于您的数组之前的“\n”,它会出现在下一行。它在数组中的每个字符串之间放置一个换行符,包括您引用 BucketName 的位置。

沃伊切赫是对的;在这种情况下,YAML 对您来说会更容易。但是如果你想坚持 JSON,你可以去掉 "\n" 并用一个空字符串替换它。然后将 \n 放在您真正需要分隔符的每一行上。例如:

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

推荐阅读