サービスとワークロードを管理する

App Hub を設定すると、アプリケーションの管理境界が作成されます。この境界は、設定モデルに応じて、管理プロジェクトまたはアプリケーション管理用に構成したホスト プロジェクトとサービス プロジェクトのコレクションのいずれかです。この管理境界内では、サービスとワークロードがアプリケーションとして登録されます

構成のドリフトを回避し、明確な信頼できる情報源を維持するには、アプリケーション リソースが最初に定義された環境で管理することをおすすめします。

  • App Design Center テンプレートからデプロイされたアプリケーションの場合: App Design Center を使用してアプリケーションを管理および更新します。アプリケーション設計の変更については、テンプレートを修正するか、アプリケーション リビジョンを作成して、アプリケーションやコンポーネントの詳細などの設定を更新できます。

    App Design Center に移動

  • App Hub でリソースを登録して作成されたアプリケーションの場合: アプリケーション、そのサービス、ワークロードを App Hub 内で直接管理します。

    App Hub に移動

このページでは、App Hub 内で直接検出または登録されたサービスとワークロードをアプリケーションとして管理する方法について説明します。これらの操作は、 Google Cloud コンソールまたは Google Cloud CLI を使用して実行できます。テンプレートからデプロイされたアプリケーションについては、Application Design Center のドキュメントをご覧ください。

始める前に

App Hub でサービスとワークロードを表示、更新、登録解除するには、次の手順を完了します。

  1. サポートされている設定モデルのいずれかを使用して、App Hub を設定します。
  2. サポートされているリソースをアプリケーションに登録する

必要なロール

App Hub でサービスとワークロードを管理するために必要な権限を取得するには、設定モデル(管理プロジェクト、ホスト プロジェクト、サービス プロジェクト)のアプリケーション管理境界に対する次の IAM ロールを付与するよう管理者に依頼してください。

  • サービスとワークロードを更新して登録解除する: App Hub 編集者 roles/apphub.editor
  • サービスとワークロードを表示する: App Hub 閲覧者 roles/apphub.viewer

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

App Hub のロールの詳細については、App Hub の IAM ロールと権限をご覧ください。

サービスとワークロードの詳細を表示する

App Hub 管理境界内で、サービスとワークロードの詳細(ロケーションやアプリケーションへの登録ステータスなど)を表示する手順は次のとおりです。

コンソール

アプリケーションから登録済みまたは切り離し済みのサービスとワークロードの詳細を表示する:

  1. Google Cloud コンソールの [ようこそ] ページで、プロジェクト ピッカーを使用して管理プロジェクトまたはホスト プロジェクトを選択します。

    [ようこそ] に移動

  2. App Hub の [アプリケーション] ページに移動します。

    [アプリケーション] に移動

    このページには、アプリケーションのリストが表示されます。

  3. サービスまたはワークロードを表示するアプリケーションの名前をクリックします。

  4. [サービスとワークロード] タブで、表示するサービスまたはワークロードの名前をクリックします。

  5. リソースの [詳細] ページで、表示名、ロケーション、登録ステータス、属性などの詳細を確認できます。

または、登録ステータスの値が [検出済み] または [登録済み] のすべてのサービスとワークロードのリストを表示します。

  1. App Hub の [サービスとワークロード] ページに移動します。

    [サービスとワークロード] に移動

    このページには、検出および登録されたすべてのサービスとワークロードのリストが表示されます。

  2. [フィルタ] フィールドを使用して、[環境] や [登録ステータス] などの属性で結果を絞り込みます。

gcloud

アプリケーションから登録済みまたは切り離し済みのサービスとワークロードの詳細を表示する:

  1. 管理プロジェクトまたはホスト プロジェクトのプロジェクト ID を確認します。

  2. アプリケーションのサービスまたはワークロードを説明して、詳細を確認します。

    • サービスの説明:

      gcloud apphub applications services describe SERVICE \
          --project=PROJECT_ID \
          --application=APPLICATION \
          --location=LOCATION
      

      次のように置き換えます。

      • SERVICE: サービスの ID。
      • PROJECT_ID: ホスト プロジェクトまたは管理プロジェクトの ID。
      • APPLICATION: サービスが登録されているアプリケーションの ID。
      • LOCATION: サービスのロケーション。グローバル リソースの場合は global を使用し、リージョン リソースの場合は us-east1 などの特定のリージョンを使用します。
    • ワークロードの説明:

      gcloud apphub applications workloads describe WORKLOAD \
          --project=PROJECT_ID \
          --application=APPLICATION \
          --location=LOCATION
      

      次のように置き換えます。

      • WORKLOAD: ワークロードの ID。
      • PROJECT_ID: ホスト プロジェクトまたは管理プロジェクトの ID。
      • APPLICATION: ワークロードが登録されているアプリケーションの ID。
      • LOCATION: ワークロードのロケーション。グローバル リソースの場合は global を使用し、リージョン リソースの場合は us-east1 などの特定のリージョンを使用します。

出力には、表示名、ロケーション、登録ステータス、属性など、リソースの詳細が表示されます。

または、登録ステータスの値が [検出済み] または [登録済み] のすべてのサービスとワークロードのリストを表示します。

検出されたリソース

検出されたリソースは、アプリケーションに登録できます。検出されたリソースを一覧表示する手順は次のとおりです。

  1. 検出されたサービスを一覧表示します。

    gcloud apphub discovered-services list \
        --project=PROJECT_ID \
        --location=LOCATION
    

    次のように置き換えます。

    • PROJECT_ID: ホスト プロジェクトまたは管理プロジェクトの ID。
    • LOCATION: リソースを検出するロケーション。グローバル リソースの場合は global を使用し、リージョン リソースの場合は us-east1 などの特定のリージョンを使用します。
  2. 検出されたワークロードを一覧表示します。

    gcloud apphub discovered-workloads list \
        --project=PROJECT_ID \
        --location=LOCATION
    

登録済みリソース

登録されたリソースはアプリケーションの一部です。特定アプリケーションの登録済みリソースを一覧表示する手順は次のとおりです。--filter フラグを使用して、属性に基づいてリストをフィルタできます。

  1. アプリケーション内の登録済みサービスを一覧表示します。

    gcloud apphub applications services list \
        --application=APPLICATION_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
        --filter=FILTER_EXPRESSION
    

    次のように置き換えます。

    • APPLICATION_NAME: アプリケーションの名前。この値は、アプリケーションの作成時に指定します。
    • PROJECT_ID: ホスト プロジェクトまたは管理プロジェクトの ID。
    • LOCATION: リソースのロケーション。グローバル リソースの場合は global を使用し、リージョン リソースの場合は us-east1 などの特定のリージョンを使用します。
    • 省略可: FILTER_EXPRESSION: 属性を指定するフィルタ式。たとえば、PRODUCTION 環境タイプのリソースを一覧表示するには、attributes.environment.type=PRODUCTION を使用します。
  2. アプリケーション内の登録済みワークロードを一覧表示します。

    gcloud apphub applications workloads list \
        --application=APPLICATION_NAME \
        --project=PROJECT_ID \
        --location=LOCATION \
        --filter=FILTER_EXPRESSION
    

Google Cloudリソースの組織構造を変更するか、基盤となるリソースを削除すると、アプリケーションのサービスとワークロードの登録ステータスが「接続解除」に変わることがあります。接続が解除されたサービスとワークロードは、登録を解除するまでアプリケーションに残りますが、App Hub で管理またはモニタリングすることはできなくなります。詳細については、サービスとワークロードの登録ステータスをご覧ください。

サービスまたはワークロードをアプリケーションに再接続するには、設定モデルのリソース階層に基づいて、サービスまたはワークロードを再度登録する必要があります。

サービスとワークロードの属性を更新する

アプリケーションに登録されているサービスとワークロードのユーザー定義属性を変更する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [ようこそ] ページで、プロジェクト ピッカーを使用して管理プロジェクトまたはホスト プロジェクトを選択します。

    [ようこそ] に移動

  2. App Hub の [アプリケーション] ページに移動します。

    [アプリケーション] に移動

    このページには、アプリケーションのリストが表示されます。

  3. サービスまたはワークロードの属性を更新するアプリケーションの名前をクリックします。

  4. [サービスとワークロード] タブで、更新するサービスまたはワークロードの名前を見つけます。

  5. more_vert [その他] をクリックし、 [サービスを編集] または [ワークロードを編集] をクリックします。

  6. 開いたペインで、必要に応じてフィールドを編集し、[保存] をクリックします。

gcloud

  1. 管理プロジェクトまたはホスト プロジェクトのプロジェクト ID を確認します。

  2. サービスまたはワークロードの属性を更新します。

    • サービス属性を更新します。

      gcloud apphub applications services update SERVICE_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --display-name=DISPLAY_NAME \
          --criticality-type=CRITICALITY_LEVEL \
          --environment-type=ENVIRONMENT \
          --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
          --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
          --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
      

      SERVICE_NAME は、更新するサービスの名前に置き換えます。

    • ワークロード属性を更新します。

      gcloud apphub applications workloads update WORKLOAD_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION \
          --display-name=DISPLAY_NAME \
          --criticality-type=CRITICALITY_LEVEL \
          --environment-type=ENVIRONMENT \
          --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
          --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
          --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
      

      WORKLOAD_NAME は、更新するワークロードの名前に置き換えます。

      次の必須フラグとオプション フラグを置き換えます。

      • 必須: APPLICATION_NAME: アプリケーションの名前。この値は、アプリケーションの作成時に指定します。
      • 必須: PROJECT_ID: ホスト プロジェクトまたは管理プロジェクトの ID。
      • 必須: LOCATION: リソースのロケーション。グローバル リソースの場合は global を使用し、リージョン リソースの場合は us-east1 などの特定のリージョンを使用します。
      • 省略可: DISPLAY_NAME: リソースの表示名。
      • 省略可: CRITICALITY_LEVEL: リソースの重要度。次のいずれかの値を使用します。

        • MISSION_CRITICAL
        • HIGH
        • MEDIUM
        • LOW
      • 省略可: ENVIRONMENT: ソフトウェア ライフサイクルのステージ。次の値のいずれかを使用できます。

        • PRODUCTION
        • STAGING
        • DEVELOPMENT
        • TEST
      • 省略可: DEV_NAMEDEV_EMAIL: それぞれデベロッパー オーナーの表示名とメールアドレス。

      • 省略可: OPERATOR_NAMEOPERATOR_EMAIL: オペレーター オーナーの表示名とメールアドレス。

      • 省略可: BUSINESS_NAMEBUSINESS_EMAIL: ビジネス オーナーの表示名とメールアドレス。

Terraform

Terraform を使用してサービスまたはワークロードの属性を更新するには、構成ファイル内の対応する google_apphub_service または google_apphub_workload リソース ブロック内の引数を変更します。変更を適用すると、Terraform は新しい構成に合わせてリソースを更新します。

次の例では、リージョン アプリケーションのサービスとワークロードの重要度と環境の属性を更新します。

  • サービス属性を更新します。

    resource "google_apphub_service" "example" {
        # ... other arguments
        attributes {
            criticality {
                type = "HIGH" # Updated criticality
            }
            environment {
                type = "PRODUCTION"
            }
            # ... other attributes
        }
    }
    
  • ワークロード属性を更新します。

    resource "google_apphub_workload" "example" {
        # ... other arguments
        attributes {
            criticality {
                type = "HIGH" # Updated criticality
            }
            environment {
                type = "PRODUCTION"
            }
            # ... other attributes
        }
    }
    

サービスとワークロードの登録を解除する

サービスまたはワークロードの登録を解除すると、アプリケーションから削除されます。基盤となるリソースは削除されず、再び検出されたリソースになり、別のアプリケーションに登録できるようになります。

サービスとワークロードの登録を解除する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールの [ようこそ] ページで、プロジェクト ピッカーを使用して管理プロジェクトまたはホスト プロジェクトを選択します。

    [ようこそ] に移動

  2. App Hub の [アプリケーション] ページに移動します。

    [アプリケーション] に移動

    このページには、アプリケーションのリストが表示されます。

  3. サービスまたはワークロードの登録を解除するアプリケーションの名前をクリックします。

  4. [サービスとワークロード] タブで、登録を解除するサービスまたはワークロードの名前をクリックします。

  5. リソースの詳細ページで、[登録解除] をクリックします。

gcloud

  1. 管理プロジェクトまたはホスト プロジェクトのプロジェクト ID を確認します。

  2. サービスまたはワークロードの登録を解除します。

    • サービスの登録を解除します。

      gcloud apphub applications services delete SERVICE_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION
      

      次のように置き換えます。

      • SERVICE_NAME: 登録解除するサービスの名前。
      • APPLICATION_NAME: アプリケーションの名前。この値は、アプリケーションの作成時に指定します。
      • PROJECT_ID: ホスト プロジェクトまたは管理プロジェクトの ID。
      • LOCATION: リソースのロケーション。グローバル リソースの場合は global を使用し、リージョン リソースの場合は us-east1 などの特定のリージョンを使用します。
    • ワークロードの登録を解除します。

      gcloud apphub applications workloads delete WORKLOAD_NAME \
          --application=APPLICATION_NAME \
          --project=PROJECT_ID \
          --location=LOCATION
      

      WORKLOAD_NAME は、登録解除するワークロードの名前に置き換えます。

Terraform

Terraform で管理されているサービスまたはワークロードの登録を解除するには、構成ファイルから対応する google_apphub_service または google_apphub_workload リソース ブロックを削除し、terraform apply を実行します。変更を適用すると、Terraform は App Hub から登録を削除します。

すべてのサービスとワークロードの登録を解除したら、アプリケーションを削除できます。

次のステップ