1 つ以上の ECS インスタンスでクラウドアシスタントコマンドを作成して実行します。この操作は Shell、PowerShell、および Bat スクリプトをサポートし、スケジュール実行、カスタムパラメーター、コンテナ内での実行などの特徴を提供します。
操作説明
これは非同期操作です。リクエスト送信後、返されたコマンド ID または呼び出し ID を使用して DescribeInvocations または DescribeInvocationResults を呼び出し、実行結果をクエリできます。
事前準備
ターゲットインスタンスは実行中 (
Running) である必要があります。 DescribeInstances を呼び出してインスタンスステータスをクエリできます。- ターゲットインスタンスには クラウドアシスタントエージェント がプリインストールされている必要があります。 InstallCloudAssistant を呼び出してインストールし、 DescribeCloudAssistantStatus を呼び出してインストールステータスをクエリできます。
説明
2017 年 12 月 1 日以降にパブリックイメージから作成された ECS インスタンスには、デフォルトでクラウドアシスタントエージェントがプリインストールされています。
PowerShell コマンドを実行するには、ターゲット ECS インスタンスの Windows オペレーティングシステムで PowerShell モジュールが設定されていることを確認してください。
注意事項
-
単一のリージョンでは、500 から 50,000 のクラウドアシスタントコマンドを保持できます。クォータの引き上げをリクエストすることもできます。詳細については、「クォータ管理」を参照してください。
-
定期タスクの新しい特徴 (固定間隔での実行、指定された時間での 1 回限りの実行、および Cron ベースのスケジュール実行での年またはタイムゾーンの指定) をサポートするには、クラウドアシスタントエージェントが以下のバージョン以上である必要があります。
ClientNeedUpgradeエラーコードが返された場合は、「クラウドアシスタントエージェントのスペックアップまたはスペックアップの無効化」を参照して、エージェントを最新バージョンに更新してください。- Linux: 2.2.3.282 - Windows: 2.1.3.282 -
タイムゾーンを指定して Cron ベースの定期タスクを実行する場合、スケジュールされた実行時間は指定されたタイムゾーンに基づきます。タイムゾーンを指定しない場合、スケジュールされた実行時間は ECS インスタンスのシステムタイムゾーンに基づき、実行時間はインスタンスのシステム時間によって決定されます。ECS インスタンスの時間またはタイムゾーンが期待通りであることを確認してください。タイムゾーンの詳細については、「Linux インスタンスのタイムゾーンと NTP サービスの設定」または「Windows インスタンスの NTP サービスの設定」を参照してください。
推奨事項
- タイムアウト設定:
Timeoutパラメーターを指定することで、ECS インスタンスでのコマンド実行のタイムアウト期間の最大値を設定できます。コマンドがタイムアウトすると、クラウドアシスタントエージェントはプロセスを強制停止します。1 回限りの実行がタイムアウトした後、実行ステータス ( InvokeRecordStatus ) は実行エラー (Failed) に変わります。
スケジュールされた実行の場合、タイムアウト期間は各実行レコードに適用されます。前の実行でのタイムアウトは、次の実行には影響しません。タイムアウトが発生した後、実行ステータス ( InvokeRecordStatus ) は実行エラー (Failed) に変わります。
実行エラー: ターゲットインスタンスの異常なインスタンスステータス、ネットワーク例外、またはクラウドアシスタントエージェントの例外により、コマンドの実行が失敗する場合があります。このような場合、実行情報は生成されません。詳細については、「実行失敗の一般的なエラーと解決策」を参照してください。
カスタムパラメーター:
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 |
任意 |
コマンドを実行するスケジュール。実行間隔での実行 (レート式ベース)、指定された時間での 1 回限りの実行、および時刻ベースのスケジュール実行 (Cron 式ベース) の 3 つのスケジューリングメソッドがサポートされています。
|
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 |
任意 |
タグ。 |
||
| Key |
string |
任意 |
コマンド実行のタグキー。この値が指定されている場合、空の文字列にすることはできません。 単一のタグを使用してリソースをフィルターする場合、そのタグの下のリソース数は 1,000 を超えることはできません。複数のタグを使用してリソースをフィルターする場合、指定されたすべてのタグがアタッチされているリソースの数は 1,000 を超えることはできません。リソース数が 1,000 を超える場合は、 ListTagResources 操作を使用してリソースをクエリしてください。 タグキーは最大 64 文字で、 |
TestKey |
| Value |
string |
任意 |
コマンド実行のタグ値。値は空の文字列にすることができます。 タグ値は最大 128 文字で、http:// または https:// を含むことはできません。 |
TestValue |
| 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 を指定せずに、同じタグを持つインスタンスでコマンドをバッチ実行できます。 |
||
| Key |
string |
任意 |
インスタンスをフィルターするために使用されるタグキー。 注意事項:
|
TestKey |
| Value |
string |
任意 |
インスタンスをフィルター処理するために使用されるタグ値。 注意事項:
|
TestValue |
| TerminationMode |
string |
任意 |
タスクを停止するモード (手動停止またはタイムアウト時間による中断)。有効な値:
|
ProcessTree |
| Launcher |
string |
任意 |
スクリプト実行のブートストラッププログラム。長さは 1 KB を超えることはできません。 |
python3 -u {{ACS::ScriptFileName|Ext(".py")}} |
レスポンスフィールド
|
フィールド |
型 |
説明 |
例 |
|
object |
|||
| CommandId |
string |
コマンド ID。 |
c-7d2a745b412b4601b2d47f6a768d**** |
| InvokeId |
string |
呼び出し ID。 |
t-7d2a745b412b4601b2d47f6a768d**** |
| RequestId |
string |
リクエスト ID |
473469C7-AA6F-4DC5-B3DB-A3DC0DE3**** |
例
成功レスポンス
JSONJSON
{
"CommandId": "c-7d2a745b412b4601b2d47f6a768d****",
"InvokeId": "t-7d2a745b412b4601b2d47f6a768d****",
"RequestId": "473469C7-AA6F-4DC5-B3DB-A3DC0DE3****"
}
エラーコード
|
HTTP ステータスコード |
エラーコード |
エラーメッセージ |
説明 |
|---|---|---|---|
| 400 | RegionId.ApiNotSupported | The api is not supported in this region. | 指定されたリージョンでは API 呼び出しがサポートされていません。RegionId パラメーター値が正しいかどうかを確認してください。 |
| 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. | タグの数が最大値を超えています。この操作では最大 20 個のタグを指定できます。 |
| 400 | InvalidTagValue.Malformed | The specified Tag.n.Value is not valid. | 指定されたタグ値パラメーターが無効です。 |
| 400 | Duplicate.TagKey | The Tag.N.Key contain duplicate key. | タグ内に重複するキーが存在します。すべてのキーが一意であることを確認してください。 |
| 400 | InvalidTagKey.Malformed | The specified Tag.n.Key is not valid. | 指定されたタグキーパラメーターが無効です。 |
| 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. | 指定された冪等パラメーターが無効です。 |
| 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. | 指定された CommandContent パラメーター値を 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. | この操作は許可されていません。 |
| 403 | IdempotentParameterMismatch | The specified parameter has changed while using an already used clientToken. | リクエストパラメーターが、同じ 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. | 指定された RegionId が存在しません。このリージョンでプロダクトが利用可能かどうかを確認してください。 |
| 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. | Record にリソースグループが見つかりません。 |
| 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 パラメーターに指定されたバケットが存在しません。 |
完全なリストについては、「エラーコード」をご参照ください。
変更履歴
完全なリストについては、「変更履歴」をご参照ください。