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, consultezAWS::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, consultezAWS::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 laMetadata
section du modèle. AWS CloudFormation ne transforme, ne modifie ni n'expédie aucune information que vous incluez dansMetadata
cette section. La valeur par défaut estfalse
.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, consultezAWS::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"
}