本页面介绍如何设置 Service Directory 命名空间、向命名空间添加服务以及向服务添加端点。在运行本页上的命令之前,请先熟悉 Service Directory 概览和与 Service Directory 相关的关键术语中的概念。
设置项目
- 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Service Directory API.
- Install the Google Cloud CLI.
-
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.
-
Enable the Service Directory API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
配置 Service Directory 资源
配置命名空间
为所选区域为您的项目创建一个命名空间。 此区域不必位于运行所有服务和端点的位置,但应尽可能关闭。您可以在任何 Service Directory 区域中注册服务;它们仍然可以在全球范围内解析。 一个项目可以是一个区域内的多个命名空间,而多个区域可以具有命名空间。单个命名空间不能跨越多个区域。
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击创建命名空间。
- 在区域下拉菜单中,为您的命名空间选择一个区域。
- 在命名空间名称字段中,为命名空间命名。
- 点击创建。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
创建命名空间
gcloud service-directory namespaces create NAMESPACE \ --location REGION
请替换以下内容:
NAMESPACE
:您要创建的命名空间的名称。REGION
:包含命名空间的 Google Cloud 区域。
(可选):在命名空间上设置 IAM 政策。此操作会向指定用户或群组分配此命名空间和属于该命名空间的所有服务。
gcloud service-directory namespaces add-iam-policy-binding NAMESPACE \ --member user:someone@example.com \ --role ROLE \ --location REGION
请替换以下内容:
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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
配置服务
在命名空间中创建服务。服务由名称和可选的服务相关元数据组成。服务名称格式有一些限制:
- 服务名称在命名空间中必须是唯一的。
- 服务名称必须遵循 DNS 标签的命名惯例。
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击命名空间。
- 点击添加服务。
- 输入服务名称。
- 可选。如果要向服务添加元数据,请执行以下操作:
- 点击服务元数据。
- 点击添加元数据。
- 添加键和值。
- 要添加更多元数据对,请再次点击添加元数据。
- 点击创建。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
在命名空间中创建服务。
gcloud service-directory services create SERVICE \ --metadata KEY_1=VALUE_1,KEY_2=VALUE_2 \ --namespace NAMESPACE \ --location REGION
请替换以下内容:
SERVICE
:您要创建的服务的名称。NAMESPACE
:您为服务提供的命名空间的名称。REGION
:包含命名空间的 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
:您创建的命名空间的名称。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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
配置端点
注册服务后,添加一些端点。端点由唯一名称以及地址、端口和键/值元数据的可选字段组成。如果指定地址,则该地址必须是有效的 IPv4 或 IPv6 地址。
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击命名空间。
- 点击相应服务。
- 点击添加端点。
- 提供端点名称。
- 输入 IPv4 或 IPv6 IP 地址。
- 输入端口号。
- 可选。如果要向端点添加元数据,请执行以下操作:
- 点击端点元数据。
- 点击添加元数据。
- 添加键和值。
- 要添加更多元数据对,请再次点击添加元数据。
- 点击创建。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
注册服务后,添加一些端点。
gcloud service-directory endpoints create ENDPOINT \ --address IP_ADDRESS \ --port PORT_NUMBER \ --metadata 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
:您为服务提供的命名空间的名称。REGION
:包含命名空间的 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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
解析服务
Service Directory 允许客户端使用 DNS、HTTP 和 gRPC 解析服务。解析该服务可返回服务的所有属性以及所有端点和元数据。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
gcloud service-directory services resolve SERVICE \ --namespace NAMESPACE \ --location REGION
请替换以下内容:
SERVICE
:您要创建的服务的名称。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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
删除资源
从服务中删除端点
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击要从中删除端点的命名空间。
- 点击要从中删除端点的服务。
- 点击要删除的端点旁边的复选框。
- 点击删除。
- 在确认对话框中,再次点击删除。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
gcloud service-directory endpoints delete ENDPOINT \ --service=SERVICE \ --namespace=NAMESPACE \ --location=REGION
请替换以下内容:
SERVICE
:您要创建的服务的名称。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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
从命名空间删除服务
您可以删除具有端点的服务。删除服务后,其所有端点也会一并删除。
您可以删除具有指向 Service Directory 地区的服务。该服务的任何进一步 DNS 查询都将返回 NXDOMAIN
。
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击要从中删除服务的命名空间。
- 点击要删除的服务旁边的复选框。
- 点击删除。
- 在确认对话框中再次点击删除。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
gcloud service-directory services delete SERVICE \ --namespace=NAMESPACE \ --location=REGION
请替换以下内容:
SERVICE
:您要创建的服务的名称。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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
删除命名空间
您可以删除具有服务和端点的命名空间。删除命名空间后,其所有服务和端点也将一并删除。
您可以删除具有指向 Service Directory 地区的命名空间。任何进一步的 DNS 查询(不包括地区来源的 SOA/NS 请求)会返回 NXDOMAIN
。
控制台
- 转到 Google Cloud Console 中的“服务目录命名空间”页面。
转到“服务目录命名空间”页面 - 点击要删除的命名空间旁边的复选框。
- 点击删除。
- 在确认对话框中,再次点击删除。
gcloud
要在命令行中使用 Service Directory,请先安装或升级到最新版本的 Cloud SDK。
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
Ruby
要运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
后续步骤
- 如需配置 Service Directory 地区,以便使用 DNS 查询服务,请参阅 Service Directory 地区。
- 要大致了解 Service Directory,请参阅 Service Directory 概览。
- 如需解决使用 Service Directory 时可能会遇到的常见问题的解决方案,请参阅问题排查。