передача значения из облачной информации в лямбда-функцию, написанную на python - PullRequest
0 голосов
/ 15 мая 2018

Я определил свою лямбда-функцию в шаблоне облачной информации.Эта лямбда-функция принимает имя сегмента с помощью облачной информации 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 голосов
/ 16 мая 2018

Это идет на следующей строке из-за вашего "\ n" перед вашим массивом.Он помещает новую строку между каждой строкой в ​​вашем массиве, включая место ссылки на BucketName.

Войцех прав;YAML будет проще для вас в этом случае.Но если вы хотите придерживаться JSON, вы можете избавиться от "\ n" и заменить его пустой строкой.Затем поместите \ n в каждую строку, где вам действительно нужен разделитель.например:

"import boto3\n",
"import json\n",
0 голосов
/ 15 мая 2018

Используйте! Sub и, конечно, пишите в yaml, чтобы было проще писать.Вот очень хороший пример в разделе «Многострочные строки и вспомогательный синтаксис»: http://www.fischco.org/technica/2017/cloud-formation-sub/

хитрость заключается в использовании "! Sub |"строительство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...