Шаблон облачной информации Ошибка переменной среды Lambda - значение свойства Переменные должны быть объектом со строкой - PullRequest
0 голосов
/ 08 ноября 2018

Я хочу установить переменную окружения для моей лямбда-функции, используя сопоставления облачной информации.Поэтому я использую Fn::FindInMap, чтобы получить значение переменной из сопоставления.Но я получаю ошибку - Value of property Variables must be an object with String (or simple type) properties

Mappings:
  DomainResourceMapping:
    DUBCrossAccountIAMRole:
      beta: "xyz"
      prod: "act"

Resources:
  LambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: '...t'
      Runtime: java8
      CodeUri:
        Bucket: ...
        Key: ...
      Description: nn
      Timeout: 20
      MemorySize: 512
      Environment:
        Variables:
          DUB_CROSS_ACCOUNT_IAM_ROLE:
          - Fn::FindInMap:
            - DomainResourceMapping
            - DUBCrossAccountIAMRole
            - {Ref: Stage}

1 Ответ

0 голосов
/ 08 ноября 2018

Вы устанавливаете DUB_CROSS_ACCOUNT_IAM_ROLE как массив. Попробуйте

 Environment:
    Variables:
      DUB_CROSS_ACCOUNT_IAM_ROLE:
        Fn::FindInMap:
        - DomainResourceMapping
        - DUBCrossAccountIAMRole
        - {Ref: Stage}

или используя короткий синтаксис

 Environment:
    Variables:
      DUB_CROSS_ACCOUNT_IAM_ROLE: !FindInMap [ DomainResourceMapping, DUBCrossAccountIAMRole, !Ref Stage
...