すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud CLI:レガシーのAlibaba Cloud CLIからプラグインベースCLIへの移行

最終更新日:Jun 03, 2026

本トピックでは、Alibaba Cloud CLI のレガシーバージョン (3.3.0 未満) からプラグインベースのバージョンに移行する方法について説明します。

説明

このガイドは、Alibaba Cloud CLI の 3.3.0 より前のバージョンをご利用のユーザーを対象としています。 お使いの CLI のバージョンが 3.3.0 以降の場合 (aliyun version を実行して確認できます)、すでにプラグインベースのバージョンを使用しているため、移行する必要はありません。

プラグインベースバージョンとレガシーバージョンの違い

バージョン 3.3.0 でプラグインアーキテクチャが導入されました。このバージョン以降、CLI はプラグインを介してクラウドサービスのコマンドを実行します。本トピックでは、3.3.0 未満のバージョンを「レガシー」バージョンと呼びます。

レガシー CLI は OpenAPI パススループロキシです。コマンド名は DescribeInstances のように API アクション名を直接使用し、パラメーターは --RegionId のように API パラメーターと一致します。プラグインベースの CLI では、各クラウドサービスが独立したプラグインを通じてコマンドを提供します。両方のバージョンは同じクラウドサービスの操作を実行しますが、コマンド名、パラメーター名、出力形式は異なります。

説明

下位互換性: バージョン 3.3.0 以降にアップグレードした後も、レガシーコマンドの構文は引き続き機能します。一度にすべてを書き直す必要はなく、ご自身のペースでスクリプトをプラグインベースのコマンドに移行できます。

比較例

DescribeRegions API を例に、プラグインベースのコマンドは次のとおりです。

aliyun ecs describe-regions --accept-language zh-CN

レガシーコマンドは次のようになります。

aliyun ecs DescribeRegions --AcceptLanguage zh-CN

この例では、唯一の違いは命名規則です。しかし、より複雑なコマンドの場合、プラグインベースのバージョンではパラメーター名が完全に再設計されている場合があります。たとえば、一部のコマンドでは --region-id ではなく --biz-region-id が使用されます。これは、従来の --RegionId の単純な大文字/小文字の変換ではありません。移行する際は、常に <command> --help を実行するか、OpenAPI Explorer で検索して、正しいパラメーター名を確認してください。

主な違い

項目

レガシー (< 3.3.0)

プラグインベース (≥ 3.3.0)

ヘルプ出力

メタデータから自動生成され、パラメーター名のみがリスト表示されます。

各プラグインに組み込まれており、値の範囲や使用例が含まれます。

サービス更新

CLI コアのリリースに連動するため、新しいクラウドサービス機能の採用が遅くなります。

プラグインは独立して更新されるため、新しいクラウドサービス機能の採用が速くなります。

プラグインの更新

CLI 全体のアップグレードが必要です。

個々のプラグインが他のサービスに影響を与えることなく独立して更新されます。

コマンド名

API アクション名 (DescribeInstances)

統一されたケバブケーススタイル (describe-instances)

パラメーター名

API パラメーター名、表記はさまざまです (--RegionId)

統一されたケバブケーススタイル(--region-id

現在のバージョンの確認

次のコマンドを実行して、バージョン番号を確認します。バージョンが 3.3.0 以降の場合、お使いの CLI はプラグインベースのコマンドをサポートしています。3.3.0 未満の場合は、まず CLI をアップグレードする必要があります。

aliyun version

特定のコマンドがプラグインベースかレガシーバージョンかを確認するには、aliyun <command> <sub-command> --help を実行します:

  • プラグイン版:ヘルプ出力にはグローバルパラメーターセクションが含まれ、パラメーター名には通常、ケバブケーススタイル (例: --region-id) が採用されています。

  • 旧バージョン: ヘルプ出力にはパラメーターセクションのみが含まれており、パラメーター名には通常、パスカルケーススタイル (例: --RegionId) が使用されます。

プラグインベースのコマンド構文の検索

プラグインベースのコマンドは、レガシーコマンドの単純な名前変更ではありません。大文字と小文字を変換するだけでは移行できません。次の方法を使用して、レガシーコマンドに対応するプラグインベースのコマンドを見つけます。

OpenAPI Explorerを使用した検索

レガシーコマンド名 (API アクション名) がわかっている場合、これが最も直接的なアプローチです。

  1. OpenAPI Explorerを開きます。

  2. 検索ボックスにレガシーコマンド名 (例: DescribeInstances) を入力すると、一致する API が検索結果に一覧表示されます。

  3. 対象の API をクリックして詳細ページに移動し、必須パラメーター値を入力してから、右側の [CLI Example] タブに切り替えます。

  4. プラグインベースのコマンドは [CLI Style (New)] に、レガシーコマンドは [API Native Style (Old)] に表示されます。新しいコマンドをコピーして、スクリプト内の古いコマンドを置き換えてください。

説明

一部のクラウド製品には、複数の API バージョンがあります。プラグインベースの CLI は、--api-version パラメーターを使用して、呼び出す API バージョンを指定します。OpenAPI Explorer で新しいコマンドと従来のコマンドを比較する場合は、現在使用しているバージョンと一致する API バージョンを必ず選択してください。

CLIホームページの参照

OpenAPI ExplorerのCLIホームページには、サポートされているすべてのプラグインベースのコマンドがクラウドサービスごとに整理されています。パラメーターの説明も記載されています。

--help でコマンドを確認する

クラウドサービス プラグインのインストール後、各レベルで --help を使用して、利用可能なコマンドとパラメーターを参照できます。たとえば、すべての ECS プラグインコマンドを表示するには:

aliyun ecs --help

特定のコマンドの使用法とパラメーターを表示するには、次のようにします。

aliyun ecs describe-instances --help

CLI Skillsを使用したクエリ

CLI Skillsにアクセスし、スキルをインストールして、エージェントを介して自然言語で要件を記述すると、対応するプラグインベースのコマンドを取得できます。

移行の実行

ステップ1:CLIのアップグレード

現在のバージョンを確認します。

aliyun version

バージョンが 3.3.0 より前の場合、Alibaba Cloud CLI のインストールと更新 を参照してアップグレードしてください。旧バージョンをアンインストールする必要はなく、既存の認証情報設定 (~/.aliyun/config.json) に影響はありません。

アップグレード後も、レガシーコマンドは引き続き機能し、既存のスクリプトに影響はありません。新しい機能のサポート、更新、セキュリティ修正は、プラグインベースのバージョンでのみ提供されます。

ステップ2:プラグインのインストール

必要なクラウドサービスプラグインをインストールします。

# 単一のプラグインをインストール
aliyun plugin install --name ecs

# 複数のプラグインをインストール
aliyun plugin install --names ecs oss vpc

または、環境変数を介して自動インストールを有効にすることもできます。まだインストールされていないプラグインのプラグインベースのコマンドを実行すると、CLIが自動的にダウンロードしてインストールします。

export ALIBABA_CLOUD_CLI_PLUGIN_AUTO_INSTALL=true
説明

export は現在のシェルセッションでのみ有効です。この設定を永続化するには、コマンドをシェル設定ファイルに追加します。

  • Bash: ~/.bashrc

  • Zsh: ~/.zshrc

編集後、source ~/.bashrc (または source ~/.zshrc) を実行して変更を適用します。

ステップ3:コマンドの検証

プラグインベースのコマンドを実行して、正常に機能することを確認します。

aliyun ecs describe-regions

出力にリージョンのJSONリストが表示されれば、プラグインベースのCLIが正しく機能していることが確認できます。

ステップ4:スクリプトの更新

スクリプト内のレガシーコマンドを、プラグインベースの構文に徐々に置き換えます。

  1. スクリプト内のレガシーコマンドを特定してください。一般的な特徴として、2 番目の引数に PascalCase が使用されていることが挙げられます (例: aliyun ecs DescribeInstances)。

  2. レガシーコマンドをプラグインベースのコマンドに置き換え、それに応じてパラメーター名を更新します。

  3. 更新したスクリプトをテストします。

レガシーコマンドは新しいバージョンでも機能するため、優先度に基づいてバッチで移行できます。

説明

JSONパラメーター値内のフィールド名は変換する必要はありません。これらのフィールド名はAPIによって定義されており、CLIのパラメーター命名規則とは独立しています。

特殊なケース

CI/CDパイプライン

非インタラクティブ環境では、CLI はプラグインのインストールを促すプロンプトを表示しません。次のいずれかの方法で対処します。

  • パイプラインスクリプトにプラグインをプリインストールします。

    aliyun plugin install --names ecs oss vpc
  • または、環境変数を設定して自動インストールを有効にします。

    export ALIBABA_CLOUD_CLI_PLUGIN_AUTO_INSTALL=true

すべてのビルドで有効になるように、環境変数をパイプラインのグローバル環境設定 (Jenkinsfile の environment ブロックや GitHub Actions の env セクションなど) に追加することをお勧めします。

出力解析スクリプト

プラグインベースのコマンドの JSON 出力は、従来のバージョンとは異なる場合があります。 従来の CLI は未加工の API レスポンスを返しますが、プラグインベースのバージョンは出力を処理する場合があります。 スクリプトで jqgrep、またはその他のツールを使用して CLI 出力をパースする場合、コマンドを切り替えた後に出力形式を確認してください。

複雑なコマンドの移行

複雑なパラメーターを持つコマンドは、移行中に最もエラーが発生しやすいシナリオです。

複雑なJSONパラメーターを持つコマンド

レガシー:

aliyun slb AddBackendServers \
  --LoadBalancerId lb-xxx \
  --BackendServers '[{"ServerId":"i-aaa","Weight":100},{"ServerId":"i-bbb","Weight":80}]'

プラグインベース:

aliyun slb add-backend-servers \
  --load-balancer-id lb-xxx \
  --backend-servers '[{"ServerId":"i-aaa","Weight":100},{"ServerId":"i-bbb","Weight":80}]'

複数行のヒアドキュメントによるパラメーター渡し

長いJSONパラメーターの場合は、ヒアドキュメントを使用して可読性を向上させることができます。

aliyun ecs run-instances \
  --region cn-hangzhou \
  --instance-type ecs.g7.large \
  --image-id ubuntu_22_04_x64_20G_alibase_20230China.vhd \
  --security-group-id sg-xxx \
  --vswitch-id vsw-xxx \
  --system-disk "$(cat <<'EOF'
{"Size":40,"Category":"cloud_essd","PerformanceLevel":"PL1"}
EOF
)"

パイプコマンド

レガシー出力を jq でパイプ処理するスクリプトの場合、次の例では実行中のすべてのインスタンスの ID を取得します。

aliyun ecs DescribeInstances --RegionId cn-hangzhou \
  | jq -r '.Instances.Instance[] | select(.Status=="Running") | .InstanceId'

プラグインベースの出力構造は異なる場合があるため、必要に応じてjq パスを調整してください:

# プラグインベースのバージョン:まず出力構造を確認してから、jq式を調整してください。
aliyun ecs describe-instances --region cn-hangzhou \
  | jq -r '.Instances.Instance[] | select(.Status=="Running") | .InstanceId'
説明

パイプコマンドを移行する際は、まずプラグインベースのコマンドを単独で実行して完全な出力を確認します。JSON 構造が想定どおりであることを確認してから、jq/grep 式を調整してください。

レガシーヘルプの表示

製品プラグインのインストール後は、aliyun <command> --help はデフォルトでプラグインのヘルプを表示します。一時的に従来のヘルプを表示するには、次の環境変数を設定します。

export ALIBABA_CLOUD_ORIGINAL_PRODUCT_HELP=true

よくある質問

アップグレード後もレガシーのパスカルケースのコマンドを使用できますか?

はい。CLI バージョン 3.3.0 以降は下位互換性があります。ただし、最新のサポートを受けるために、最新バージョンにアップグレードすることを推奨します。

移行後に認証情報を再設定する必要がありますか?

いいえ。プラグインベースの CLI は、旧バージョンと同じ認証情報設定 (~/.aliyun/config.json) を使用します。設定済みのすべての profile エントリと環境変数による認証情報は、アップグレード後も引き続き機能します。

同じスクリプト内でレガシーコマンドとプラグインベースのコマンドを混在させることはできますか?

はい。両方のコマンド形式は同じスクリプト内に共存できます。優先度に基づいて、レガシーコマンドを徐々に置き換えることを推奨します。

プラグインのインストールに失敗した場合はどうすればよいですか?

次の順序でトラブルシューティングを行ってください。

  1. お使いのネットワークが aliyuncli.alicdn.com にアクセスできるかどうかを確認してください。

  2. プラグインのインストールディレクトリ (~/.aliyun/plugins/) に書き込み権限があることを確認してください。

  3. aliyun version を実行して、CLI のバージョンが 3.3.0 以降であることを確認してください (以前のバージョンはプラグインをサポートしていません)。