本页介绍了如何设置 Service Directory 命名空间、在命名空间中注册服务以及向服务添加端点。您可以在注册服务时或在注册服务之前创建命名空间。
在运行本页面上列出的命令之前,请先熟悉 Service Directory 概览中的概念以及与 Service Directory 相关的关键术语。
设置项目
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your 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.
-
Make sure that billing is enabled for your 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 中填充服务,请创建一个命名空间,然后在该命名空间中注册您的服务。
配置命名空间
为您的项目在您的区域内创建一个命名空间。此区域不一定是运行所有服务和端点的位置,但必须尽可能靠近。
您可以在任何 Service Directory 区域注册服务,这些服务仍然可在全球范围内解析。在一个区域内,项目可以有多个命名空间,这些命名空间可以位于不同的区域。单个命名空间不能跨多个区域。
控制台
在 Google Cloud 控制台中,前往服务目录命名空间页面。
- 点击创建命名空间。
- 在区域列表中,为您的命名空间选择一个区域。
- 在命名空间名称字段中,为命名空间命名。
- 点击创建。
gcloud
如需在命令行上使用 Service Directory,请先安装或升级到最新版本的 Google Cloud CLI。
创建命名空间
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
如需运行此代码,请先设置 Python 开发环境并安装 Service Directory Python SDK。
Ruby
如需运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
配置服务
在该命名空间中创建服务。服务由名称和可选的服务相关注解组成。服务名称的格式有一些限制:
- 服务名称在命名空间中必须是唯一的。
- 服务名称必须遵循 DNS 标签的命名惯例。
如需创建 Private Service Connect 转发规则并将其注册为 Service Directory 中的服务,请参阅向 Service Directory 注册 Private Service Connect 端点。
如需向 Service Directory 注册标准服务,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,前往服务目录页面。
- 点击注册服务。
- 点击标准,然后点击下一步。
- 选择要注册服务的区域。
- 选择要将服务注册到的命名空间。如果您没有命名空间,请按照以下步骤创建一个:
- 在命名空间框中,点击创建命名空间。
- 输入命名空间名称。
- 点击创建。
- 输入服务名称。
- 可选:如果您想向服务添加注释,请执行以下操作:
- 点击添加注释。
- 添加键和值。
- 如需添加更多注释,请再次点击添加注释。
- 点击创建。
gcloud
如需在命令行上使用 Service Directory,请先安装或升级到最新版本的 Google Cloud CLI。
在命名空间中创建服务。
gcloud service-directory services create SERVICE \ --annotations 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
如需运行此代码,请先设置 Python 开发环境并安装 Service Directory Python SDK。
Ruby
如需运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
配置端点
注册服务后,添加一些端点。端点由唯一名称、可选 IP 地址和端口以及键值注释组成。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
:包含您的服务的命名空间的名称。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
如需运行此代码,请先设置 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
:包含您的服务的命名空间的名称。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。
删除资源
如果您不需要某项资源,可以从服务目录中将其删除。
从服务中删除端点
控制台
在 Google Cloud 控制台中,前往服务目录页面。
- 点击要删除端点的服务。
- 选中要删除的端点旁边的复选框。
- 点击删除。
- 在确认对话框中,再次点击删除。
gcloud
如需在命令行上使用 Service Directory,请先安装或升级到最新版本的 Google Cloud CLI。
gcloud service-directory endpoints delete ENDPOINT \ --service=SERVICE \ --namespace=NAMESPACE \ --location=REGION
替换以下内容:
ENDPOINT
:要删除的端点的名称。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
如需运行此代码,请先设置 Python 开发环境并安装 Service Directory Python SDK。
Ruby
如需运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
从命名空间中删除服务
您可以删除具有端点的服务。删除服务时,其所有端点也会一并删除。
您可以删除有 Service Directory 区域指向它的服务。对该服务的任何进一步 DNS 查询都会返回 NXDOMAIN
。
控制台
在 Google Cloud 控制台中,前往服务目录页面。
- 选中您要删除的服务旁边的复选框。
- 点击删除。
- 在确认对话框中,再次点击删除。
gcloud
如需在命令行上使用 Service Directory,请先安装或升级到最新版本的 Google Cloud CLI。
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
如需运行此代码,请先设置 Python 开发环境并安装 Service Directory Python SDK。
Ruby
如需运行此代码,请先设置 Ruby 开发环境并安装 Service Directory Ruby SDK。
删除命名空间
您可以删除包含服务和端点的命名空间。删除某个命名空间后,其所有服务和端点也会一并删除。
您可以删除有 Service Directory 可用区指向它的命名空间。任何进一步的 DNS 查询(不包括区域来源的 SOA/NS 请求)都会返回 NXDOMAIN
。
控制台
在 Google Cloud 控制台中,前往服务目录命名空间页面。
- 选中要删除的命名空间旁边的复选框。
- 点击删除。
- 在确认对话框中,再次点击删除。
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。
后续步骤
- 如需配置 Service Directory 区域,以便使用 DNS 查询服务,请参阅配置 Service Directory 区域。
- 如需简要了解 Service Directory,请参阅 Service Directory 概览。
- 如需了解您在使用 Service Directory 时可能会遇到的常见问题的解决方案,请参阅问题排查。