Alibaba Cloud CLI は、OpenAPI に基づいて構築された、Codeup (コード管理)、Flow (パイプライン)、Packages (アーティファクト管理) などの Apsara DevOps サービスを管理するためのコマンドラインツールです。このクイックスタートでは、Alibaba Cloud CLI のインストール、Apsara DevOps 認証情報の設定、Yunxiao OpenAPI 操作を呼び出す方法を説明します。この例では、flow-get-flow-tag-group コマンドを使用してパイプラインタググループの詳細を取得します。
前提条件
Alibaba Cloud アカウント
Apsara DevOps (Yunxiao) 組織 (Region edition)
Yunxiao 個人アクセストークン。Yunxiao コンソールで作成します。手順については、「個人アクセストークンの取得」をご参照ください。
(オプション) Alibaba Cloud CLI を初めて使用する場合は、「Alibaba Cloud CLI とは」をご参照ください。
ステップ 1: Alibaba Cloud CLI のインストール
お使いのオペレーティングシステムに合わせて Alibaba Cloud CLI をインストールします。
Windows:Windows への CLI のインストール
Linux:CLI のインストールまたは更新
macOS:macOS への CLI のインストール
また、Cloud Shell を使用すると、ローカルにインストールすることなく Alibaba Cloud CLI コマンドを実行できます。詳細については、「Cloud Shell とは」をご参照ください。
ステップ 2: Yunxiao CLI の設定
Apsara DevOps の ID システムは、他の Alibaba Cloud サービスとは異なります。Yunxiao は、プロファイル (AccessKey ペア) を使用して認証情報を保存しません。代わりに、Yunxiao コンソールで個人アクセストークンを作成し、aliyun configure ではなく、環境変数またはコマンドラインパラメーターで渡します。
個人アクセストークンの取得
個人アクセストークンを使用すると、Yunxiao API 操作にアクセスし、HTTP 経由で Git 操作を実行できます。詳細については、「個人アクセストークンの取得」をご参照ください。
トークンを作成する際は、必要最小限の API 権限を選択し、適切な有効期間を設定してください。永続的なトークンは作成しないでください。
トークンは初回作成時にのみ表示されます。トークンを再度表示することはできません。トークンは安全な場所に保管してください。
コマンドラインでトークンを平文で渡さないでください。環境変数を使用することを推奨します。
トークンが漏洩した場合は、直ちに削除してください。
認証情報の設定
Yunxiao CLI は、環境変数とコマンドラインパラメーターの 2 つの認証情報設定方法をサポートしています。
方法 1: 環境変数の使用 (推奨)
Yunxiao CLI は、次の環境変数を使用します。
環境変数 | 説明 | 必須 (Region edition) |
| Yunxiao 個人アクセストークン | はい |
| API エンドポイント | はい |
| 組織 ID | いいえ |
Region edition の例:
export ALIBABA_CLOUD_YUNXIAO_ACCESS_TOKEN=<your-personal-access-token>
export ALIBABA_CLOUD_YUNXIAO_API_BASE_URL=<your-api-base-url>方法 2: コマンドラインパラメーターの使用
各コマンドで認証情報をパラメーターとして渡すこともできます。
パラメーター | 説明 | 必須 (Region edition) |
| Yunxiao 個人アクセストークン | はい |
| API エンドポイント | はい |
| 組織 ID | いいえ |
Region edition の例:
aliyun devops flow-get-flow-tag-group --id 0 \
--api-base-url=<your-api-base-url> \
--yunxiao-access-token=<your-personal-access-token>設定の確認
次のコマンドを実行して、Yunxiao CLI プラグインが利用可能であることを確認します。
aliyun devops versionコマンドがエラーなしでバージョン情報を返した場合、環境の準備は完了です。
ステップ 3: API 操作の呼び出し
例 1: 利用可能なコマンドの一覧表示
次のコマンドを実行して、すべての Yunxiao CLI コマンドを表示します。
aliyun devops --help次の出力が返されます (一部)。
Description: Aliyun CLI plugin for yunxiao operations.
Usage: aliyun devops <command> [flags]
Available Commands:
app-stack-create-application Create an application
app-stack-list-applications List applications
codeup-create-repository Create a code repository
codeup-list-repositories List code repositories
flow-create-pipeline Create a pipeline
flow-list-pipelines List pipelines
flow-get-flow-tag-group Get pipeline tag group details
projex-search-projects Search projects
projex-search-workitems Search work items
...Yunxiao CLI には、次のモジュールが含まれます。
モジュールプレフィックス | 説明 |
| AppStack (アプリケーションデリバリー) |
| Base (組織、メンバー、ロール) |
| Codeup (コード管理) |
| Flow (パイプライン) |
| Insight (効率分析) |
| Packages (アーティファクト管理) |
| Projex (プロジェクトコラボレーション) |
| TestHub (テスト管理) |
国際サイト (alibabacloud.com) では、Codeup、Flow、および Packages モジュールのみが利用可能です。projex-*、test-hub-*、app-stack-*、および insight-* プレフィックスで始まるコマンドは、国際サイトではサポートされていません。
例 2: パイプラインタググループの詳細の取得
次の例では、flow-get-flow-tag-group コマンドを呼び出してパイプラインタググループの詳細を取得します。
# Region edition (環境変数)
export ALIBABA_CLOUD_YUNXIAO_ACCESS_TOKEN=<your-personal-access-token>
export ALIBABA_CLOUD_YUNXIAO_API_BASE_URL=<your-api-base-url>
aliyun devops flow-get-flow-tag-group --id 0レスポンスの例:
{
"id": 0,
"name": "Environment Tags",
"tags": [
{
"id": 1,
"name": "Production",
"color": "#FF6B6B"
},
{
"id": 2,
"name": "Staging",
"color": "#4ECDC4"
}
]
}Yunxiao OpenAPI 操作を呼び出す際にエラーが返された場合は、次の一般的な原因を確認してください。
無効または期限切れのトークン:個人アクセストークンが有効で、必要な権限を持っていることを確認してください。
不正なエンドポイント:お使いのエディションに対応した正しい API エンドポイントを使用していることを確認してください。
必須パラメーターの欠落:Central edition には
--organization-idが必要です。Region edition には--api-base-urlが必要です。
その他の例
次の例は、一般的な Yunxiao CLI 操作を示しています。
コードリポジトリの一覧表示
aliyun devops codeup-list-repositories --page 1 --per-page 20プロジェクトの検索
aliyun devops projex-search-projects --page 1 --per-page 10パイプラインの一覧表示
aliyun devops flow-list-pipelines --page 1 --per-page 20アプリケーションの一覧表示
aliyun devops app-stack-list-applications --pagination '{"page":1,"perPage":20}' --order-by createdAtJMESPath を使用した出力のフィルタリング
aliyun devops codeup-list-repositories --cli-query 'result[].{name:name,id:id}'