AWS CloudFormation, ссылки параметров в тегах - PullRequest
2 голосов
/ 12 марта 2020

Я пытаюсь применить набор тегов к топике SNS c, и один из тегов ссылается на параметр. Ниже приведен фрагмент шаблона, который у меня есть (я уменьшил теги, чтобы выделить мою проблему)

AWSTemplateFormatVersion: 2010-09-09
Description: Deploys resources 

Parameters:
  MyParameter:
    Type: String
    Default: "testEnvironment"

Mappings:
  Mp1:
    Mp1-1:
      tags:
        - Key: key1
          Value: !Ref MyParameter

Resources:
  snsTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: snsTopic
      TopicName: snsTopic
      Tags: !FindInMap [Mp1, Mp1-1, tags]

Теперь, когда я запускаю это в CloudFormation, я получаю следующую ошибку:

Every entry in list for property Tags must be a map of String

Кто-нибудь знает, как это исправить или что я делаю неправильно?

1 Ответ

1 голос
/ 12 марта 2020

Вы не можете определить сопоставления таким образом. Документы четко говорят, что:

Вы не можете включать параметры , псевдопараметры или встроенные функции c в разделе Mappings.

Таким образом, ваше отображение должно быть

Mappings:

  Mp1:
    Mp1-1:
      tags:
        - Key: key1
          Value: MyValue # <-- No !Ref here, just fixed string

Если вы хотите !Ref MyParameter, то вы должны поместить его в ресурс AWS::SNS::Topic.

Resources:
  snsTopic:
    Type: AWS::SNS::Topic
    Properties:
      DisplayName: snsTopic
      TopicName: snsTopic
      Tags: 
        - Key: key1
          Value: !Ref MyParameter   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...