Comment placer des balises sur les ressources suivantes à l'aide d'un modèle CloudFormation:
Pour une ressource AWS :: ApiGatewayV2 :: Api générique, j'ai essayé ce qui suit dans la section Ressources du modèle CloudFormation:
Tags: !Sub |
{
"TagKey1": "MyFirstTag",
"TagKey2": "${MySecondTagAsParameter}"
}
Dans CloudFormation Vue des événements d'Amazon Management Console, la ressource a échoué pour la raison suivante:
Échec de la validation de la propriété: la [valeur de la propriété {/ Tags} ne correspond pas au type {Map}]
J'ai recherché le Type, qui semblait être Json dans le documentation :
Tags: !Sub "{ \"TagKey1\" : \"MyFirstTag\", \"TagKey2\" : \"${MySecondTagAsParameter}\"}"
Ce qui m'a poussé à essayer ce qui suit:
Tags The collection of tags. Each tag element is associated with a given resource. Required: No Type: Json Update requires: No interruption Required: No
Cela n'a pas non plus fonctionné, ce qui m'a incité à essayer les littéraux YAML:
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
Cela n'a pas fonctionné non plus.
3 Réponses :
Ce qui suit a fait l'affaire:
Tags: TagKey1: MyFirstTag TagKey2: !Ref MySecondTagAsParameter
Vous étiez très proche de la solution de type json :
Tags: { "TagKey1": "MyFirstTag",
"TagKey2": !Ref MySecondTagAsParameter}
Pour moi, la syntaxe suivante a fonctionné:
Tags:
-
Key: "keyname1"
Value: "value1"
-
Key: "keyname2"
Value: "value2"
Source: Documentation AWS