Corrige un modèle pour éliminer la dérive de pile.
Limites : vous ne pouvez éliminer la dérive que sur les piles qui ont dérivé. Vous devez appeler l'opération DetectStackDrift pour effectuer une détection de dérive sur une pile, appeler l'opération GetStackDriftDetectionStatus pour interroger le statut de dérive de la pile afin de vous assurer qu'elle a dérivé, puis appeler l'opération UpdateStackTemplateByResources pour éliminer la dérive.
Dans cette rubrique, la dérive est éliminée pour une pile dont l'ID est 4a6c9851-3b0f-4f5f-b4ca-a14bf691****. La pile est déployée dans la région Chine (Hangzhou).
Débogage
Paramètres de requête
| Paramètre | Type | Obligatoire | Exemple | Description |
| Action | String | Oui | UpdateStackTemplateByResources | L'opération que vous souhaitez effectuer. Définissez la valeur sur UpdateStackTemplateByResources. |
| StackId | String | Oui | 4a6c9851-3b0f-4f5f-b4ca-a14bf691**** | L'ID de la pile. |
| DryRun | Boolean | Non | false | Indique s'il faut uniquement prévisualiser le modèle corrigé dans cette requête. Valeur par défaut : false. Valeurs valides :
Remarque Nous vous recommandons de définir le paramètre DryRun sur true pour prévisualiser le modèle corrigé. Si le contenu du modèle répond à vos attentes, définissez le paramètre DryRun sur false pour exécuter la correction. |
| RegionId | String | Oui | cn-hangzhou | L'ID de région de la pile. Vous pouvez appeler l'opération DescribeRegions pour interroger la liste des régions la plus récente. |
| ClientToken | String | Non | 123e4567-e89b-12d3-a456-42665544**** | Le jeton client utilisé pour garantir l'idempotence de la requête. Vous pouvez utiliser le client pour générer la valeur, mais vous devez vous assurer qu'elle est unique parmi différentes requêtes. Le jeton peut contenir jusqu'à 64 caractères et peut inclure des lettres, des chiffres, des traits d'union (-) et des underscores (_). Pour plus d'informations, consultez Comment garantir l'idempotence. |
| TemplateFormat | String | Non | JSON | Le format du modèle renvoyé. Valeur par défaut : JSON. Valeurs valides :
|
| LogicalResourceId.N | String | Non | WebServer | L'ID logique de la ressource N, utilisé pour filtrer les ressources. La correction du modèle s'applique uniquement aux ressources de la liste. Par défaut, toutes les ressources qui ont dérivé sont corrigées. Si la liste des ressources corrigées contient des ressources à l'état DELETED, ROS peut ajuster les ressources qui ne figurent pas dans la liste mais qui référencent les ressources supprimées de la liste afin de garantir l'exactitude du nouveau modèle. |
Pour plus d'informations sur les paramètres de requête communs, consultez Paramètres communs.
Paramètres de réponse
| Paramètre | Type | Exemple | Description |
| RequestId | String | B288A0BE-D927-4888-B0F7-B35EF84B6E6F |
L'ID de la requête.
|
| NewTemplateBody | String | {\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test2\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}} |
Le contenu du modèle après correction.
|
| OldTemplateBody | String | {\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test1\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}} |
Le contenu du modèle avant correction.
|
Exemples
Exemples de requêtes
http(s)://ros.aliyuncs.com/?Action=UpdateStackTemplateByResources
&RegionId=cn-hangzhou
&StackId=4a6c9851-3b0f-4f5f-b4ca-a14bf691****
&<Common request parameters>
Exemples de réponses réussies
Format XML
HTTP/1.1 200 OK
Content-Type:application/xml
<UpdateStackTemplateByResourcesResponse>
<RequestId>B288A0BE-D927-4888-B0F7-B35EF84B6E6F</RequestId>
<NewTemplateBody>{"ROSTemplateFormatVersion": "2015-09-01", "Resources": {"Vpc": {"Type": "ALIYUN::ECS::VPC", "Properties": {"VpcName": "test", "CidrBlock": "192.168.0.0/16", "Description": "test2"}}}, "Outputs": {"VpcId": {"Value": {"Fn::GetAtt": ["Vpc", "VpcId"]}}}}</NewTemplateBody>
<OldTemplateBody>{"ROSTemplateFormatVersion": "2015-09-01", "Resources": {"Vpc": {"Type": "ALIYUN::ECS::VPC", "Properties": {"VpcName": "test", "CidrBlock": "192.168.0.0/16", "Description": "test1"}}}, "Outputs": {"VpcId": {"Value": {"Fn::GetAtt": ["Vpc", "VpcId"]}}}}</OldTemplateBody>
</UpdateStackTemplateByResourcesResponse>
Format JSON
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "B288A0BE-D927-4888-B0F7-B35EF84B6E6F",
"NewTemplateBody" : "{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test2\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}}",
"OldTemplateBody" : "{\"ROSTemplateFormatVersion\": \"2015-09-01\", \"Resources\": {\"Vpc\": {\"Type\": \"ALIYUN::ECS::VPC\", \"Properties\": {\"VpcName\": \"test\", \"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test1\"}}}, \"Outputs\": {\"VpcId\": {\"Value\": {\"Fn::GetAtt\": [\"Vpc\", \"VpcId\"]}}}}"
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, visitez le Centre d'erreurs de l'API.
| Code d'état HTTP | Code d'erreur | Message d'erreur | Description |
|
400
|
StackDriftDetectionNotAvailable
|
There is no complete drift detection for stack ({ID}).
|
Le message d'erreur indique qu'aucune détection de dérive n'a été effectuée sur la pile. ID représente l'ID de la pile.
|
|
400
|
StackAlreadyInSync
|
This is not need to correct stack drifts, stack ({ID}) is already in sync.
|
Le message d'erreur indique qu'aucune dérive n'existe et que la correction du modèle n'est pas nécessaire. ID représente l'ID de la pile.
|
|
400
|
CorrectStackDriftsFailure
|
{reason}
|
Le message d'erreur indique que la pile ne peut pas être corrigée. reason indique la raison spécifique.
|
|
404
|
StackNotFound
|
The Stack ({name}) could not be found.
|
Le message d'erreur indique que la pile spécifiée n'existe pas. name représente le nom ou l'ID de la pile.
|
|
404
|
ResourceNotFound
|
The Resource ({name}) could not be found in Stack {stack}.
|
Le message d'erreur indique que la ressource spécifiée n'existe pas dans la pile spécifiée. name représente le nom de la ressource, et stack représente le nom ou l'ID de la pile.
|