デプロイ可能なアーキテクチャの構成

プロジェクトにデプロイ可能なアーキテクチャを追加した後、入力値を編集してデプロイ用のアーキテクチャを設定できます。

構成は汎用的な場合もありますが、多くのプロジェクトでは、異なる環境にリソースをデプロイするために、1つの構成または複数の構成のグループを使用します。 例えば、設定のグループを使用して、開発環境、テスト環境、本番環境にリソースをデプロイし、環境外で共通サービスを設定することができます。 構成を展開する際、 IBM Cloud® Schematics はTerraformを使用して基盤となるプランを適用します。

アーキテクチャを展開する前に、展開可能なアーキテクチャの入力、計画、コンプライアンス、および推定コストを検証する必要があります。 構成に加えられた変更はすべて検証され、問題や障害が発生しないことを保証します。

入力値の設定

入力値は、特定のニーズに合わせてデプロイ可能なアーキテクチャを構成するために使用されます。 必要な入力は、選択するデプロイ可能なアーキテクチャによって異なります。 アーキテクチャの設計方法によっては、一部の入力項目には選択可能なオプションのセットが含まれる場合や、フィールドにテキスト文字列として値を入力できる場合があります。

参照値

構成は、ある構成の出力を別の構成の入力として使用することで相互にリンクできます。 例えば、アプリケーションの設定では、クラスターIDなどのインフラストラクチャ設定の出力を使用して、そのインフラストラクチャにデプロイすることができます。 これを実現するには、別の構成からの入力または出力への参照を追加できます。 環境変数からパラメータを参照することもできます。 参照を追加すると、その値が入力、出力、または環境から取得され、設定中のアーキテクチャの入力値として使用されます。

コンソールでは、設定中のアーキテクチャで参照を追加できます。入力項目にカーソルを合わせ、 参照アイコンを選択してください

APIまたはCLIを使用してデプロイ可能なアーキテクチャを設定する場合、 またはデプロイ可能なアーキテクチャのスタック定義を編集して 参照を含めたい場合、テキスト文字列として記述できます。 参照は URL 仕様に準拠しますが、プロトコルとしてではなく別の ref``http プロトコルを使用します。 ウェブサイトのURLと同様に、現在のコンテキストを基準とした相対参照を記述できます。 例えば、現在編集中の設定内の入力への参照を追加する場合、現在のパスは /configs/<configname> であり、そのパスを基準とした相対参照を記述できます。 例えば、同じ構成内で という regionref:./inputs/region 前の入力への参照を追加します。 この場合、編集中の構成は、その内部で別の値を参照するためにデプロイする必要はありません。

参照する出力の名前は、プロジェクトでデプロイされた構成を開き、[ 出力 ]タブに移動することで確認できます。

設定からの値の参照

設定内の値を参照する一般的な形式は次のとおりです:

ref:/configs/<config_name>/inputs_or_outputs/<input_or_output_name>.

プロジェクトからデプロイされた構成から、入力または出力を参照できます。 例えば、次の参照は、設定 ProdCluster``cluster_id 内の出力 を指しています: ref:/configs/ProdCluster/outputs/cluster_id.

現在編集中の設定内で、別の入力への相対参照を追加できます。 その設定を実行するためにデプロイする必要はありません。

実験的

プロジェクト内で構成をスタックした場合、スタックされた構成間で出力を参照できます。 値を参照する一般的な形式は次のとおりです:

ref:/configs/<stack_name>/members/<member_name>/inputs_or_outputs/<input_or_output_name>

相対参照を行いたい場合は、そうすることができます。 積み重ねられた構成間の相対参照は、次のように ref:../<member_name>/inputs_or_outputs/<input_or_output_name> フォーマットされます。 ただし、スタック定義内の値を参照する場合は、メンバー構成内で ref:../../inputs/<input_name> の形式で記述されます。 現在、メンバーはスタック定義からの出力を参照できません。

環境からの入力参照

環境は構成内ではなくプロジェクト内で作成されるため、環境内のパラメータを参照する場合に /configs/ を含める必要はありません。 ただし、参照 environments 型の後に環境名を含める必要があります。 次に、参照したい入力の名前を指定 inputs して提供してください: ref:./environments/<environment_name>/inputs/<name>。 環境から認証パラメータまたはコンプライアンスプロファイルへの参照を追加することはできません。

たとえば、次の参照は、環境 Production 内で cluster_id という名前の入力パラメーターを指しています: ref:./environments/Production/inputs/cluster_id.

コンソールを使用したアーキテクチャの設定

カスタマイズされたコンフィギュレーションを作成するには、以下の手順に従います:

  1. セキュリティパネルから、アーキテクチャの展開に使用する認証方法を選択します。

    テスト目的で概念実証を展開する? プロジェクトの設定を編集する際に、APIキーを作成できます。 これにより、プロジェクトが現在選択されているアカウントにデプロイすることを許可します。 それ以外の場合は、 IBM Cloud® Secrets Manager を使用して API キーを追加できます。 この許可により、プロジェクトは対象アカウントにデプロイ可能となり、アーキテクチャのデプロイに必須です。 詳細については、 「Secrets Manager を使用して API キーを使用し、アーキテクチャーをデプロイするプロジェクトを承認する 」を参照してください。

  2. 検証中に、 コードリスクアナライザ のスキャンがアーキテクチャ上で実行されます。 検証中に使用するポリシーを選択してください。 ターゲットアカウントに Workload Protection のインスタンスが設定されている場合は、 アーキテクチャのデフォルトを使用するか、[ Workload Protection から選択 ]オプションを使用できます。

    「アーキテクチャー・デフォルト」 を選択した場合:

    • スキャンは、デプロイ可能なアーキテクチャの所有者がオンボーディング時に追加したデフォルトのポリシーを使用します。
    • アーキテクチャ所有者が追加したポリシーには要件が含まれる。 サポートされているルールセットに含まれる要件もチェックされます。
    • アーキテクチャ所有者が追加した、サポート対象ルールの一覧に含まれていない追加要件は、構成の検証時にチェックされません。
    • デプロイ可能なアーキテクチャの所有者が製品にポリシーを追加しなかった場合、完全なルールセットが使用されます。

    追加された要件の一覧を表示するには、 IBM Cloud® カタログに移動し、設定中のデプロイ可能なアーキテクチャを選択してください。 セキュリティとコンプライアンスタブには、デプロイ可能なアーキテクチャに追加されたすべての要件が一覧表示されます。

    Workload Protection から選択する場合、デプロイ先のターゲットアカウントにサービスのインスタンスが存在している必要があります。

  3. Inputs パネルから、配置可能なアーキテクチャ構成に必要な入力の値を入力します。

    デプロイ可能なアーキテクチャによっては、他のアーキテクチャへの参照や固定値を用いて、一部の入力が自動的に設定される場合があります。 これらの値は、デプロイ可能なアーキテクチャの作成者によって提供されました。 これらの値、特に参照を編集する場合は注意してください。異なる値ではアーキテクチャが正常にデプロイされない可能性があります。 入力にカーソルを合わせて「 リセット」 をクリックすると、作成者が指定した固定値に入力が戻ります。 入力参照をリセットすることはできません。 固定値を持つ入力のみが、元の固定値にリセットできます。

  4. オプション: オプション入力をオンに切り替えて、オプション入力の値を入力する。

  5. 保存 をクリックします。

  6. 検証 をクリックします。 表示されるモーダルは、進行中の検証に関する詳細情報を提供します。

    検証が失敗した場合、 その失敗の原因を調査 できます。 または、 IBM Cloud Projects サービスの管理者は、 Schematics サービスを通じて結果を確認し、 失敗をオーバーライドして 構成を承認し、それでもデプロイを実行できます。 ただし、パイプラインが失敗したのはコードリスクアナライザのスキャンが原因であり、検証やプランの失敗によるものではないことを確認してください。 検証またはプランの失敗によりフラグが立てられた障害を上書きすることは推奨されません。設定が正常にデプロイされない可能性があるためです。 プロジェクトにおけるセキュリティとコンプライアンスの詳細については、 「企業としての継続的なコンプライアンスの実現」 を参照してください。

スタックされたデプロイ可能なアーキテクチャを構成する場合は、依存関係に従って各アーキテクチャを順番に検証してください。 あるいは、プロジェクトの設定を編集して、正常に検証された構成変更を自動的にデプロイすることもできます。 そうすれば、各アーキテクチャは依存関係に基づいて自動的に検証、承認、デプロイされます。 詳細については、 「アーキテクチャの展開」 を参照してください。

コンソールを使用した構成変更の承認

設定を検証した後、変更内容は IBM Cloud Projectsサービスの編集者または管理者による承認が必要です。 変更を承認するには、以下の手順を完了してください:

  1. プロジェクト一覧からプロジェクトを選択してください。
  2. プロジェクトの概要タブに未処理の注意が必要な項目がないことを確認してください。 注意が必要な項目はデプロイを妨げる可能性があります。
  3. 設定タブに移動し、デプロイ可能なアーキテクチャ構成を選択します。
  4. 「編集」 をクリックします。
  5. 「最終検証の表示」 をクリックします。
  6. 承認に関する詳細を提供するコメントを追加し、 「承認」 をクリックします。

コードリスクアナライザのスキャンにより検証が失敗した場合、 IBM Cloud Projects サービスの管理者は 、その失敗をオーバーライドして 構成を承認し、デプロイを続行することができます。

CLIを使用したアーキテクチャの設定

CLIを使用してプロジェクトに構成を追加するには、次の ibmcloud project config-create コマンドを実行します:

ibmcloud project config-create --project-id PROJECT-ID [--definition DEFINITION] [--schematics SCHEMATICS]

コマンドパラメータの詳細については、を参照してください ibmcloud project config-create

CLIを使用した構成変更の承認

  1. 設定の検証チェックを行うには、次の ibmcloud project config-validate コマンドを実行してください:

    ibmcloud project config-validate --project-id PROJECT-ID --id ID
    

    コマンドパラメータの詳細については、を参照してください ibmcloud project config-validate

  2. 設定を検証した後、以下の ibmcloud project config-approve コマンドを実行して設定編集を承認し、メイン設定にマージしてください:

    ibmcloud project config-approve --project-id PROJECT-ID --id ID [--comment COMMENT]
    

    コマンドパラメータの詳細については、を参照してください ibmcloud project config-approve

APIを使ってアーキテクチャを構成する

プロジェクトAPI を呼び出すことで、プログラムからプロジェクトに構成を追加できます。以下のサンプルリクエストを参照してください。 この例では、プロジェクトに My new configuration 名前の設定を追加します:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "definition": { "name": "env-stage", "description": "Stage environment configuration.", "locator_id": "1082e7d2-5e2f-0a11-a3bc-f88a8e1931fc.018edf04-e772-4ca2-9785-03e8e03bef72-global", "inputs": { "account_id": "account_id", "resource_group": "stage", "access_tags": [ "env:stage" ], "logdna_name": "LogDNA_stage_service", "sysdig_name": "SysDig_stage_service" }, "settings": { "IBMCLOUD_TOOLCHAIN_ENDPOINT": "https://api.us-south.devops.dev.cloud.ibm.com" } } }' \
  "{base_url}/v1/projects/{project_id}/configs"

APIを使用した構成変更の承認

プロジェクト API を呼び出すことで、設定編集をプログラムで承認し、メイン設定にマージできます。以下のサンプルリクエストを参照してください。 この例は設定編集を承認し、それらを設定にマージします:

curl -X POST --location --header "Authorization: Bearer {iam_token}" \
  --header "Accept: application/json" \
  --header "Content-Type: application/json" \
  --data '{ "comment": "Approving the changes" }' \
  "{base_url}/v1/projects/{project_id}/configs/{id}/approve"