このページでは、Service Directory 名前空間を設定し、名前空間にサービスを登録して、サービスにエンドポイントを追加する方法について説明します。名前空間は、サービスを登録するとき、またはサービスを登録する前に作成できます。
このページに記載されているコマンドを実行する前に、Service Directory の概要と Service Directory に関連する重要な用語のコンセプトを理解しておいてください。
プロジェクトを設定する
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Directory API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Service Directory API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Service Directory リソースを構成する
Service Directory にサービスを入力するには、名前空間を作成し、その名前空間にサービスを登録します。
名前空間を構成する
プロジェクトのリージョンに Namespace を作成します。このリージョンは、すべてのサービスとエンドポイントが実行されている場所である必要はありませんが、可能であれば、近くにある必要があります。
サービスは、任意の Service Directory リージョンに登録できます。これらのサービスは、グローバルに解決可能です。リージョン内では、プロジェクトに複数の名前空間を設定できます。これらの名前空間は異なるリージョンに存在できます。1 つの Namespace を複数のリージョンにまたがって配置することはできません。
コンソール
Google Cloud コンソールで、[Service Directory 名前空間] ページに移動します。
- [名前空間を作成] をクリックします。
- [リージョン] リストで、Namespace のリージョンを選択します。
- [名前空間名] フィールドに、名前空間の名前を入力します。
- [作成] をクリックします。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
名前空間の作成
gcloud service-directory namespaces create NAMESPACE \ --location REGION
次のように置き換えます。
NAMESPACE: 作成する名前空間の名前。REGION: Namespace を含む Google Cloud リージョン。
省略可: Namespace に IAM ポリシーを設定します。これにより、指定されたユーザーまたはグループに、この Namespace と Namespace に属するすべてのサービスに対する指定されたロールが付与されます。
gcloud service-directory namespaces add-iam-policy-binding NAMESPACE \ --member user:someone@example.com \ --role ROLE \ --location REGION
次のように置き換えます。
NAMESPACE: 作成した Namespace の名前。ROLE: 付与するロール。REGION: 名前空間を含む Google Cloud リージョン。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
サービスの構成
Namespace にサービスを作成します。サービスは、名前と、オプションのサービス関連アノテーションで構成されます。サービス名の形式にはいくつかの制限があります。
- サービス名は Namespace 内で一意である必要があります。
- サービス名は DNS ラベルの命名規則に従う必要があります。
Private Service Connect 転送ルールを作成して Service Directory にサービスとして登録するには、Private Service Connect エンドポイントを Service Directory に登録するをご覧ください。
標準サービスを Service Directory に登録する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[サービス ディレクトリ] ページに移動します。
- [Register Service] をクリックします。
- [Standard] をクリックし、[次へ] をクリックします。
- サービスを登録するリージョンを選択します。
- サービスを登録する名前空間を選択します。名前空間がない場合は、次の手順で作成します。
- [名前空間] ボックスで、[名前空間を作成] をクリックします。
- 名前空間の名前を入力します。
- [作成] をクリックします。
- サービス名を入力します。
- 省略可: サービスにアノテーションを追加する場合は、次の操作を行います。
- [メモを追加] をクリックします。
- [キー] と [値] を追加します。
- メモをさらに追加するには、[メモを追加] をもう一度クリックします。
- [作成] をクリックします。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
Namespace に Service を作成します。
gcloud service-directory services create SERVICE \ --annotations KEY_1=VALUE_1,KEY_2=VALUE_2 \ --namespace NAMESPACE \ --location REGION
次のように置き換えます。
SERVICE: 作成するサービスの名前。NAMESPACE: サービスを含む Namespace の名前。REGION: Namespace を含む Google Cloud リージョン。KEY_1、VALUE_1、KEY_2、VALUE_2: ペアで設定されたキーと値の文字列。
省略可: サービスに IAM ポリシーを設定します。これにより、指定されたユーザーまたはグループに、このサービスとサービスに属するすべてのエンドポイントに対する指定されたロールが付与されます。
gcloud service-directory services add-iam-policy-binding SERVICE \ --member user:someone@example.com \ --role ROLE \ --namespace NAMESPACE \ --location REGION
次のように置き換えます。
SERVICE: サービスに付けた名前。NAMESPACE: サービスを含む Namespace の名前ROLE: 付与するロール。REGION: Namespace を含む Google Cloud リージョン。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
エンドポイントを構成する
サービスを登録したら、エンドポイントを追加します。エンドポイントは、一意の名前、IP アドレスとポート(省略可)、Key-Value アノテーションで構成されます。IP アドレスを指定する場合は、有効な IPv4 アドレスまたは IPv6 アドレスにする必要があります。
コンソール
Google Cloud コンソールで、[サービス ディレクトリ] ページに移動します。
- サービスをクリックします。
- [エンドポイントを追加] をクリックします。
- [エンドポイント名] を指定します。
- IPv4 または IPv6 の IP アドレスを入力します。
- [ポート] 番号を入力します。
- 省略可: エンドポイントにアノテーションを追加する場合は、次の操作を行います。
- [メモ] で [メモを追加] をクリックします。
- [キー] と [値] を追加します。
- メモをさらに追加するには、[メモを追加] をもう一度クリックします。
- [作成] をクリックします。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
サービスを登録したら、エンドポイントを追加します。
gcloud service-directory endpoints create ENDPOINT \ --address IP_ADDRESS \ --port PORT_NUMBER \ --annotations KEY_1=VALUE_1,KEY_2=VALUE_2 \ --service SERVICE \ --namespace NAMESPACE \ --location REGION
gcloud service-directory endpoints create ENDPOINT2 \ --address IP_ADDRESS2 \ --port PORT_NUMBER2 \ --service SERVICE \ --namespace NAMESPACE \ --location REGION
次のように置き換えます。
ENDPOINTとENDPOINT2: サービスに作成するエンドポイントの名前。IP_ADDRESSとIP_ADDRESS2: エンドポイントの IPv6 アドレスと IPv4 アドレス。PORT_NUMBERとPORT_NUMBER2: エンドポイントが実行されているポート。SERVICE: エンドポイントを含むサービスの名前。NAMESPACE: サービスを含む Namespace の名前。REGION: Namespace を含む Google Cloud リージョン。KEY_1、VALUE_1、KEY_2、VALUE_2: ペアで設定されたキーと値の文字列。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
サービスを解決する
Service Directory を使用すると、クライアントは DNS、HTTP、gRPC を使用してサービスを解決できます。サービスを解決すると、サービスのすべてのプロパティ、すべてのエンドポイント、すべてのアノテーションが返されます。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud service-directory services resolve SERVICE \ --namespace NAMESPACE \ --location REGION
次のように置き換えます。
SERVICE: 解決するサービスの名前。NAMESPACE: サービスを含む Namespace の名前。REGION: 名前空間を含む Google Cloud リージョン。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
リソースの削除
リソースが不要になった場合は、Service Directory から削除できます。
サービスからエンドポイントを削除する
コンソール
Google Cloud コンソールで、[サービス ディレクトリ] ページに移動します。
- エンドポイントを削除するサービスをクリックします。
- 削除するエンドポイントの横にあるチェックボックスをオンにします。
- [削除] をクリックします。
- 確認ダイアログで、もう一度 [削除] をクリックします。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud service-directory endpoints delete ENDPOINT \
--service=SERVICE \
--namespace=NAMESPACE \
--location=REGION
次のように置き換えます。
ENDPOINT: 削除するエンドポイントの名前。SERVICE: エンドポイントを含むサービスの名前。NAMESPACE: サービスを含む Namespace の名前。REGION: Namespace を含む Google Cloud リージョン。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
Namespace からサービスを削除する
エンドポイントを持つサービスを削除できます。サービスを削除すると、そのエンドポイントもすべて削除されます。
Service Directory ゾーンが指しているサービスは削除できます。そのサービスに対するそれ以降の DNS クエリは NXDOMAIN を返します。
コンソール
Google Cloud コンソールで、[サービス ディレクトリ] ページに移動します。
- 削除するサービスの横にあるチェックボックスをオンにします。
- [削除] をクリックします。
- 確認ダイアログで、もう一度 [削除] をクリックします。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud service-directory services delete SERVICE \
--namespace=NAMESPACE \
--location=REGION
次のように置き換えます。
SERVICE: 削除するサービスの名前。NAMESPACE: サービスを含む Namespace の名前。REGION: Namespace を含む Google Cloud リージョン。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
Namespace を削除する
サービスとエンドポイントがある Namespace を削除できます。Namespace が削除されると、そのすべてのサービスとエンドポイントも削除されます。
Service Directory ゾーンが指している名前空間は削除できます。それ以降の DNS クエリ(ゾーンオリジンの SOA/NS リクエストを除く)は NXDOMAIN を返します。
コンソール
Google Cloud コンソールで、[Service Directory 名前空間] ページに移動します。
- 削除する Namespace の横にあるチェックボックスをオンにします。
- [削除] をクリックします。
- 確認ダイアログで、もう一度 [削除] をクリックします。
gcloud
コマンドラインで Service Directory を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud service-directory namespaces delete NAMESPACE \
--location=REGION
次のように置き換えます。
NAMESPACE: 削除する名前空間の名前。REGION: 名前空間を含む Google Cloud リージョン。
C#
このコードを実行するには、まず C# 開発環境を設定し、Service Directory C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Service Directory Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Service Directory Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Service Directory Node.js SDK をインストールします。
PHP
このコードを実行するには、まず PHP 開発環境を設定し、Service Directory PHP SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Service Directory Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Service Directory Ruby SDK をインストールします。
次のステップ
- DNS を使用してサービスにクエリを実行できるように Service Directory ゾーンを構成するには、Service Directory ゾーンを構成するをご覧ください。
- Service Directory の概要については、Service Directory の概要をご覧ください。
- Service Directory の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。