Mettre à jour - AWS CloudFormation

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Mettre à jour

Lorsque le développeur du modèle modifie les propriétés d'une ressource personnalisée dans le modèle et met à jour la pile, CloudFormation envoie une demande au fournisseur de ressources personnalisées avec la valeur RequestType définie surUpdate. Cela signifie que votre code de ressource personnalisé n'a pas à détecter les modifications des ressources, car il sait que ses propriétés ont changé en fonction du type de demandeUpdate.

Pour une présentation des ressources personnalisées et de leur fonctionnement, voirRessources personnalisées.

Demande

Les demandes de mise à jour contiennent les champs suivants :

RequestType

Update.

RequestId

Un ID unique pour la demande.

ResponseURL

La réponse URL identifie un compartiment S3 présigné qui reçoit les réponses du fournisseur de ressources personnalisées à AWS CloudFormation.

ResourceType

Type de ressource choisi par le développeur du modèle pour la ressource personnalisée dans le modèle. CloudFormation Le nom des types de ressources personnalisées ne doit pas dépasser 60 caractères. Il peut inclure des caractères alphanumériques, ainsi que les caractères suivants : _@-. Vous ne pouvez pas modifier le type pendant une mise à jour.

LogicalResourceId

Le nom, choisi par le développeur du modèle, (ID logique) de la ressource personnalisée dans le modèle AWS CloudFormation .

StackId

Le nom de la ressource Amazon (ARN) qui identifie la pile contenant la ressource personnalisée.

PhysicalResourceId

ID physique obligatoire, défini par custom resource provider, qui est unique pour ce fournisseur.

La valeur renvoyée pour un PhysicalResourceId peut modifier les opérations de mise à jour des ressources personnalisées. Si la valeur renvoyée est la même, on considère qu'il s'agit d'une mise à jour normale. Si la valeur renvoyée est différente, AWS CloudFormation reconnaît la mise à jour comme un remplacement et envoie une demande de suppression à l'ancienne ressource. Pour plus d’informations, consultez AWS::CloudFormation::CustomResource.

ResourceProperties

Les nouvelles valeurs de propriétés de ressources déclarées par le développeur du modèle dans le CloudFormation modèle mis à jour.

OldResourceProperties

Les valeurs des propriétés des ressources qui ont été précédemment déclarées par le développeur du modèle dans le CloudFormation modèle.

Exemple

{ "RequestType" : "Update", "RequestId" : "unique id for this update request", "ResponseURL" : "pre-signed-url-for-update-response", "ResourceType" : "Custom::MyCustomResourceType", "LogicalResourceId" : "name of resource in template", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10", "PhysicalResourceId" : "custom resource provider-defined physical id", "ResourceProperties" : { "key1" : "new-string", "key2" : [ "new-list" ], "key3" : { "key4" : "new-map" } }, "OldResourceProperties" : { "key1" : "string", "key2" : [ "list" ], "key3" : { "key4" : "map" } } }

Réponses

Réussite

Si le fournisseur de ressources personnalisées parvient à mettre à jour la ressource avec succès, il CloudFormation s'attend à ce que le statut soit défini SUCCESS dans la réponse.

Status

Doit indiquer SUCCESS.

RequestId

Un ID unique pour la demande. Cette valeur de réponse doit être copiée exactement à partir de la demande.

LogicalResourceId

Le nom, choisi par le développeur du modèle, (ID logique) de la ressource personnalisée dans le modèle AWS CloudFormation . Cette valeur de réponse doit être copiée exactement à partir de la demande.

StackId

Le nom de la ressource Amazon (ARN) qui identifie la pile contenant la ressource personnalisée. Cette valeur de réponse doit être copiée exactement à partir de la demande.

PhysicalResourceId

Cette valeur doit être un identifiant unique pour le fournisseur de ressources personnalisées et sa taille ne peut pas dépasser 1 Ko. La valeur doit être une chaîne non vide et doit être identique pour toutes les réponses pour la même ressource.

La valeur renvoyée pour un PhysicalResourceId peut modifier les opérations de mise à jour des ressources personnalisées. Si la valeur renvoyée est la même, on considère qu'il s'agit d'une mise à jour normale. Si la valeur renvoyée est différente, AWS CloudFormation reconnaît la mise à jour comme un remplacement et envoie une demande de suppression à l'ancienne ressource. Pour plus d’informations, consultez AWS::CloudFormation::CustomResource.

NoEcho

Facultatif. Indique s'il faut masquer la sortie de la ressource personnalisée lorsque celle-ci est récupérée à l'aide de la fonction Fn::GetAtt. Si ce paramètre est défini surtrue, toutes les valeurs renvoyées sont masquées par des astérisques (*****), à l'exception de celles stockées dans la Metadata section du modèle. AWS CloudFormation ne transforme, ne modifie ni n'expédie aucune information que vous incluez dans Metadata cette section. La valeur par défaut est false.

Pour plus d'informations sur l'utilisation NoEcho pour masquer des informations sensibles, consultez les N'incorporez pas d'informations d'identification dans vos modèles meilleures pratiques.

Data

Facultatif. Les paires nom-valeur définies par le custom resource provider à envoyer avec la réponse. Vous pouvez accéder aux valeurs fournies ici par nom dans le modèle avec Fn::GetAtt.

Important

Si les paires nom-valeur contiennent des informations sensibles, vous devez utiliser le champ NoEcho pour masquer la sortie de la ressource personnalisée. Dans le cas contraire, les valeurs sont visibles à travers APIs les valeurs des propriétés de cette surface (telles queDescribeStackEvents).

Exemple

{ "Status" : "SUCCESS", "RequestId" : "unique id for this update request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id", "Data" : { "keyThatCanBeUsedInGetAtt1" : "data for key 1", "keyThatCanBeUsedInGetAtt2" : "data for key 2" } }

Échec

Si la ressource ne peut pas être mise à jour avec un nouvel ensemble de propriétés, CloudFormation attendez-vous à ce que le statut soit défini surFAILED, ainsi qu'une raison de l'échec dans la réponse.

Status

Doit indiquer FAILED.

Reason

Décrit le motif d'une réponse à un échec.

RequestId

Un ID unique pour la demande. Cette valeur de réponse doit être copiée exactement à partir de la demande.

LogicalResourceId

Le nom, choisi par le développeur du modèle, (ID logique) de la ressource personnalisée dans le modèle AWS CloudFormation . Cette valeur de réponse doit être copiée exactement à partir de la demande.

StackId

Le nom de la ressource Amazon (ARN) qui identifie la pile contenant la ressource personnalisée. Cette valeur de réponse doit être copiée exactement à partir de la demande.

PhysicalResourceId

Cette valeur doit être un identifiant unique pour le fournisseur de ressources personnalisées et sa taille ne peut pas dépasser 1 Ko. La valeur doit être une chaîne non vide et doit être identique pour toutes les réponses pour la même ressource.

La valeur renvoyée pour un PhysicalResourceId peut modifier les opérations de mise à jour des ressources personnalisées. Si la valeur renvoyée est la même, on considère qu'il s'agit d'une mise à jour normale. Si la valeur renvoyée est différente, AWS CloudFormation reconnaît la mise à jour comme un remplacement et envoie une demande de suppression à l'ancienne ressource. Pour plus d’informations, consultez AWS::CloudFormation::CustomResource.

Exemple

{ "Status" : "FAILED", "Reason" : "Required failure reason string", "RequestId" : "unique id for this update request (copied from request)", "LogicalResourceId" : "name of resource in template (copied from request)", "StackId" : "arn:aws:cloudformation:us-west-2:123456789012:stack/mystack/5b918d10-cd98-11ea-90d5-0a9cd3354c10 (copied from request)", "PhysicalResourceId" : "custom resource provider-defined physical id" }