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