Параметр ввода события расписания dynamic aws sam

Мы автоматизируем лямбда-выражение с помощью SAM для работы на Schedule Event. Мы используем YAML, но не можем понять, как использовать !Sub, чтобы сделать ввод динамическим.

Если вы читаете Сэм документация, в нем говорится, что Input должен быть JSON formatted string

У нас работает следующий код:

Events:
    Event1:
      Type: Schedule
      Properties:
        Schedule: rate(1 minute)
        Input: >-
          {
            "sqsUrl": "https://sqs.12344.url",
            "snsArn": "arn:val"
          }

Но нам нужно вставить динамические параметры в Input следующим образом:

Events:
    Event1:
      Type: Schedule
      Properties:
        Schedule: rate(1 minute)
        Input: >-
          {
            "sqsUrl": "https://sqs.${AWS::AccountId}.url",
            "snsArn": "arn:val"
          }

Мы пытались сделать это разными способами, используя! Sub, но при развертывании всегда не получается сказать, что это должен быть действительный JSON.

Как правильно использовать переменные в этой строке JSON?

Спасибо, отметка

3
0
769
2

Ответы 2

Итак, вы должны обернуть все значение Input (в вашем случае это json-строка и, конечно же, она должна быть обернута некоторой quotes) функцией !Sub.

Тогда это будет выглядеть так:

Input:
  Fn::Sub: '{"sqsUrl": "https://sqs.${AWS::AccountId}.url","snsArn": "arn:val"}'

Я использовал что-то вроде:

!Sub |
    {
      "sqsUrl": "https://sqs.${AWS::AccountId}.url",
      "snsArn": "arn:val"
    }

| (и> - среди прочего) определяют путь yaml обрабатывает разрывы строк в строке.

Другие вопросы по теме