管理者は、標準のアプリケーション テンプレートを作成して、各開発チームが推奨アーキテクチャを使用できるようにします。これにより、デベロッパーがアプリケーションのデプロイで使用するリソースと構成を管理できます。標準テンプレートを作成すると、スペース内の他のユーザーがアクセスできるようになります。テンプレートをカタログに追加して、他のスペースと共有することもできます。
開発者は、このテンプレートを使用してアプリケーションを作成してデプロイできます。また、このテンプレートをより大きな複合テンプレートの一部として埋め込むこともできます。デベロッパーは、アプリケーションを作成する際に、テンプレートから各コンポーネントを構成できますが、コンポーネントの追加や削除はできません。テンプレートは Terraform コードを生成します。開発者は、App Design Center からこのコードをダウンロードまたはデプロイできます。
このドキュメントでは、App Design Center を使用して標準アプリケーション テンプレートを設計、構成、共有する方法について説明します。
始める前に
アプリ対応フォルダまたは管理プロジェクトに、次のいずれかのロールが必要です。
- App Design Center 管理者(
roles/designcenter.admin) - App Design Center ユーザー(
roles/designcenter.user)
標準アプリケーション テンプレートを作成する
標準アプリケーション テンプレートを作成して、アーキテクチャ設計を開発チームと共有します。テンプレートのデザインには、次のコンポーネントを追加できます。
アセット: 他のリソースの制御に役立つ上位レベルのリソース。たとえば、サービス アカウントなどです。
サービス: ネットワーク経由で使用されるネットワーク インターフェースまたは API インターフェース。たとえば、Cloud Storage や Vertex AI などがあります。
ワークロード: ビジネス機能を実行するバイナリ デプロイ。たとえば、Cloud Run や Compute Engine などがあります。
次のコンポーネントから選択できます。
- Google が設計したコンポーネント。 Google Cloud ベスト プラクティスとデフォルトのセキュリティ構成が組み込まれています。
- 独自の Terraform モジュールに基づく、インポートする独自のコンポーネント。
テンプレートを設計すると、App Design Center は設計と構成の詳細を反映する Terraform コードを生成します。
テンプレートの詳細を指定する
テンプレートの詳細を指定すると、テンプレートを分類したり、デベロッパーがテンプレートを使用するかどうかを判断したりするのに役立ちます。
テンプレートの詳細を入力する手順は次のとおりです。
デザイン キャンバス
ナビゲーション メニューで [テンプレート] をクリックします。
[テンプレートを作成] をクリックします。
[テンプレート ID] フィールドには、自動的に値が入力されます。または、テンプレートの一意の識別子を入力します。このフィールドは必須です。
[テンプレート名] フィールドに、 Google Cloud コンソールに表示する人間が読める識別子を入力します。
名前を指定しない場合、テンプレート ID がこのフィールドにコピーされます。
[説明] フィールドに、アプリの目的の簡単な説明を入力します。
[テンプレートを作成] をクリックします。デザイン キャンバスが表示されます。
gcloud CLI
新しいアプリケーション テンプレートを作成します。
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE \
--display-name=DISPLAY_NAME \
--description=DESCRIPTION
次のように置き換えます。
APPLICATION_TEMPLATE: 作成するアプリケーション テンプレートのテンプレート ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。DISPLAY_NAME: Google Cloud コンソールに表示する名前。DESCRIPTION: 簡単な説明。
詳細については、gcloud design-center spaces application-templates create をご覧ください。
テンプレートを設計する
コンポーネントを追加して接続し、テンプレートを設計します。次の例では、デザイン キャンバスに 3 つの接続されたコンポーネントが含まれています。
次の開始点にコンポーネントを追加して、テンプレートを設計できます。
- 空白のキャンバス。
- Google 提供のテンプレート。
- Gemini の支援機能を使用して生成したテンプレート。
デベロッパーがテンプレートに基づいてアプリケーションを構成できるように、特定の入力変数と出力変数を指定します。変数を使用すると、次のことを定義できます。
デベロッパーがテンプレートに基づいてアプリケーションを作成する際に指定する必要がある特定の入力。たとえば、アプリケーションを開発環境、本番環境、テスト環境にデプロイするときに、環境ごとに異なる変数値を指定できます。これらの変数は、生成された Terraform の
variables.tfファイルとoutputs.tfファイルで自動的に公開されます。複合テンプレートに埋め込まれた 2 つの標準アプリケーション テンプレート間の接続。たとえば、複合テンプレートで接続を作成する場合、データベース テンプレートは、アプリケーション ロジック テンプレートの入力として使用されるデータベース名変数を出力する場合があります。
テンプレートを設計する手順は次のとおりです。
デザイン キャンバス
デザイン キャンバスで [デザイン] を選択して、キャンバスを表示します。
始めるには、次のいずれかの操作を行います。
最初から作成するには、[コンポーネント] 領域でコンポーネントをクリックして、キャンバス領域に追加します。
Google 提供のテンプレートから開始するには、キャンバスの [スタートガイド] 領域でテンプレート名をクリックします。
自然言語チャットを使用してテンプレートを生成するには、[Gemini を使用したカスタム アプリケーション] をクリックします。
コンポーネント間の通信チャネルを作成するには、次のいずれかを行います。
キャンバス上の 2 つのコンポーネントを接続するには、コンポーネントの青い点から別のコンポーネントの青い点までドラッグします。
既存のコンポーネントに追加するには、 [追加] をクリックして、追加するコンポーネントを選択します。
接続の詳細については、各サポートされているリソースの構成ドキュメントをご覧ください。
コンポーネントまたは接続を削除する手順は次のとおりです。
キャンバスで、コンポーネントまたは接続をクリックします。
[構成] 領域で、[削除] をクリックします。
フィールドに「delete」と入力します。
[削除] をクリックします。
テンプレートの入力変数と出力変数を指定する手順は次のとおりです。
[テンプレートの詳細] をクリックします。
[テンプレートの詳細] パネルで、[変数] タブをクリックします。
[変数の編集] 領域で、次の操作を行います。
[コンポーネント] リストから、変数の基になるコンポーネントを選択します。
[変数タイプ] リストから、次のいずれかを選択します。
出力: コンポーネントは、接続に必要な値を出力します。たとえば、Cloud Run サービスが IP アドレスを出力する場合があります。
入力: コンポーネントには、デベロッパーまたは別の標準アプリケーション テンプレートからの入力が必要です。たとえば、データ処理テンプレートでデータ ストレージ テンプレートのデータベース名が必要になることがあります。
別の変数を作成するには、[変数を追加] をクリックして、これらの手順を繰り返します。
gcloud CLI
テンプレートに追加する Google カタログ コンポーネントのテンプレート リビジョン URI を特定します。
gcloud design-center spaces shared-templates list \ --google-catalog \ --location=us-central1詳細については、gcloud design-center spaces shared-templates list をご覧ください。
アプリケーション テンプレートにコンポーネントを追加します。
gcloud design-center spaces application-templates components create COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI次のように置き換えます。
COMPONENT: テンプレートに追加するコンポーネントのコンポーネント ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。APPLICATION_TEMPLATE: コンポーネントを追加するアプリケーション テンプレートのテンプレート ID。SHARED_TEMPLATE_URI: コンポーネントの共有済みテンプレート URI。例:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
詳細については、gcloud design-center spaces application-templates components create をご覧ください。
テンプレートに 2 つ目のコンポーネントを追加します。
gcloud design-center spaces application-templates components create COMPONENT_2 \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI_2次のように置き換えます。
COMPONENT_2: テンプレートに追加する 2 番目のコンポーネントのコンポーネント ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。APPLICATION_TEMPLATE: コンポーネントを追加するアプリケーション テンプレートのテンプレート ID。SHARED_TEMPLATE_URI_2: 2 番目のコンポーネントの共有テンプレート URI。例:projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1
詳細については、gcloud design-center spaces application-templates components create をご覧ください。
2 つのコンポーネント間に接続を作成します。
gcloud design-center spaces application-templates components connections create CONNECTION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --component=COMPONENT \ --destination-component-uri=COMPONENT_2次のように置き換えます。
CONNECTION: テンプレートに追加する接続の接続 ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。APPLICATION_TEMPLATE: 接続を追加するアプリケーション テンプレートのテンプレート ID。COMPONENT: ソース コンポーネント ID。COMPONENT_2: 宛先コンポーネント ID。
詳細については、gcloud design-center spaces application-templates components connections create をご覧ください。
入力変数と出力変数を追加して、デベロッパーの入力を必須にしたり、複合テンプレート内の他のコンポーネントに接続したりします。
gcloud design-center spaces application-templates update APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --add-root-input-variables=componentUri=COMPONENT_URI,variable=VARIABLE \ --add-root-output-variables=componentUri=COMPONENT_URI,variable=VARIABLE次のように置き換えます。
APPLICATION_TEMPLATE: 変数を追加するアプリケーション テンプレートのテンプレート ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。COMPONENT_URI: 変数のベースとなるコンポーネントの URI。VARIABLE: 入力または出力するコンポーネント変数。たとえば、データベース コンポーネントにdatabase_name変数があり、その変数の出力を取得したり、デベロッパーからの入力を必要としたりすることがあります。
詳細については、gcloud design-center spaces application-templates update をご覧ください。
コンポーネントのデフォルト値を構成する
テンプレートに追加するコンポーネントごとに、リソースのプロジェクトやデプロイ場所などのデフォルトの構成の詳細を指定できます。App Design Center は、このテンプレートからアプリケーションが作成されるときに、これらのデフォルトを適用します。
アプリケーション デベロッパーは、デフォルト構成が要件を満たしていない場合に、接続の詳細を変更することもできます。たとえば、アプリケーションの作成時に、環境変数キー名を変更したり、接続ポートを変更したり、サービス アカウントに追加のロールを追加したりできます。
デベロッパーは、アプリケーションをデプロイする前に、テンプレートで構成したデフォルト値を表示して変更できます。デベロッパーは、サポートされているリソースごとに必要な詳細情報を構成する必要があります。
コンポーネントと接続を構成する手順は次のとおりです。
デザイン キャンバス
デザイン キャンバスで、コンポーネントをクリックします。
[構成] 領域の [プロジェクト ID] リストで、リソースをデプロイするプロジェクトを選択します。次の条件を満たすプロジェクトを選択します。
リソースの追加設定を構成します。たとえば、Cloud SQL の場合は次のように構成できます。
- 地域
- バックアップ構成
- データベース フラグ
- IP 構成
各コンポーネントの構成ドキュメントへのリンクについては、サポートされているリソースをご覧ください。
デザイン キャンバスでコンポーネントを接続すると、デフォルトの構成値を使用して接続が作成されます。接続の詳細を追加または変更する手順は次のとおりです。
デザイン キャンバスで、2 つのコンポーネント間の接続をクリックします。[接続] パネルが開き、接続パラメータが表示されます。
次のいずれかを行います。
既存の接続パラメータを変更するには、[編集] をクリックします。
新しい接続パラメータを追加するには、[パラメータを追加] をクリックします。
[キー] フィールドと [値] フィールドを更新します。たとえば、次の詳細を変更できます。
- アプリケーションの要件に沿った環境変数キー名。
- 接続ポートの値。
- サービス アカウントに追加されたロール。
[保存] をクリックします。
gcloud CLI
アプリケーション テンプレートの各コンポーネントの説明を表示して、コンポーネント パラメータを表示します。
gcloud design-center spaces application-templates components describe COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE次のように置き換えます。
COMPONENT: 説明を取得するコンポーネントのコンポーネント ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。APPLICATION_TEMPLATE: アプリケーション テンプレートのテンプレート ID。
詳細については、gcloud design-center spaces application-templates components describe をご覧ください。
変更するコンポーネントごとに、パラメータ値を含む JSON ファイルをホーム ディレクトリに作成します。
たとえば、Cloud Run コンポーネント用に次のファイルを作成できます。
[ { "key": "service_name", "value": "frontend-service" }, { "key": "project_id", "value": "DEPLOYMENT_PROJECT" } ]アプリケーション テンプレートの各コンポーネントを更新して、必要なパラメータを構成します。
gcloud design-center spaces application-templates components update COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --parameters=PARAMETERS_FILE_PATH \ --application-template=APPLICATION_TEMPLATE次のように置き換えます。
COMPONENT: 更新するコンポーネントのコンポーネント ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。PARAMETERS_FILE_PATH: コンポーネント パラメータを含む JSON ファイル。APPLICATION_TEMPLATE: アプリケーション テンプレートのテンプレート ID。
詳細については、gcloud design-center spaces application-templates components update をご覧ください。
コンポーネントの接続を説明します。
gcloud design-center spaces application-templates components connections describe CONNECTION \ --component=COMPONENT \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE次のように置き換えます。
CONNECTION: 接続 ID。COMPONENT: コンポーネント ID。APPLICATION_TEMPLATE: テンプレート ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。
詳細については、gcloud design-center spaces application-templates components connections describe をご覧ください。
コンポーネント接続パラメータを編集します。
gcloud design-center spaces application-templates components connections update CONNECTION \ --component=COMPONENT \ --application-template=APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --source-component-parameters='[{"key": SOURCE_KEY, "value": SOURCE_VALUE}]'次のように置き換えます。
CONNECTION: 接続 ID。COMPONENT: コンポーネント ID。APPLICATION_TEMPLATE: テンプレート ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。SOURCE_KEY: 新しいパラメータ キー。SOURCE_VALUE: 新しいパラメータ値。
詳細については、gcloud design-center spaces application-templates components connections update をご覧ください。
Terraform コードを編集する
アプリケーション テンプレートを設計すると、App Design Center は設計と構成の詳細を反映する Terraform コードを生成します。Terraform を編集して、コンポーネント構成の詳細を指定できます。
システムは次の Terraform ファイルを生成します。
main.tf: テンプレート内の各コンポーネントのモジュールを含むインフラストラクチャ コード。outputs.tf: デプロイされたインフラストラクチャ コンポーネントに関する情報を公開します。variables.tf:main.tfファイルで使用される変数の名前、型、説明を宣言します。input.tfvars:main.tfファイルで使用される変数の値を定義します。providers.tf: Terraform が Google Cloud API とリソースを操作するのに役立つラベルを定義します。
背景情報については、Google Cloudでの Terraform の概要をご覧ください。
Terraform コードを編集する手順は次のとおりです。
デザイン キャンバスで、[コード] をクリックします。生成された Terraform ファイルが表示されます。
[main.tf] をクリックします。システムに、各コンポーネントの Terraform モジュールが表示されます。
構成の詳細を編集します。詳細については、各サポートされているリソースの構成ドキュメントをご覧ください。
システムは編集内容を自動的に検証し、無効な編集内容がある場合はエラーを表示します。
編集内容をハイライト表示して比較する手順は次のとおりです。
[差分を表示] をクリックします。
変更を元に戻すには、余白で [変更を元に戻すにはここをクリック] をクリックします。
[差分を表示] をクリックして、比較ビューを閉じます。
編集内容を保存するには、[コードの変更を保存] をクリックします。
変更を確認する手順は次のとおりです。
- [デザイン] をクリックします。
- コンポーネントをクリックして、構成の詳細を確認します。
テンプレートを確認する
テンプレートをデベロッパーと共有する前に、意図したとおりに機能することを確認してください。テンプレートを確認する手順は次のとおりです。
- 次の設定でアプリケーションを作成します。
- [環境] リストで [TEST] を選択します。
- [重要度] リストで [低] を選択します。
- アプリケーションをデプロイします。デプロイの手順については、コンソールからアプリケーションをデプロイするをご覧ください。
- インフラストラクチャをテストして、要件を満たしていることを確認します。
- 繰り返し費用が発生しないようにするには、テスト デプロイを削除します。
テンプレートをカタログに共有する
テンプレートを検証したら、テンプレートをカタログに公開できます。このテンプレートは、カタログが共有されているスペースにアクセスできるアプリケーション デベロッパーが使用できます。
- デザイン キャンバスで、[カタログに追加] をクリックします。
- カタログが共有されているスペースを管理するには、カタログを管理するをご覧ください。
テンプレートを修正して再共有する
アプリケーションの経験を積み、ビジネスニーズが変化するにつれて、テンプレートの更新が必要になることがあります。たとえば、キャッシュ保存用の Memorystore サービスを追加して、バックエンド サービスのパフォーマンスを向上させる場合があります。
テンプレートを変更すると、テンプレート リビジョンが作成されます。既存のアプリケーションに変更を適用するには、デベロッパーがリビジョンを使用してアプリケーションをデプロイする必要があります。
App Design Center では、テンプレート リビジョンがカタログに自動的に公開されることはありません。最新のリビジョンを共有するには、テンプレートをカタログに再度公開します。
新しいリビジョンを作成する手順は次のとおりです。
ナビゲーション メニューで [テンプレート] をクリックします。
修正するアプリケーション テンプレートを選択します。キャンバスが開きます。
新しい要件に合わせてテンプレートを変更します。たとえば、新しいコンポーネントを追加して構成します。
最新のリビジョンを他のスペースと共有するには、テンプレートをカタログに再度追加します。
テンプレートを削除する
不要になったテンプレートは削除できます。
デザイン キャンバス
- デザイン キャンバスで、 [アクション] をクリックします。
- [削除] をクリックします。
gcloud CLI
アプリケーション テンプレートを削除します。
```sh
gcloud design-center spaces application-templates delete APPLICATION_TEMPLATE \
--project=PROJECT \
--location=LOCATION \
--space=SPACE
```
次のように置き換えます。
APPLICATION_TEMPLATE: 削除するアプリケーション テンプレートのテンプレート ID。PROJECT: 管理プロジェクト ID。LOCATION: アプリケーション テンプレートのリージョン。SPACE: スペース ID。
詳細については、gcloud design-center spaces application-templates delete をご覧ください。
次のステップ
他のスペースとテンプレートを共有するには、カタログを作成して共有します。
アプリケーション テンプレートの設計で独自の Terraform モジュールを使用するには、コンポーネントをインポートします。
デプロイする前に、アプリケーションを作成します。