Как разместить теги в ресурсах API Gateway V2 с помощью шаблона YAML CloudFormation - PullRequest
0 голосов
/ 18 июня 2020

Как разместить теги на следующих ресурсах с помощью шаблона CloudFormation:

  • AWS :: ApiGatewayV2 :: Api
  • AWS :: ApiGatewayV2 :: DomainName
  • AWS :: ApiGatewayV2 :: Stage

Для общего c AWS :: ApiGatewayV2 :: Api Resource Я пробовал следующее в разделе «Ресурсы» Шаблон CloudFormation:

MyApi:
  Type: 'AWS::ApiGatewayV2::Api'
  Properties:
    Name: MyApi
    ProtocolType: WEBSOCKET
    RouteSelectionExpression: $request.body.action
    ApiKeySelectionExpression: $request.header.x-api-key
    Tags:
      - Key: TagKey1
        Value: MyFirstTag
      - Key: TagKey2
        Value: !Ref MySecondTagAsParameter

В представлении «События CloudFormation» консоли управления Amazon произошел сбой ресурса по следующей причине:

Ошибка проверки свойства: [Значение свойства {/ Теги } не соответствует типу {Map}]

Я поискал Тип, который оказался Json в документации :

Tags
  The collection of tags. Each tag element is associated with a given resource.
  Required: No
  Type: Json
  Update requires: No interruption
  Required: No

Что заставило меня попробовать следующее:

 Tags: !Sub "{ \"TagKey1\" : \"MyFirstTag\", \"TagKey2\" : \"${MySecondTagAsParameter}\"}"

Это тоже не сработало, что побудило меня попробовать литералы YAML:

Tags: !Sub |
  {
    "TagKey1": "MyFirstTag",
    "TagKey2": "${MySecondTagAsParameter}"
  }

Это тоже не сработало.

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Следующее помогло:

Tags:
  TagKey1: MyFirstTag
  TagKey2: !Ref MySecondTagAsParameter
0 голосов
/ 18 июня 2020

Вы были очень близки к json -подобному решению:

      Tags: { "TagKey1": "MyFirstTag",
              "TagKey2": !Ref MySecondTagAsParameter}
...