Как использовать AWS значения параметров хранилища SSM в условных обозначениях шаблона Cloudformation? - PullRequest
7 голосов
/ 14 января 2020

Я настроил пару значений ключа в пользовательском интерфейсе хранилища параметров SSM AWS как my-ssm-key = ssm-value.

У меня есть следующий шаблон YAML для CF, построенный на Serverless:

service: redirect-test

provider:
  name: aws
  runtime: python3.8

  environment:
    ssm_value: '{{resolve:ssm:my-ssm-key:1}}'
    ssm_value_is_correct: !If [SSM_KEY_IS_CORRECT, yes, no]

functions:
  hello:
    handler: handler.hello

resources:
  Conditions:
    SSM_KEY_IS_CORRECT:
      !Equals
        - '{{resolve:ssm:my-ssm-key:1}}'
        - 'ssm-value'

При развертывании стека переменные среды устанавливаются в ssm_value = ssm-value и ssm_value_is_correct = no.

Почему условный оператор разрешается вместо «нет» вместо "да"? Как правильно использовать значения хранилища параметров SSM в условных выражениях?

Снимок экрана хранилища параметров: SSM param store screenshot Снимок экрана переменных Env: Env variables screenshot

1 Ответ

1 голос
/ 17 января 2020

Мне удалось решить проблему с помощью этого шаблона CF:

service: redirect-test

provider:
  name: aws
  runtime: python3.8

  environment:
    ssm_value: !Ref MySSMValue
    ssm_value_is_correct: !If [SSM_KEY_IS_CORRECT, yes, no]

functions:
  hello:
    handler: handler.hello

resources:
  Conditions:
    SSM_KEY_IS_CORRECT:
      !Equals
        - !Ref MySSMValue
        - ssm-value

  Parameters:
    MySSMValue:
      Description: My SSM Value
      Type: AWS::SSM::Parameter::Value<String>
      Default: my-ssm-key

Environment variables with correct expected values

...