1 つ以上の ECS インスタンスでクラウドアシスタントコマンドを作成して実行します。Shell、PowerShell、Bat スクリプトタイプをサポートし、スケジュール実行、カスタムパラメーター、インスタンス上のコンテナ内での実行などの特徴を提供します。
操作説明
これは非同期操作です。リクエストが正常に送信された後、返されたコマンド ID または呼び出し ID を使用して DescribeInvocations または DescribeInvocationResults を呼び出し、実行結果をクエリできます。
事前準備
ターゲットインスタンスは実行中ステータスである必要があります。 DescribeInstances を呼び出してインスタンスステータスをクエリできます。
- ターゲットインスタンスには Cloud Assistant エージェント がインストールされている必要があります。 InstallCloudAssistant を呼び出してインストールでき、 DescribeCloudAssistantStatus を呼び出してインストールステータスをクエリできます。
説明
2017 年 12 月 1 日以降にパブリックイメージから作成された ECS インスタンスには、デフォルトで Cloud Assistant エージェントがプリインストールされています。
PowerShell コマンドを実行するには、ターゲット ECS インスタンスの Windows オペレーティングシステムに PowerShell モジュールが設定されていることを確認してください。
注意事項
-
単一のリージョンでは、500 から 50,000 の Cloud Assistant コマンドを保持できます。クォータの引き上げを申請することもできます。詳細については、「クォータ管理」をご参照ください。
-
定期タスクの新特徴(固定間隔での実行、指定時刻での 1 回限りの実行、年またはタイムゾーンを指定した Cron ベースのスケジュール実行)をサポートするには、Cloud Assistant エージェントのバージョンが以下のバージョン以降である必要があります。
ClientNeedUpgradeエラーコードが返された場合は、「Cloud Assistant エージェントのスペックアップまたはスペックアップの無効化」を参照してエージェントを最新バージョンに更新してください。- Linux: 2.2.3.282 - Windows: 2.1.3.282 -
タイムゾーンを指定して Cron ベースの定期タスクを実行する場合、スケジュールされた実行時間は指定されたタイムゾーンに基づきます。タイムゾーンを指定しない場合、スケジュールされた実行時間は ECS インスタンスのシステムタイムゾーンに基づき、実行時間はインスタンスのシステム時刻によって決定されます。ECS インスタンスの時刻またはタイムゾーンが期待通りであることを確認してください。タイムゾーンの詳細については、「Linux インスタンスのタイムゾーンと NTP サービスの設定」または「Windows インスタンスの NTP サービスの設定」をご参照ください。
推奨事項
- タイムアウト設定:
Timeoutパラメーターを指定して、ECS インスタンスでのコマンド実行の最大値タイムアウト期間を設定できます。コマンドがタイムアウトすると、Cloud Assistant エージェントはプロセスを強制停止します。1 回限りの実行がタイムアウトした後、実行ステータス ( InvokeRecordStatus ) は実行エラー (Failed) に変わります。
スケジュール実行の場合、タイムアウト期間は各実行回数レコードに適用されます。前の実行でのタイムアウトは次の実行に影響しません。タイムアウトが発生した後、実行ステータス ( InvokeRecordStatus ) は実行エラー (Failed) に変わります。
実行失敗: ターゲットインスタンスの異常なインスタンスステータス、ネットワーク例外、または Cloud Assistant エージェントの例外により、コマンドの実行に失敗する場合があります。コマンドの実行に失敗した場合、実行情報は生成されません。詳細については、「実行失敗の一般的なエラーと解決策」をご参照ください。
カスタムパラメーター:
EnableParameter=trueの場合、カスタムパラメーター特徴が有効になります。CommandContentをセットする際、{{parameter}}形式でカスタムパラメーターを定義し、コマンド実行時にカスタムパラメーターのキーと値のペアを渡すことができます。
今すぐお試しください
テスト
RAM 認証
|
アクション |
アクセスレベル |
リソースタイプ |
条件キー |
依存アクション |
|
ecs:RunCommand |
update |
*Instance。
|
|
なし |
リクエストパラメーター
|
パラメーター |
型 |
必須 / 任意 |
説明 |
例 |
| RegionId |
string |
必須 |
リージョン ID。 DescribeRegions を呼び出して最新のリージョンリストをクエリできます。 |
cn-hangzhou |
| ResourceGroupId |
string |
任意 |
コマンド実行のリソースグループ ID。このパラメーターが指定された場合:
|
rg-bp67acfmxazb4p**** |
| Name |
string |
任意 |
コマンド名。すべての文字セットがサポートされています。名前の長さは 128 文字を超えることはできません。 |
testName |
| Description |
string |
任意 |
コマンドの説明。すべての文字セットがサポートされています。説明の長さは 512 文字を超えることはできません。 |
テストスクリプトの説明 |
| Type |
string |
必須 |
コマンドタイプ。有効な値:
|
RunShellScript |
| CommandContent |
string |
必須 |
コマンドコンテンツ。コマンドコンテンツはプレーンテキストまたは Base64 エンコーディングが可能です。以下の点にご注意ください。
|
ZWNobyAxMjM= |
| WorkingDir |
string |
任意 |
ECS インスタンス上でのコマンドの作業ディレクトリ。値の長さは 200 文字を超えることはできません。 デフォルト値:
|
/home/user |
| Timeout |
integer |
任意 |
コマンド実行のタイムアウト時間。単位: 秒。 プロセスの問題、モジュールの欠落、またはクラウドアシスタントエージェントの欠落によりコマンドを実行できない場合にタイムアウトが発生します。タイムアウトが発生すると、コマンドプロセスは強制終了されます。 デフォルト値: 60。 |
3600 |
| EnableParameter |
boolean |
任意 |
コマンドにカスタムパラメーターが含まれるかどうかを指定します。 デフォルト値: false。 |
false |
| RepeatMode |
string |
任意 |
コマンドの実行モード。有効な値:
デフォルト値:
注意事項:
|
Once |
| Timed |
boolean |
任意 |
[非推奨] このパラメーターは非推奨です。このパラメーターを渡しても効果はありません。 |
true |
| Frequency |
string |
任意 |
コマンドを実行するスケジュール。3 つのスケジューリングメソッドがサポートされています。固定間隔での実行(レート式に基づく)、指定時刻での 1 回限りの実行、および時計ベースのスケジュール実行(Cron 式に基づく)です。
|
0 */20 * * * ? |
| Parameters |
object |
任意 |
カスタムパラメーターを含むコマンドを実行する際に渡すカスタムパラメーターのキーと値のペア。たとえば、コマンドコンテンツが カスタムパラメーターの数は 0 から 10 の範囲です。以下の点にご注意ください。
デフォルト値: 空(カスタムパラメーターは無効)。 |
{"name":"Jack", "accessKey":"LTAI*************"} |
| KeepCommand |
boolean |
任意 |
実行後にコマンドを保持するかどうかを指定します。有効な値:
デフォルト値: false。 |
false |
| ContentEncoding |
string |
任意 |
コマンドコンテンツ (
デフォルト値: PlainText。無効な値は PlainText として扱われます。 |
Base64 |
| Username |
string |
任意 |
ECS インスタンス上でコマンドを実行するためのユーザー名。値の長さは 255 文字を超えることはできません。
インスタンス上に存在する別のユーザーを指定してコマンドを実行することもできます。一般ユーザとしてクラウドアシスタントコマンドを実行する方が安全です。詳細については、「一般ユーザがクラウドアシスタントコマンドを実行するように設定する」をご参照ください。 |
test |
| WindowsPasswordName |
string |
任意 |
Windows インスタンス上でコマンドを実行するユーザーのパスワードの名前。値の長さは 255 文字を超えることはできません。 Windows インスタンス上でデフォルト以外のユーザー (System) としてコマンドを実行したい場合は、 説明
Linux インスタンスでルートユーザーとして、または Windows インスタンスで System ユーザーとしてコマンドを実行する場合、このパラメーターは必須ではありません。 |
axtSecretPassword |
| InstanceId |
array |
任意 |
ECS インスタンスのインスタンス ID 配列。配列の長さ: 1 ~ 100。 指定されたインスタンスのいずれかが実行条件を満たしていない場合、インスタンスを再選択する必要があります。 クォータセンターでクォータの引き上げを申請することもできます(クォータ名: コマンド実行でサポートされるインスタンスの最大数)。 |
i-bp185dy2o3o6neg**** |
|
string |
任意 |
ECS インスタンスの ID。 |
i-bp185dy2o3o6neg**** |
|
| Tag |
array<object> |
任意 |
タグペア。配列の長さ: 0 ~ 20。 |
|
|
object |
任意 |
タグペア。 |
||
| Value |
string |
任意 |
コマンド実行のタグ値。値は空文字列にすることができます。 値の長さは最大 128 文字で、 |
TestValue |
| Key |
string |
任意 |
コマンド実行のタグキー。この値が指定されている場合、空文字列にすることはできません。 単一のタグを使用してリソースをフィルター処理する場合、そのタグの下のリソース数は 1,000 を超えることはできません。複数のタグを使用してリソースをフィルター処理する場合、指定されたすべてのタグが付与されているリソースの数は 1,000 を超えることはできません。リソース数が 1,000 を超える場合は、 ListTagResources 操作を使用してリソースをクエリしてください。 キーの長さは最大 64 文字で、 |
TestKey |
| ContainerId |
string |
任意 |
コンテナ ID。64 ビットの 16 進数文字列のみがサポートされています。 注意事項:
説明
Linux コンテナでは Shell スクリプトのみがサポートされています。 |
ab141ddfbacfe02d9dbc25966ed971536124527097398d419a6746873fea**** |
| ContainerName |
string |
任意 |
コンテナ名。 注意事項:
説明
Linux コンテナでは Shell スクリプトのみがサポートされています。 |
テストコンテナ |
| ClientToken |
string |
任意 |
リクエストのべき等性を確保するために使用されるクライアントトークン。クライアントを使用してトークンを生成できますが、異なるリクエスト間でトークンが一意であることを確認する必要があります。ClientToken には ASCII 文字のみを含めることができ、長さは 64 文字を超えることはできません。詳細については、「べき等性を確保する方法」をご参照ください。 |
123e4567-e89b-12d3-a456-426655440000 |
| OssOutputDelivery |
string |
任意 |
コマンド実行出力の OSS 配信構成。
|
oss://testBucket/testPrefix |
| ResourceTag |
array<object> |
任意 |
インスタンスをフィルター処理するために使用されるタグ。配列の長さ: 0 ~ 20。InstanceId を指定せずに、同じタグを持つインスタンスでバッチ処理としてコマンドを実行できます。 |
|
|
object |
任意 |
インスタンスをフィルター処理するために使用されるタグ。InstanceId を指定せずに、同じタグを持つインスタンスでバッチ処理としてコマンドを実行できます。 |
||
| Value |
string |
任意 |
インスタンスをフィルター処理するために使用されるタグ値。 注意事項:
|
TestValue |
| Key |
string |
任意 |
インスタンスをフィルター処理するために使用されるタグキー。 注意事項:
|
TestKey |
| TerminationMode |
string |
任意 |
タスクを停止するモード(手動停止またはタイムアウトによる中断)。有効な値:
|
ProcessTree |
| Launcher |
string |
任意 |
スクリプト実行のブートストラッププログラム。値の長さは 1 KB を超えることはできません。 |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
|||
| RequestId |
string |
リクエスト ID |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
| CommandId |
string |
コマンド ID。 |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
呼び出し ID。 |
t-7d2a745b412b4601b2d47f6a768d**** |
例
成功レスポンス
JSONJSON
{
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****",
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****"
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | 現在のリージョンではこの API はサポートされていません。 |
| 400 | ResourceBusy.SlrCreation | The ServiceLinkedRole is still being created or has not taken effect yet. Please try again later. | |
| 400 | MissingParam.InstanceId | The parameter instanceId is missing or empty. | インスタンス ID が空です。 |
| 400 | NumberExceed.Tags | Ensure the number of tag parameters is not greater than 20. | 指定されたタグの数が上限を超えています。 |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | 指定されたタグ値が無効です。タグ値は最大 128 文字まで指定可能で、"http://" または "https://" を含めることはできません。 |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | タグに重複キーが存在します。キーを一意にしてください。 |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | 指定されたタグキーが無効です。タグキーは空または null にできず、最大 128 文字まで指定可能で、"aliyun" または "acs:" で始まることはなく、"http://" または "https://" を含めることはできません。 |
| 400 | MissingParameter.TagKey | You must specify Tag.N.Key. | タグキーを指定してください。 |
| 400 | InvalidContainerId.Malformed | The specified parameter ContainerId is not valid. | 指定されたコンテナ ID が無効です。 |
| 400 | InvalidContainerName.Malformed | The specified parameter ContainerName is not valid. | 指定されたコンテナ名が無効です。 |
| 400 | InvalidClientToken.Malformed | The specified parameter clientToken is not valid. | 指定された ClientToken パラメーターが形式要件を満たしていません。パラメーターには ASCII 文字のみを含める必要があり、長さは 64 文字を超えることはできません。 |
| 400 | CmdParam.EmptyKey | Command parameters can not be empty. | |
| 400 | CmdParam.InvalidParamName | A command parameter name is invalid. | |
| 400 | CmdContent.DecodeError | The CommandContent can not be base64 decoded. | コマンド内容を Base64 デコードできません。 |
| 400 | InvalidInstance.NotMatch | The specified instance type does not match the command. | |
| 400 | MissingParam.Frequency | The frequency must be specified when you create a timed task. | |
| 400 | InvalidParam.Frequency | The specified frequency is invalid. | |
| 400 | ParameterKey.Duplicate | The parameter may not contain duplicate keys. | パラメーター名を重複させることはできません。パラメーター名を確認して、再試行してください。 |
| 400 | Parameter.NotMatched | The parameters of creation do not match those of invocation. | 渡されたカスタムパラメーターが、コマンド作成時に定義されたカスタムパラメーターと一致しません。 |
| 400 | WindowsPasswordName.Missed | WindowsPasswordName must be specified when you create a Windows task. | |
| 400 | Parameter.Disabled | Parameters should not be passed when CreateCommand.EnableParameter is false. | コマンドのカスタムパラメーター特徴を無効にする場合、カスタムパラメーターを渡さないでください。 |
| 400 | InvalidParameter.WorkingDir | The specified parameter WorkingDir is not valid. | 指定された WorkingDir パラメーターが無効です。 |
| 400 | NumberExceed.ResourceTags | The maximum number of ResourceTags is exceeded. | |
| 400 | MissingParameter.ResourceTagKey | You must specify ResourceTag.N.Key. | |
| 400 | InvalidResourceTagKey.Malformed | The specified ResourceTag key is not valid. | |
| 400 | InvalidResourceTagValue.Malformed | The specified ResourceTag value is not valid. | |
| 400 | Duplicate.ResourceTagKey | The ResourceTag contains duplicate keys. | |
| 400 | InvalidResourceTag.InstanceNotFound | InstanceIds are not found by the specified ResourceTag. | |
| 400 | InvalidResourceTag.ConflictWithInstanceIds | The specified param ResourceTag conflicts with InstanceId. | |
| 400 | InvalidOssOutputDelivery.BucketInOtherRegion | The OSS bucket specified in the parameter OssOutputDelivery is in another region. | OssOutputDelivery パラメーターに指定された OSS バケットが異なるリージョンにあります。 |
| 400 | InvalidParameter.OssOutputDelivery | The specified parameter OssOutputDelivery is not valid. | 指定された OssOutputDelivery パラメーターが無効です。 |
| 400 | InvalidOssOutputDelivery.KeyPrefixMalformed | The prefix of the OSS key specified in the parameter OssOutputDelivery is not valid. | OssOutputDelivery パラメーターに指定されたプレフィックスが無効です。 |
| 500 | InternalError.Dispatch | An error occurred when you dispatched the request. | リクエストの送信中にエラーが発生しました。後でもう一度お試しください。 |
| 403 | InvalidOssOutputDelivery.BucketAccessDenied | The error message returned by the OSS API is: %s | |
| 403 | CmdContent.ExceedLimit | The length of the command content exceeds the upper limit. | コマンド内容の長さが上限を超えています。 |
| 403 | CmdName.ExceedLimit | The length of the command name exceeds the upper limit. | コマンド名の長さが上限を超えています。 |
| 403 | CmdDesc.ExceedLimit | The length of the command description exceeds the upper limit. | コマンドの説明の長さが上限を超えています。 |
| 403 | CmdCount.ExceedQuota | The total number of commands in the current region exceeds the quota. | 現在のリージョンにおけるクラウドアシスタントコマンドの数が制限を超えています。 |
| 403 | CmdParamCount.ExceedLimit | You've reached the limit on the count of command parameters. | |
| 403 | CmdParamName.ExceedLimit | The length of the command parameter name exceeds the limit. | コマンド内のカスタムパラメーター名の長さが上限を超えています。 |
| 403 | InstanceIds.ExceedLimit | The number of instance IDs exceeds the upper limit. | ターゲットインスタンスの数が上限を超えています。 |
| 403 | Invocation.ExceedQuota | The invocation quota in the current region has been reached for today. | 現在のリージョンにおけるコマンドを実行する操作の数が、本日のクォータに達しました。 |
| 403 | ParameterCount.ExceedLimit | The number of command parameters exceeds the maximum number that can be set. | カスタムパラメーターの数が上限を超えています。 |
| 403 | ParameterKey.ExceedLimit | The length of the specified parameter key exceeds the maximum length that can be set. | 指定されたパラメーターのキー長が許容される最大値を超えています。 |
| 403 | ParameterType.NotSupported | The type of parameter value is not supported. | |
| 403 | Username.ExceedLimit | The length of the username exceeds the upper limit. | ユーザー名の長さが上限を超えています。 |
| 403 | WindowsPasswordName.ExceedLimit | The length of the WindowsPasswordName exceeds the upper limit. | 指定された WindowsPasswordName パラメーターの長さが上限を超えています。 |
| 403 | ParameterStore.NotSupported | Parameter Store is not supported in this region. | |
| 403 | TemporaryAccessKey.Error | The temporary accessKey is invalid. | |
| 403 | ParameterStore.InvalidParameters | The parameter is invalid in Parameter Store. | コマンド内容で {{oos:?}} によって指定されたパラメーターが見つかりませんでした。 |
| 403 | ParameterStore.NoPermission | You have no access to Parameter Store. | |
| 403 | OperationDenied.BidOwnResource | Bid user can not own resource. | |
| 403 | Operation.Forbidden | The operation is not permitted. | 現在の RAM ユーザーには、この操作を実行する権限がありません。 |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | 指定されたクライアントトークンはすでに使用されています。 |
| 403 | IdempotentProcessing | The previous idempotent request(s) is still processing. | 以前の冪等リクエストはまだ処理中です。後でもう一度お試しください。 |
| 403 | InvalidStatus.ResourceGroup | You cannot perform an operation on a resource group that is being created or deleted. | リソースグループの作成中または削除中は、操作を実行できません。 |
| 403 | InvalidParameterCharacter.CommandName | The command Name contains illegal characters. | コマンド名に無効な文字が含まれています。 |
| 403 | InvalidParameterCharacter.CommandDescription | The command Description contains illegal characters. | コマンドの説明に無効な文字が含まれています。 |
| 403 | InvalidParameterCharacter.CommandWorkingDir | The command WorkingDir contains illegal characters. | コマンドの実行パスに無効な文字が含まれています。 |
| 403 | InvalidLauncher.LengthLimitExceeded | The length of the parameter Launcher exceeds the limit of 1 KB characters. | Launcher パラメーターの長さが 1 KB 文字の上限を超えています。 |
| 403 | InvalidParameterCharset.Parameters | The parameter Parameters contains illegal charset. | コマンドパラメーターに無効な文字セットが含まれています。 |
| 403 | CreateServiceLinkedRole.NoPermission | You do not have permission to create ServiceLinkedRole for output delivery. | 出力配信機能のサービスリンクロールを作成する権限がありません。 |
| 403 | InvalidTimeout.ExceedLimit | The specified parameter Timeout exceeds the upper limit. | |
| 404 | InvalidCmdType.NotFound | The specified command type does not exist. | |
| 404 | InvalidRepeatMode.NotFound | The specified repeat mode does not exist. | 指定されたコマンド実行メソッドが存在しません。 |
| 404 | InvalidRegionId.NotFound | The RegionId provided does not exist in our records. | リージョン情報が無効です。 |
| 404 | InvalidInstance.NotFound | The specified instance does not exist. | 指定されたインスタンスが存在しません。 |
| 404 | InvalidCmdId.NotFound | The specified command ID does not exist. | 指定された CommandId パラメーターが無効です。パラメーター値が正しいかどうかを確認してください。DescribeCommands 操作を呼び出して、利用可能なすべての CommandId 値をクエリできます。 |
| 404 | InvalidResourceGroup.NotFound | The ResourceGroup provided does not exist in our records. | 対応するリソースグループが見つかりません。 |
| 404 | InvalidTerminationMode.NotFound | The specified parameter TerminationMode does not exist. | 指定されたパラメーター TerminationMode が存在しません。 |
| 404 | InvalidOssOutputDelivery.BucketNotFound | The OSS bucket specified in the parameter OssOutputDelivery does not exist. | OssOutputDelivery パラメーターに指定されたバケットが存在しません。 |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。