ソリューション優先 Pipeline
selling_solution_first は、IaC Code が ROS テンプレートを生成する前に複数のアーキテクチャを比較できる Alibaba Cloud 購入向け Pipeline です。選択したソリューションだけを実装して価格を算出するため、デプロイしない候補に対する作業を削減できます。
従来の selling Pipeline も引き続き利用でき、デフォルトのままです。新しい Pipeline は明示的に選択する別の選択肢であり、既存の selling セッションには影響しません。
適した用途
次のような場合に selling_solution_first を使用します。
- 実装前に複数のアーキテクチャ、製品、コスト、利点、リスクを比較したい。
- テンプレートを確定する前に、リージョン、規模、ネットワーク、可用性、予算を明確にしたい。
- 選択したアーキテクチャだけを生成、プレビュー、価格算出したい。
- クラウドリソースを作成する前に、最終的な ROS パラメーターと正確な見積もりを確認したい。
| Pipeline | 作業順序 |
|---|---|
selling | 候補テンプレートを生成・評価し、1 つを選択してからデプロイします。 |
selling_solution_first | アーキテクチャを計画・選択し、その選択だけを実装してからデプロイします。 |
Pipeline の開始
対話型ターミナルの場合:
IAC_CODE_MODE=pipeline \
IAC_CODE_PIPELINE_NAME=selling_solution_first \
iac-code
ローカル Web アプリでは、会話の作成時に Pipeline モードを選択し、Pipeline 名を指定してサーバーを起動します。
IAC_CODE_PIPELINE_NAME=selling_solution_first iac-code web
A2A では、サーバーのデフォルト値を変更せず、メッセージごとにモードと Pipeline を選択できます。
{
"metadata": {
"iac_code": {
"run_mode": "pipeline",
"pipeline_name": "selling_solution_first",
"preferredLanguage": "ja",
"candidatePresentation": "rich-v1"
}
}
}
pipeline_name には selling または selling_solution_first を指定できます。未対応の空でない値は、別の Pipeline に暗黙に切り替えずエラーになります。保存済み Pipeline を続行する場合は同じ A2A contextId を再利用してください。永続スナップショットに保存された Pipeline ID が正となります。
3 つのステージ
1. ソリューションの計画と選択
IaC Code は最初に、要求が対応可能な Alibaba Cloud インフラストラクチャタスクかどうかを判定します。製品構成、トポロジー、価格を大きく左右する情報が不足している場合は、要点を絞って質問します。
その後、比較可能な 1~3 個のソリューションを提示します。各ソリューションには次の情報を含めることができます。
- アーキテクチャ図とトポロジー
- Alibaba Cloud 製品とリソース一覧
- 推奨仕様と必須制約
- 適用シナリオと解決する課題
- 比較用の月額概算
- 長所、短所、リスク、推奨理由
ソリューションを選択するほか、要件を調整して候補を作り直すか、キャンセルできます。このステージでは ROS テンプレートもクラウドリソースも作成されません。
2. 選択したソリューションの実装
IaC Code は選択したソリューションだけを処理します。ROS テンプレートの生成と書き込み、検証、必須パラメーターの解決、PreviewStack の実行、ROS の正確な価格見積もりを順に行います。
デプロイ前に、最終アーキテクチャ、テンプレートパラメーター、見積もりが表示されます。次の操作を選択できます。
- デプロイを確認する。
- 変更可能なパラメーターを調整して再計算する。
- ステージ 1 に戻って別のソリューションを選択または計画する。
- クラウドリソースを作成せずにキャンセルする。
ステージ 1 の概算とステージ 2 の正確な ROS 見積もりは別の値です。デプロイ確認には正確な見積もりと現在のテンプレートパラメーターが使用されます。
3. デプロイ
確認後、IaC Code は ROS スタックを作成し、信頼できるスタック進行状況をストリーミングし、終了状態を待って、スタック ID と出力を記録します。デプロイ失敗の情報は診断と復旧のために保持されます。
デプロイ確認とツール権限
デプロイ確認とツール権限は別々のセキュリティ境界です。
- デプロイ確認では、選択したソリューション、パラメーター、見積もりコストを承認します。
- ツール権限では、今回の実行における
ros:CreateStackやvpc:CreateVpcなど、具体的なクラウド変更呼び出しを許可します。
1 つ目の承認によって 2 つ目が自動承認されることはありません。ツールに権限が必要な場合、IaC Code はその地点で一時停止し、安全な権限要求を表示します。読み取り、変更、削除の各操作は区別されます。クラウド API の詳細には製品、API、リージョン、API 呼び出し順序、マスク済みパラメーターを含められますが、認証情報、トークン、署名などの機密値は表示フィールドに含まれません。
ユーザーは今回のみ許可または拒否を選択できます。決定は該当する要求と厳密に関連付けられ、権限監査ログに記録されます。必要な監査レコードを永続化できない場合、許可は安全側に失敗します。
一時停止、復旧、引き継ぎ
候補選択、質問、デプロイ確認、権限要求はいずれも復旧可能な待機点です。IaC Code は呼び出し元の継続操作に依存する前に Pipeline スナップショットを永続化します。プロセスの再起動や会話の再読み込み後、画面は完了済みステップを再構築し、保留中の入力を元の位置に復元します。
A2A 統合では次のように動作します。
permission_requestedとpermission_resolvedは、所属ステップと候補座標を保持します。- 復元したタスクスナップショットでは、未解決の要求が
pendingPermissionsに公開されます。 - サイドバンド権限応答により、元のタスクとコンテキストが再開されます。
- 同じ決定の重複送信は冪等に扱われ、矛盾する決定は拒否されます。
Pipeline が完了、失敗、早期終了、キャンセルのいずれかになった後は、同じコンテキストが通常チャットへ引き継がれます。新しい会話を作らず、選択したソリューション、生成済みテンプレート、デプロイ結果、クリーンアップ状態を後続の要求で利用できます。
インターフェースと言語
この Pipeline は、対話型ターミナル、ローカル Web アプリ、Desktop Web シェル、SDK プロセスモード、A2A サーバーモードで動作します。A2A が構造化された rich-v1 候補表示を要求できるなど表示機能は異なりますが、Pipeline 状態とセキュリティ境界は共通です。
ユーザー向けテキストは、英語、簡体字中国語、スペイン語、フランス語、ドイツ語、日本語、ポルトガル語に対応しています。A2A 呼び出し元は metadata.iac_code.preferredLanguage で要求ごとの言語を選択します。プロトコルのフィールド名、列挙値、ID、JSON 構造は翻訳されません。