Cloud Assistantコマンドを実行して、Elastic Compute Service (ECS) インスタンスでルーチンタスクを実行できます。 タスクには、自動O&Mスクリプトの実行、ポーリングプロセス、ユーザーパスワードのリセット、ソフトウェアのインストールまたはアンインストール、アプリケーションの更新、パッチのインストールが含まれます。 このトピックでは、Cloud Assistantコマンドを作成して実行する方法について説明します。
前提条件
コマンドを実行するECSインスタンスは、実行中 (実行中) 状態です。
Cloud Assistant Agentがインスタンスにインストールされています。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。
スケジュールされたタスクを期待どおりに実行できるようにするには、Cloud Assistant Agentのバージョンが次のバージョンより前でないことを確認します。 スケジュールされたタスクは、特定の間隔でコマンドを実行したり、特定の時間に1回だけコマンドを実行したり、特定の年またはタイムゾーンを持つcron式で指定されたスケジュールに基づいてコマンドを実行したりできます。
Linux: 2.2.3.282
Windows: 2.1.3.282
ClientNeedUpgrade
エラーコードが返された場合は、Cloud Assistant Agentを最新バージョンに更新します。 詳細については、「Cloud Assistant Agentのアップグレードまたは無効化」をご参照ください。
制限事項
Cloud Assistantコマンドを作成して実行するときは、次の項目に注意してください。
Base64-encodedスクリプトのサイズには、次の制限があります。
[実行と保存] をクリックしてコマンドを即座に実行して保存する場合、スクリプトのサイズは18 KBを超えることはできません。
[実行] をクリックしてコマンドを即座に実行して保存しない場合、スクリプトのサイズは24 KBを超えることはできません。
APIを呼び出して、1回のリクエストで最大100個のインスタンスでコマンドを実行できます。 「コマンド実行でサポートされるインスタンスの最大数」という名前のクォータは、コマンドが1回の実行で実行できるインスタンスの最大数を指定します。 クォータの増加を申請できます。 リソースのクォータを表示および増やす方法については、「クォータの管理」をご参照ください。
Alibaba Cloudリージョンの50,000 Cloud Assistantコマンドへの500を保持できます。 このクォータは、ECSの使用状況に基づいて増加する場合があります。 クォータの増加を申請できます。 リソースのクォータを表示および増やす方法については、「クォータの管理」をご参照ください。 [コマンドの作成] パネルでコマンドを作成するときに [実行] をクリックした場合、そのコマンドはCloud Assistantのコマンドクォータにカウントされません。
説明承認率を上げるためにクォータ増加申請の詳細な理由を入力します。
手順
ECSコンソールでCloud Assistantコマンドを作成して実行する
ECSコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リソースが属するリージョンとリソースグループを選択します。
右上隅の [コマンドの作成 /実行] をクリックします。
[コマンドの作成] パネルの [コマンド情報] セクションで、パラメーターを設定します。 下表に、各パラメーターを説明します。
パラメーター
説明
コマンドソース
コマンドソースを選択します。
Enter Command Content: コマンドを作成します。
Select Saved Command: 既存のコマンドを選択します。
コマンドタイプ
コマンドタイプを選択します。
Linuxインスタンスの場合、[Shell] 、[Python] 、または [Perl] を選択します。
Windowsインスタンスの場合は、[Bat] または [PowerShell] を選択します。
コマンドの内容
コマンドの内容を入力または貼り付けます。
シェルコマンドの詳細については、「ECSインスタンスのシステム構成の表示」をご参照ください。
コマンドを作成するときは、コマンドの構文、ロジック、およびアルゴリズムが正しいことを確認してください。
たとえば、インスタンスで作成した /backupディレクトリ (
mkdir /backup
) にファイルをアーカイブするには、次のシェルコマンドを入力します。#!/bin/bash OF=/backup/my-backup-$(日付 + % Y % m % d).tgz tar -cf $OF {{file}}
説明上記のサンプルコマンドでは、
{{file}}
はカスタムパラメーターです。 コマンドを実行すると、カスタムパラメーターをアーカイブするファイルの名前に設定できます。 例: /app/usrcredential 動的な値と複数のコマンドで共有される値が必要なシナリオでは、カスタムパラメーターを使用できます。 AccessKeyペア、インスタンスID、認証コード、時間パラメーター、重要なシステムファイルなど、機密データまたは環境とともに変更されるデータのカスタムパラメーターを指定することを推奨します。パラメーターの使用
パラメーターを使用するかどうかを指定します。
[パラメーターの使用] をオンにした場合、[コマンドの内容] フィールドの
{{key}}
形式でカスタムパラメーターを指定します。説明1つのCloud Assistantコマンドで最大20個のカスタムパラメーターを指定できます。
組み込みの環境パラメーターをカスタムパラメーターとして指定できます。 コマンドを実行すると、パラメーターはCloud Assistantによって自動的に指定されます。 次の組み込み環境パラメーターを指定できます。
{{ACS::RegionId}}
: リージョンのID。{{ACS::AccountId}}
: Alibaba Cloudアカウントの一意識別子 (UID) 。{{ACS::InstanceId}}
: インスタンスのID。説明複数のインスタンスでコマンドを実行し、組み込み環境パラメーターとして
{{ACS::InstanceId}}
パラメーターを指定する場合は、Cloud Assistant Agentのバージョンが次のバージョンより前でないことを確認してください。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。Linux: 2.2.3.309
Windows: 2.1.3.309
{{ACS::InstanceName}}
: インスタンスの名前。説明複数のインスタンスでコマンドを実行し、組み込み環境パラメーターとして
{{ACS::InstanceName}}
パラメーターを指定する場合は、Cloud Assistant Agentのバージョンが次のバージョンより前でないことを確認してください。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。Linux: 2.2.3.344
Windows: 2.1.3.344
{{ACS::InvokeId}}
: コマンドタスクのID。説明組み込み環境パラメーターとして
{{ACS::InvokeId}}
パラメーターを指定する場合は、Cloud Assistant Agentのバージョンが次のバージョンより前でないことを確認してください。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。Linux: 2.2.3.309
Windows: 2.1.3.309
{{ACS::CommandId}}
: コマンドのID。説明RunCommand操作を呼び出すときに、組み込み環境パラメーターとして
{{ACS::CommandId}}
パラメーターを指定する場合は、Cloud Assistant Agentのバージョンが次のバージョンより前でないことを確認してください。 詳細については、「Cloud Assistant Agentのインストール」をご参照ください。Linux: 2.2.3.309
Windows: 2.1.3.309
実行プラン
コマンド実行プランを選択します。
すぐに実行: [実行] または [実行して保存] をクリックすると、コマンドがすぐに実行されます。
システムの次回の起動後: [実行] または [実行して保存] をクリックすると、次に関連するインスタンスが起動したときにコマンドが実行されます。
各システム起動後: [実行] または [実行と保存] をクリックすると、関連するインスタンスが起動するたびにコマンドが実行されます。
[スケジュールで実行]: [実行] または [実行して保存] をクリックすると、特定の間隔、特定の時間、またはスケジュールでコマンドが実行されます。 次の実行スケジュールオプションを使用できます。
固定間隔で実行: レート式を使用して、コマンドを実行する間隔を指定します。 間隔は、秒、分、時間、または日で指定できます。 このオプションは、一定の間隔でコマンド実行タスクを実行するシナリオに適しています。
説明間隔を指定するときは、次の制限に注意してください。
指定された間隔は60秒から7日の範囲で、スケジュールされたタスクのタイムアウト期間より長くする必要があります。
間隔は、2つの連続した実行の間に経過する時間である。 この間隔は、コマンドを1回実行するのに必要な時間とは無関係です。 たとえば、間隔を5分に設定し、コマンドを1回実行するには2分かかります。 コマンドが実行されるたびに、システムはコマンドを再実行する前に3分間待機します。
タスクを作成した後、タスクはすぐには実行されません。 たとえば、間隔を5分に設定し、コマンドを実行するタスクを作成します。 タスクは作成後5分で実行されます。
指定した時間に1回だけ実行: コマンドを1回だけ実行する時点とタイムゾーンを指定します。
たとえば、[実行時間] パラメーターを5月17日2022 17:30:50に設定し、[タイムゾーン] パラメーターを (GMT + 08:00) Asia/Shanghaiに設定した場合、コマンドは2022年5月17日 (UTC + 8) の17:3050に1回だけ実行されました。
クロックベースのスケジュールCron式で実行: cron式を使用して、コマンドを実行するスケジュールを指定します。 秒、分、時間、月、月、曜日、または年の正確なスケジュールを指定し、[タイムゾーン] ドロップダウンリストからタイムゾーンを選択します。 システムはcron式とタイムゾーンに基づいてスケジュールを計算し、スケジュールどおりにコマンドを実行します。 このオプションは柔軟性を提供し、スケジュールに従ってコマンドタスクを実行するシナリオに適しています。 cron式の詳細については、「Cron式」をご参照ください。
説明最小間隔は10秒以上である必要があり、スケジュールされた実行のタイムアウト期間より短くすることはできません。
たとえば、[実行頻度] パラメーターを0 0 12? * WED 2022、タイムゾーンパラメーターを (GMT + 08:00) Asia/Shanghaiに設定すると、システムは毎週水曜日の12:00:00に2022 (UTC + 8) でコマンドを実行します。
コマンド名
コマンドの名前を入力します。
コマンドの説明
コマンドの説明を入力します。 管理やメンテナンスを容易にするため、コマンドの目的などの識別可能な情報を入力することを推奨します。
ユーザー名
ECSインスタンスでコマンドを実行するために使用するユーザー名を指定します。
セキュリティ上の理由から、最小権限の原則に基づいて、Cloud Assistantコマンドを通常のユーザーとして実行することを推奨します。 詳細については、「Cloud Assistantコマンドを通常ユーザーとして実行する」をご参照ください。
デフォルトでは、Cloud Assistantコマンドは、Linuxインスタンスではrootユーザーによって、Windowsインスタンスではシステムユーザーによって実行されます。
実行パス
コマンドの実行パスを指定します。 コマンドが実行されるインスタンスのオペレーティングシステムに基づいて、さまざまなデフォルトの実行パスが提供されます。
Linuxインスタンスの場合、デフォルトの実行パスはrootユーザーの /homeディレクトリです。
Windowsインスタンスの場合、デフォルトの実行パスはC:\Windows\system32です。
タイムアウト
インスタンスでコマンドを実行するためのタイムアウト期間を指定します。 コマンドを実行するタスクがタイムアウトすると、Cloud Assistantはタスクプロセスを強制終了します。
単位は秒です。 デフォルト値: 0。 最小値: 10。 Timeoutパラメーターを10より小さい値に設定すると、コマンドを実行できるように値が10に変更されます。
タグ
後で分類および管理するためにコマンドに追加するタグを指定します。 Tag key: タグのキー。 タグ値: タグの値。
説明インスタンスを選択して [実行と保存] をクリックすると、コマンドとコマンド実行タスクにタグが追加されます。
インスタンスを選択して [実行] をクリックすると、コマンドにのみタグが追加されます。
[インスタンスの選択] および [管理対象インスタンスの選択] セクションで、コマンドを実行するインスタンスを選択します。
説明マネージドインスタンスは、Alibaba Cloudによって提供されていないが、Cloud Assistantによって管理されているインスタンスです。 詳細は、「Alibaba Cloudマネージドインスタンス」をご参照ください。
[実行して保存] または [実行] をクリックして、すぐにコマンドタスクを実行します。
Alibaba Cloud CLIを使用したCloud Assistantコマンドの作成と実行
コマンドを1回だけ実行する方法の例
リクエストの例
RunCommand操作を呼び出して、updateという名前のCloud Assistantコマンドを作成して実行し、インスタンスのオペレーティングシステムを更新します。
aliyun ecs RunCommand -- RegionId 'cn-hangzhou' \ -- Name 'update' -- ユーザー名 'ecs-user' -- タイプ 'RunShellScript' \ -- CommandContent 'eXVtIC15IHVwZGF0ZQ=='\ -- タイムアウト '60' -- RepeatMode 'Once' -- ContentEncoding 'Base64' \ -- InstanceId.1 'i-bp12e0ib2ztibede **** '
説明一重引用符 ('') で囲まれた値は、パラメーターのサンプル値です。 実際のビジネスシナリオに基づいてパラメーターを指定します。
下表に、各パラメーターを説明します。 詳細については、「RunCommand」をご参照ください。
パラメーター
例
説明
RegionId
cn-hangzhou
リージョン ID です。
名前
update
コマンドの名前。
ユーザー名
ecs-user
ECSインスタンスでコマンドを実行するために使用するユーザー名。
データ型
RunShellScript
コマンドのタイプ。
Linuxインスタンスの場合、このパラメーターをRunShellScriptに設定します。
Windowsインスタンスの場合、このパラメーターをRunBatScriptまたはRunPowerShellScriptに設定します。
CommandContent
eXVtIHVwZGF0ZSAteQ==
コマンドのBase64-encoded内容。
タイムアウト
60
タイムアウト期間。
RepeatMode
一度
実行プラン。
ContentEncoding
Base64
コマンドコンテンツのエンコード形式。
InstanceId.1
i-bp12e0ib2ztibede ****
コマンドを実行するECSインスタンスNのID。 この例では、Nの値は1である。
レスポンス例:
{ "CommandId": "c-hz018qlm868 ****" 、 "InvokeId": "t-hz018qlm86d ****" 、 "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F" }
スケジュールでコマンドを実行する方法の例
リクエストの例
RunCommand操作を呼び出して、updateという名前のCloud Assistantコマンドを作成して実行し、2022 (UTC + 8) で毎日12:00にインスタンスのオペレーティングシステムを更新します。
aliyun ecs RunCommand -- RegionId 'cn-hangzhou' \ -- Name 'update' -- 説明 'update' -- ユーザー名 'ecs-user' -- タイプ 'RunShellScript' \ -- CommandContent 'eXVtIC15IHVwZGF0ZQ=='\ -- タイムアウト '60' -- RepeatMode 'Period' -- ContentEncoding 'Base64' \ -周波数 '0 12 * *? 2022アジア /上海 \ -- InstanceId.1 'i-bp12e0ib2ztibede **** '
説明一重引用符 ('') で囲まれた値は、パラメーターのサンプル値です。 実際のビジネスシナリオに基づいてパラメーターを指定します。
下表に、各パラメーターを説明します。 詳細については、「RunCommand」をご参照ください。
パラメーター
例
説明
RegionId
cn-hangzhou
リージョン ID です。
名前
update
コマンドの名前。
説明
update
コマンドの説明。
ユーザー名
ecs-user
ECSインスタンスでコマンドを実行するために使用するユーザー名。
データ型
RunShellScript
コマンドのタイプ。
Linuxインスタンスの場合、このパラメーターをRunShellScriptに設定します。
Windowsインスタンスの場合、このパラメーターをRunBatScriptまたはRunPowerShellScriptに設定します。
CommandContent
eXVtIC15IHVwZGF0ZQ==
コマンドのBase64-encoded内容。
タイムアウト
60
タイムアウト期間。
RepeatMode
期間
実行プラン。
ContentEncoding
Base64
コマンドコンテンツのエンコード形式。
頻度
0 0 12 * *? 2022アジア /上海'
コマンドを実行するスケジュール。
InstanceId.1
i-bp12e0ib2ztibede ****
コマンドを実行するECSインスタンスNのID。 この例では、Nの値は1である。
レスポンス例:
{ "CommandId": "c-hz018qlm868 ****" 、 "InvokeId": "t-hz018qlm86d ****" 、 "RequestId": "1D24FA80-64DB-4842-AB20-25207994418F" }