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

アプリケーション設定モデルを選択すると、管理プロジェクトで App Hub アプリケーションのアプリケーション管理境界を定義します。次に、この境界内のアプリケーションにサービスとワークロードを登録できます。アプリケーション管理プラクティスを導入するための推奨されるユースケースについては、アプリケーション ライフサイクル管理の準備をするをご覧ください。

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

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

    App Design Center に移動

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

    App Hub に移動

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

始める前に

このドキュメントでは、サポートされているリソースが登録されているアプリケーションがあることを前提としています。

必要なロール

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 などの特定のリージョンを使用します。

出力には、表示名、場所、登録ステータスなど、コンポーネントの詳細が表示されます。リソースに プロパティと属性がある場合は、それらも含まれます。

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

検出済み

アプリケーション管理境界内で検出された Google Cloud リソースは、アプリケーションのサービスまたはワークロードとして登録できます。検出されたリソースを一覧表示する手順は次のとおりです。

  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
    

プロジェクトまたはフォルダをアプリケーション管理境界外に移動するか、基盤となるリソースを削除すると、アプリケーション内のサービスとワークロードの登録ステータスが「接続解除」に変更されることがあります。接続が解除されたサービスとワークロードは、登録を解除するまでアプリケーションに残りますが、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
        }
    }
    

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

サービスまたはワークロードの登録を解除すると、アプリケーションから削除されます。基盤となるリソースは削除されません。アプリケーション管理の境界内にある場合は、登録ステータスの値が discovered のリソースになり、別のアプリケーションに登録できます。

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

コンソール

  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 から登録を削除します。

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

次のステップ