Crée une commande Cloud Assistant de type script Shell, PowerShell ou Bat.
Description de l'opération
Description de l'opération
- Vous pouvez créer les types de commandes suivants :
Scripts Bat pour les instances Windows (RunBatScript).
Scripts PowerShell pour les instances Windows (RunPowerShellScript).
Scripts Shell pour les instances Linux (RunShellScript).
- Vous pouvez spécifier le paramètre Timeout pour définir la période d'expiration maximale pour l'exécution de la commande sur les instances ECS. Si la commande expire, Cloud Assistant Agent termine de force le processus de la commande en annulant le PID de la commande.
Pour une exécution unique, après l'expiration de la commande, l'état d'exécution (InvokeRecordStatus) de la commande sur l'instance ECS spécifiée devient Failed.
- Pour une exécution planifiée :
La période d'expiration prend effet pour chaque enregistrement d'exécution.
Après l'expiration d'une exécution spécifique, l'état (InvokeRecordStatus) de l'enregistrement d'exécution devient Failed.
L'expiration d'une exécution précédente n'affecte pas l'exécution suivante.
Dans une région, vous pouvez conserver de 500 à 50 000 commandes Cloud Assistant. Vous pouvez également demander une augmentation de quota. Pour plus d'informations sur la façon de consulter et d'augmenter les quotas, consultez Gestion des quotas.
Vous pouvez spécifier le paramètre WorkingDir pour définir le chemin d'exécution de la commande. Pour les instances Linux, le chemin par défaut est le répertoire personnel de l'utilisateur root, à savoir /root. Pour les instances Windows, le chemin par défaut est le répertoire où se trouve le processus Cloud Assistant Agent, par exemple C:\Windows\System32.
Vous pouvez activer la fonctionnalité de paramètre personnalisé en spécifiant EnableParameter=true. Lorsque vous définissez CommandContent, vous pouvez définir des paramètres personnalisés au format {{parameter}} et transmettre des paires clé-valeur de paramètres personnalisés lors de l'exécution de la commande (InvokeCommand). Par exemple, si vous créez la commande echo {{name}} et transmettez la paire clé-valeur <name, Jack> via le paramètre Parameters lors de l'appel à InvokeCommand, le paramètre personnalisé est automatiquement remplacé. Une nouvelle commande echo Jack est générée et exécutée sur l'instance.
Testez maintenant
Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.
Test
Autorisation RAM
|
ecs:CreateCommand |
create |
*Command.
|
Aucune | Aucune |
Paramètres de requête
|
Paramètre |
Type |
Requis |
Description |
Exemple |
| RegionId |
string |
Oui |
L'identifiant de la région. Vous pouvez appeler DescribeRegions pour obtenir la liste la plus récente des régions. |
cn-hangzhou |
| Name |
string |
Oui |
Le nom de la commande. Tous les jeux de caractères sont pris en charge. Le nom ne peut pas dépasser 128 caractères. |
testName |
| Description |
string |
Non |
La description de la commande. Tous les jeux de caractères sont pris en charge. La description ne peut pas dépasser 512 caractères. |
testDescription |
| Type |
string |
Oui |
Le type de la commande. Valeurs valides :
|
RunShellScript |
| CommandContent |
string |
Oui |
Le contenu de la commande encodé en Base64.
|
ZWNobyAxMjM= |
| WorkingDir |
string |
Non |
Le répertoire dans lequel la commande est exécutée sur l'instance ECS. La valeur ne peut pas dépasser 200 caractères. Valeur par défaut :
Remarque
Si vous définissez ce paramètre sur un répertoire différent, assurez-vous que le répertoire existe sur l'instance. |
/home/user |
| Timeout |
integer |
Non |
La période d'expiration maximale pour l'exécution de la commande sur les instances ECS. Unité : secondes. Si la commande ne peut pas être exécutée pour une raison quelconque, une expiration se produit. Après l'expiration, le processus de la commande est terminé de force en annulant le PID de la commande. Valeur par défaut : 60. |
60 |
| EnableParameter |
boolean |
Non |
Indique si la commande utilise des paramètres personnalisés. Valeur par défaut : false. |
false |
| ContentEncoding |
string |
Non |
Le mode d'encodage du contenu de la commande (CommandContent). Valeurs valides :
Valeur par défaut : Base64. Remarque
Si une valeur non valide est spécifiée, elle est traitée comme Base64. |
PlainText |
| ClientToken |
string |
Non |
Le jeton client utilisé pour garantir l'idempotence de la requête. Vous pouvez utiliser le client pour générer le jeton, mais assurez-vous que le jeton est unique pour chaque requête. ClientToken prend uniquement en charge les caractères ASCII et ne peut pas dépasser 64 caractères. Pour plus d'informations, consultez Comment garantir l'idempotence. |
123e4567-e89b-12d3-a456-426655440000 |
| ResourceGroupId |
string |
Non |
L'identifiant du groupe de ressources auquel la commande appartient. |
rg-123****** |
| Launcher |
string |
Non |
Le programme d'amorçage pour l'exécution du script. La valeur ne peut pas dépasser 1 Ko. |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
| Tag |
array<object> |
Non |
Les balises. |
|
|
object |
Non |
Les balises. |
||
| Key |
string |
Non |
La clé de balise de la commande. Valeurs valides de N : 1 à 20. La clé de balise ne peut pas être une chaîne vide. Si vous utilisez une seule balise pour filtrer les ressources, le nombre de ressources avec la balise spécifiée ne peut pas dépasser 1000. Si vous utilisez plusieurs balises pour filtrer les ressources, le nombre de ressources auxquelles toutes les balises spécifiées sont attachées ne peut pas dépasser 1000. Si le nombre de ressources dépasse 1000, utilisez l'opération ListTagResources pour interroger les ressources. La clé de balise peut contenir jusqu'à 64 caractères et ne peut pas commencer par aliyun ou acs:. Elle ne peut pas contenir http:// ou https://. |
TestKey |
| Value |
string |
Non |
La valeur de balise de la commande. Valeurs valides de N : 1 à 20. La valeur de balise peut être une chaîne vide. La valeur de balise peut contenir jusqu'à 128 caractères et ne peut pas contenir http:// ou https://. |
TestValue |
Éléments de réponse
|
Élément |
Type |
Description |
Exemple |
|
object |
|||
| CommandId |
string |
L'identifiant de la commande. |
c-7d2a745b412b4601b2d47f6a768d**** |
| RequestId |
string |
L'identifiant de la requête. |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
Exemples
JSON format
{
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
Codes d'erreur
|
Code de statut HTTP |
Code d'erreur |
Message d'erreur |
Description |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | Cette API n'est pas prise en charge dans la région actuelle. |
| 400 | CmdParam.EmptyKey | You must specify the parameter names. | |
| 400 | CmdParam.InvalidParamName | Invalid parameter name. The name can contain only lowercase letters (a to z), uppercase letters (A to Z), numbers (0 to 9), hyphens (-), and underscores (_). | |
| 400 | CmdContent.DecodeError | The CommandContent can not be base64 decoded. | Le contenu de la commande ne peut pas être décodé en Base64. |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | Le paramètre WorkingDir spécifié n'est pas valide. |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | Le paramètre ClientToken spécifié ne respecte pas les exigences de format. Le paramètre doit contenir uniquement des caractères ASCII et ne peut pas dépasser 64 caractères. |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | Une erreur s'est produite lors de l'envoi de la requête. Réessayez plus tard. |
| 403 | CmdContent.ExceedLimit | The length of the command content exceeds the upper limit. | La longueur du contenu de la commande dépasse la limite supérieure. |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | La longueur du nom de la commande dépasse la limite supérieure. |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | La longueur de la description de la commande dépasse la limite supérieure. |
| 403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | Le nombre de commandes Cloud Assistant dans la région actuelle a dépassé la limite. |
| 403 | CmdParamCount.ExceedLimit | The maximum number of custom parameters is exceeded. | Le nombre de paramètres dépasse la quantité maximale configurable. |
| 403 | CmdParamName.ExceedLimit | The maximum length of a parameter name is exceeded. | La longueur du nom du paramètre personnalisé dans la commande dépasse la limite supérieure. |
| 403 | Operation.Forbidden | The operation is not permitted. | L'utilisateur RAM actuel ne dispose pas des autorisations nécessaires pour effectuer cette opération. |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | Les opérations ne sont pas autorisées pendant la création ou la suppression du groupe de ressources. |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | Le nom de la commande contient des caractères non valides. |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | La description de la commande contient des caractères non valides. |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | Le chemin d'exécution de la commande contient des caractères non valides. |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | La longueur du paramètre Launcher dépasse la limite de 1 Ko de caractères. |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | Le jeton client spécifié a déjà été utilisé. |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | La requête idempotente précédente est toujours en cours de traitement. Réessayez plus tard. |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | Les informations de région sont invalides. |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | Le groupe de ressources correspondant est introuvable. |
Consultez Codes d'erreur pour la liste complète.
Notes de version
Consultez Notes de version pour la liste complète.