リポジトリにラベルを付ける

ラベルを使用して、関連するリポジトリを識別してグループ化します。1 つのリポジトリに複数のラベルを指定できます。

Google Cloud 組織のレポート、監査、アクセス制御のために Google Cloud 全体のリポジトリやその他のリソースをグループ化するには、タグを使用します。タグとラベルは互いに独立して機能するため、両方を同じリポジトリに適用できます。

ラベルとは

ラベルは、Google Cloud Repository に割り当てることができる Key-Value ペアです。ラベルは、これらのリソースを整理し、必要な粒度に基づきコストを大規模管理することに役立ちます。各リソースにラベルを設定し、そのラベルに基づいてリソースをフィルタできます。ラベルに関する情報は課金システムに転送され、請求料金をラベル別に分類できます。組み込みの請求レポートにより、リソースラベルで費用をフィルタしてグループ化できます。また、ラベルを使用して請求データ エクスポートをクエリすることもできます。

ラベルの要件

リソースに適用するラベルは、次の要件を満たす必要があります。

  • 各リソースには、最大 64 個のラベルを設定できます。
  • ラベルは、Key-Value ペアでなければなりません。
  • キーは 1 文字以上、63 文字までにする必要があります。空にすることはできません。値は 63 文字以下にします。空にすることもできます。
  • キーと値には、小文字、数字、アンダースコア、ダッシュのみを使用できます。すべての文字は UTF-8 でエンコードする必要があります。国際文字も使用できます。キーは、小文字または国際文字で始める必要があります。
  • ラベルのキー部分は、単一のリソース内では一意である必要があります。ただし、複数のリソースで同じキーを使用できます。

これらの上限は、各ラベルのキーと値だけでなく、ラベルのある個々の Google Cloud リソースにも適用されます。1 つのプロジェクト内のすべてのリソースに適用できるラベルの数に上限はありません。

ラベルの一般的な用途

次に、ラベルの一般的な使用例を示します。

  • チームまたはコストセンターのラベル: チームやコストセンターに基づいてラベルを追加し、各チームが所有するリポジトリを区別します(例: team:researchteam:analytics)。この種類のラベルは、費用計算または予算作成に使用できます。

  • コンポーネント ラベル: component:rediscomponent:frontendcomponent:ingestcomponent:dashboard など。

  • 環境ラベルまたはステージのラベル: environment:productionenvironment:test など。

  • 状態のラベル: state:activestate:readytodeletestate:archive など。

  • オーナー権限ラベル: 運用担当チームの識別に使用されます(例: team:shopping-cart)。

タイムスタンプやすべての API 呼び出しに個別に値を作成するなど、一意のラベルを多数作成することはおすすめしません。このアプローチの問題は、値が頻繁に変更される場合やカタログを混乱させるキーを使用している場合に、リソースを効果的にフィルタして報告することが困難になることです。

ラベルとタグ

ラベルは、リソースに対するクエリ可能なアノテーションとして使用できますが、ポリシーの条件の設定には使用できません。タグを使用すると、ポリシーをきめ細かく制御することによって、リソースに特定のタグが付加されているかどうかに基づいて、条件付きでポリシーを許可または拒否することが可能になります。詳細については、タグの概要をご覧ください。

ラベルの追加と更新

リポジトリには 1 つ以上のラベルを追加できます。既存のラベルの値を編集することもできます。

リポジトリにラベルを付けるには、次の手順を行います。

コンソール

  1. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. リポジトリを選択します。

  3. リポジトリ リスト横に情報パネルが開いていない場合は、[情報パネルを表示] をクリックします。

  4. 情報パネルで [ラベル] タブをクリックします。

  5. ラベルの追加、編集

    1. ラベルを追加するには、[ラベルを追加] をクリックします。ラベルのキーと値のペアを指定し、[保存] をクリックします。
    2. 既存のラベルを編集するには、ラベルの値を変更して、[保存] をクリックします。

gcloud

追加または編集するラベルを 1 つ以上指定できます。

  • ラベルが存在する場合は、対応する値が更新されます。
  • ラベルが存在しない場合は、ラベルが作成されます。
  • コマンドに --clear-labels フラグが含まれている場合、新しいラベルを追加する前に既存のすべてのラベルが削除されます。

次のコマンドを実行します。

gcloud artifacts repositories update REPOSITORY [--project=PROJECT] \
[--location=LOCATION] --update-labels="KEY=VALUE,..."

Where

  • REPOSITORY はリポジトリの名前です。 デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • PROJECT は、Google Cloud プロジェクト ID です。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。
  • LOCATION は、リージョンまたはマルチリージョンのロケーションです。このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。
  • KEY=VALUE,... は、Key-Value ペアとして指定されたカンマ区切りのラベルのリストです。例: team=team-1,product=example_product,stage=development

このコマンドの詳細をご覧になるには、次のコマンドを実行します。

gcloud artifacts repositories update --help

ラベルによるリポジトリのフィルタリング

リポジトリ リストは、Google Cloud コンソールまたは Google Cloud CLI を使用してラベルでフィルタリングできます。

コンソール

  1. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. [フィルタ] フィールドで、フィルタ条件として [ラベル] を選択し、Key-Value、Key-Value ペアを入力します。

    たとえば、env:dev というラベルのリポジトリのみを表示するには、次のいずれかを入力します。

    • キー env を入力します。
    • dev を入力します。
    • Key-Value ペア env:dev を入力します。

gcloud

ラベルに基づいてフィルタするには、gcloud artifacts repositories list コマンドで --filter フラグを使用します。

--filter フラグの値は labels.KEY=VALUE 形式にする必要があります。たとえば、キーが env で値が dev のラベルでアクティブなプロジェクトのリポジトリをフィルタする場合は、次のコマンドを実行します。

gcloud artifacts repositories list --filter labels.env=dev

gcloud CLI のフィルタ構文の詳細については、gcloud topic filters のドキュメントをご覧ください。

ラベルの削除

ラベルを削除するには、次の手順を行います。

コンソール

  1. Google Cloud コンソールで [リポジトリ] ページを開きます。

    [リポジトリ] ページを開く

  2. [リポジトリを選択] をクリックします。

  3. リポジトリ リスト横に情報パネルが開いていない場合は、[情報パネルを表示] をクリックします。

  4. 情報パネルで [ラベル] タブをクリックします。

  5. 削除するラベルの横にある [アイテムを削除] をクリックします。

gcloud

特定のラベルを削除することも、リポジトリのすべてのラベルの削除することもできます。

特定のラベルを削除するには、次のコマンドを実行します。

gcloud artifacts repositories update REPOSITORY [--project=PROJECT] \
[--location=LOCATION] --remove-labels="LABEL,..."

すべてのラベルを削除するには、次のコマンドを実行します。

gcloud artifacts repositories update REPOSITORY \
[--project=PROJECT] [--location=LOCATION] --clear-labels

Where

  • REPOSITORY はリポジトリの名前です。 デフォルト リポジトリを構成した場合は、このフラグを省略してデフォルトを使用できます。
  • PROJECT は、Google Cloud プロジェクト ID です。このフラグを省略すると、現在のプロジェクトまたはデフォルトのプロジェクトが使用されます。
  • LOCATION は、リージョンまたはマルチリージョンのロケーションです。このフラグを使用して、特定のロケーションのリポジトリを表示します。デフォルト ロケーションを構成している場合は、このフラグを省略してデフォルトを使用できます。
  • LABEL,... は、各 KEY=VALUE ペアの鍵、カンマ区切りのラベルのリストです。例: team,product

このコマンドの詳細をご覧になるには、次のコマンドを実行します。

   gcloud artifacts repositories update --help