1つ以上のElastic Compute Service (ECS) インスタンスでシェル、PowerShell、またはバッチコマンドを実行します。
説明
CreateCommandおよびInvokeCommandとは異なり、RunCommandを使用して、1つのリクエスト内でコマンドを作成および実行できます。
この操作を呼び出すときは、次の項目に注意してください。
- コマンドを実行するECSインスタンスは、仮想プライベートクラウド (VPC) のインスタンスである必要があります。
- インスタンスは実行中 (
実行中
) 状態である必要があります。 - The Cloud Assistant client is installed on the instance. 詳細については、「InstallCloudAssistant」をご参照ください。
- WindowインスタンスでPowerShellコマンドを実行する前に、WindowsインスタンスがPowerShellモジュールと共にインストールされていることを確認してください。
- ECSインスタンスでコマンドが繰り返し実行されるスケジュールは、UTCのインスタンスのシステム時間に基づいて指定する必要があります。 ECSインスタンスの時間またはタイムゾーンがビジネスニーズを満たしていることを確認します。 タイムゾーンの詳細については、「CentOS 6を実行するECSインスタンスのNTPサービスの設定」または「WindowsインスタンスのNTPサービスの設定」をご参照ください。
TimeOut
パラメーターを指定して、インスタンスのコマンド実行のタイムアウト期間を設定できます。 実行がタイムアウトすると、Cloud Assistantはプロセスを強制的に停止します。- 1回限りの実行がタイムアウトすると、コマンドの実行状態 (InvokeRecordStatus) がFailedになります。
- 繰り返し実行の場合、タイムアウト期間は実行ごとに有効になります。 各実行のタイムアウトは、次の実行には影響しません。 発生がタイムアウトすると、コマンドの実行状態 (InvokeRecordStatus) がFailedになります。
- インスタンスステータスの例外、ネットワークの例外、またはCloud Assistantクライアントの例外により、コマンドの実行が失敗する場合があります。 実行が失敗した場合、実行情報は生成されません。
EnableParameter
をtrueに設定すると、カスタムパラメーター機能が有効になります。CommandContent
パラメーターを設定すると、{{parameter}}
形式でカスタムパラメーターを定義できます。 次に、コマンドが実行されると、カスタムパラメータのキーと値のペアが渡されます。
- 各リージョン内では、ECSの使用状況に基づいて、毎日最大100〜10,000のCloud Assistantコマンドを保持し、最大2,000〜200,000のCloud Assistantコマンドを実行できます。 DescribeAccountAttributeを呼び出して、クォータを照会できます。 チケットを起票して、保持できるCloud Assistantコマンドの最大数と毎日実行できるCloud Assistantコマンドの最大数を変更することもできます。
デバッグ
リクエストパラメーター
パラメーター | データ型 | 必須/任意 | 例 | 説明 |
---|---|---|---|---|
操作 | String | 必須 | RunCommand |
実行する操作です。 値をRunCommandに設定します。 |
RegionId | String | 必須 | cn-hangzhou |
インスタンスが配置されているリージョンのID。 DescribeRegions を呼び出して、最新のリージョンリストをクエリできます。 |
パラメーター名 | String | 任意 | testName |
コマンドの名前。 名前はすべての文字セットをサポートし、長さは最大128文字です。 |
説明 | String | 任意 | testDescription |
コマンドの説明。 説明はすべての文字セットをサポートし、長さは最大512文字です。 |
データ型 | String | 必須 | RunShellScript |
コマンドの言語タイプ。 設定可能な値は以下のとおりです。
|
CommandContent | String | 必須 | ZWNobyAxMjM= |
コマンドの内容。 コマンドの内容は、平文またはBase64-encodedです。 次の项目に注意してください。
|
WorkingDir | String | 任意 | /ホーム / |
ECSインスタンス上のコマンドの作業ディレクトリ。 デフォルト値:
|
Timeout | Long | 任意 | 3600 |
コマンド実行のタイムアウト時間。 (単位:秒) A timeout error occurs when a command cannot be run because the process slows down or because a specific module or the Cloud Assistant client does not exist. 実行がタイムアウトすると, コマンド処理が強制終了されます。 デフォルト値: 60。 |
EnableParameter | Boolean | 任意 | false |
コマンドにカスタムパラメーターを含めるかどうかを指定します。 規定値: false |
RepeatMode | String | 任意 | 一度 |
コマンドの実行モード。 設定可能な値は以下のとおりです。
デフォルト値:
次の项目に注意してください。
|
Timed | Boolean | 任意 | true |
コマンドを定期的に実行するかどうかを指定します。 設定可能な値は以下のとおりです。
規定値: false |
Frequency | String | 任意 | 0 */20 * * * * |
コマンドの繰り返し実行が行われるスケジュール。 次の项目に注意してください。
|
Parameters | Map | 任意 | null |
コマンドにカスタムパラメータを含めることができるときに渡されるカスタムパラメータのキーと値のペア。 たとえば、コマンドの内容が カスタムパラメータの数: 0〜10。 次の项目に注意してください。
このパラメーターはデフォルトで空となります。 このパラメーターを空のままにして、カスタムパラメーター機能を無効にできます。 |
KeepCommand | Boolean | 任意 | false |
実行後にコマンドを保持するかどうかを指定します。 設定可能な値は以下のとおりです。
規定値: false |
ContentEncoding | String | 任意 | Base64 |
コマンドコンテンツ (
デフォルト値: PlainText。 このパラメーターの指定された値が無効な場合、デフォルトではPlainTextが使用されます。 |
Username | String | 任意 | root |
ECSインスタンスでコマンドを実行するために使用されるユーザー名。
ECSインスタンスに既に存在する他のユーザーを指定してコマンドを実行することもできます。 通常のユーザーとしてCloud Assistantコマンドを実行する方が安全です。 詳細については、「Cloud Assistantコマンドを実行するための通常ユーザーの設定」をご参照ください。 |
WindowsPasswordName | String | 任意 | axtSecretPassword |
Windowsインスタンスでコマンドを実行するために使用されるパスワードの名前。 既定のシステムユーザー以外のユーザー名を使用してWindowsインスタンスでコマンドを実行する場合は、WindowsPasswordNameパラメーターと 注 Linuxインスタンスのルートユーザー名またはWindowsインスタンスのシステムユーザー名を使用してコマンドを実行する場合、WindowsPasswordNameパラメーターを指定する必要はありません。
|
<td class="en-UStry align-left colsep-1 rowsep-1"> InstanceId.N </td> | String | 必須 | i-bp185dy2o3o6neg **** |
コマンドを実行するインスタンスNのID。 Nの有効値: 1 ~ 50。 複数のインスタンスが指定され、そのうちの1つがコマンドの実行条件を満たさない場合、呼び出しは失敗し、条件を満たすインスタンスのIDを指定する必要があります。 |
レスポンスパラメーター
パラメーター | データ型 | 例 | 説明 |
---|---|---|---|
RequestId | String | 473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E |
リクエストの ID です。 |
CommandId | String | c-7d2a745b412b4601b2d47f6a768d **** |
コマンドのID。 |
InvokeId | String | t-7d2a745b412b4601b2d47f6a768d **** |
実行のID。 |
例
リクエストの例
https://ecs.aliyuncs.com/?Action=RunCommand
&CommandContent='echo hello'
&InstanceId.1=i-bp185dy2o3o6neg ****
&InstanceId.2=i-bp541dc26ko6dd5 ****
&名前=テスト
&RegionId=cn-hangzhou
&タイプ=RunShellScript
&ユーザー名=ルート
&<共通リクエストパラメーター>
正常に処理された場合のレスポンス例
XML
形式
HTTP/1.1 200 OK
Content-Type:application/xml
<RunCommandResponse>
<RequestId>E69EF3CC-94CD-42E7-8926-F133B86387C0</RequestId>
<CommandId>c-7d2a745b412b4601b2d47f6a768d ****</CommandId>
<InvokeId>t-7d2a745b412b4601b2d47f6a768d ****</InvokeId>
</RunCommandResponse>
JSON
形式
HTTP/1.1 200 OK
Content-Type:application/json
{
"RequestId" : "E69EF3CC-94CD-42E7-8926-F133B86387C0" 、
"CommandId" : "c-7d2a745b412b4601b2d47f6a768d ****" 、
"InvokeId" : "t-7d2a745b412b4601b2d47f6a768d ****"
}
エラーコード
HTTP ステータスコード | エラーコード | エラーメッセージ | 説明 |
---|---|---|---|
400 | RegionId.ApiNotSupported | The api is not supported in this region. | 指定されたリージョンで操作を呼び出すことができない場合に返されるエラーメッセージ。 RegionIdパラメーターが有効かどうかを確認します。 |
403 | InvalidCmdType.NotFound | 指定されたコマンドタイプは存在しません。 | The error message returned because the specified Type parameter does not exist. |
403 | CmdContent.ExceedLimit | コマンドコンテンツの長さが上限を超えています。 | コマンドの内容が512文字を超えた場合に返されるエラーメッセージ。 |
403 | CmdName.ExceedLimit | コマンド名の長さが上限を超えています。 | コマンド名の長さが128文字を超えた場合に返されるエラーメッセージ。 |
403 | CmdDesc.ExceedLimit | コマンド記述の長さが上限を超えています。 | コマンドの説明が512文字を超えた場合に返されるエラーメッセージ。 |
403 | CmdCount.ExceedQuota | 現在のリージョンのコマンドの総数がクォータを超えています。 | The error message returned because the maximum number of Cloud Assistant commands in the specified region has been reached. |
403 | CmdParam.EmptyKey | コマンドパラメータを空にすることはできません。 | カスタムパラメーターがコマンドで渡されない場合に返されるエラーメッセージ。 |
403 | CmdParam.InvalidParamName | コマンドパラメーター名が不正です。 | コマンド内のカスタムパラメーターの名前が無効な場合に返されるエラーメッセージ。 |
403 | CmdParamCount.ExceedLimit | コマンドパラメーターの数の制限に達しました。 | コマンドで指定されたカスタムパラメーターの数が上限を超えた場合に返されるエラーメッセージ。 |
403 | CmdParamName.ExceedLimit | コマンドパラメーター名の長さの制限に達しました。 | カスタムパラメーター名の長さが上限を超えた場合に返されるエラーメッセージ。 |
403 | InvalidInstance.NotMatch | 指定されたインスタンスタイプがコマンドと一致しません。 | 指定されたコマンドを指定されたECSインスタンスで実行できない場合に返されるエラーメッセージ。 インスタンスの状態がCloud Assistantコマンドの実行条件を満たしているかどうかを確認します。 |
403 | MissingParam. 周波数 | 時間指定タスクを作成するときは、頻度を指定する必要があります。 | Timedをtrueに設定したときにFrequencyパラメーターが指定されていない場合に返されるエラーメッセージ。 |
403 | InvalidParam. 周波数 | 指定された周波数は無効です。 | 指定されたFrequencyパラメーターが無効な場合に返されるエラーメッセージ。 |
403 | InstanceIds.ExceedLimit | インスタンスIDの数が上限を超えています。 | 50を超えるインスタンスIDが指定されている場合に返されるエラーメッセージ。 |
403 | Invocation.ExceedQuota | 現在のリージョンの呼び出しクォータに達しました。 | 指定されたリージョンでのコマンド実行の最大数に達した場合に返されるエラーメッセージ。 |
403 | ユーザー名ExceedLimit | ユーザー名の長さが上限を超えています。 | ユーザー名の長さが上限を超えた場合に返されるエラーメッセージ。 |
403 | 操作禁止 | 操作は許可されていません。 | 操作がサポートされていない場合に返されるエラーメッセージ。 |
404 | InvalidRepeatMode.NotFound | 指定された繰り返しモードは存在しません。 | 指定されたRepeatModeパラメーターが存在しない場合に返されるエラーメッセージ。 |
404 | InvalidInstance.NotFound | 指定されたインスタンスは存在しません。 | 指定された ECS インスタンスが存在しない場合に返されるエラーメッセージ。 |
404 | InvalidCmdId.NotFound | 指定されたコマンドIDは存在しません。 | 指定されたCommandIdパラメーターが無効な場合に返されるエラーメッセージ。 DescribeCommands操作を呼び出して、使用可能なすべてのコマンドIDを照会できます。 |
500 | InternalError.Dispatch | リクエストの送信時にエラーが発生しました。 | リクエストの送信時にエラーが発生した場合に返されるエラーメッセージ。 しばらくしてから再試行します。 |
エラーコードリストについては、「API エラーセンター」をご参照ください。