如需以编程方式访问 Google Cloud 产品和服务,请使用 Cloud API。这些 API 公开了一个简单的 JSON REST 接口。访问 Cloud API 的推荐方法是使用 Cloud 客户端库。
Cloud Code 可让您轻松将适用于 Cloud API 和您所用语言的 Cloud 客户端库添加到您的项目中。在同一视图中,您可以搜索每个 API 的示例,并轻松将示例整合到应用中。
浏览 Cloud API
如需浏览所有可用的 Google Cloud API,请执行以下操作:
点击 Cloud Code,然后展开 Cloud API 部分。
“Cloud API”视图会按类别对 Cloud API 进行分组。
如需查看 API 的详细信息,请点击 API 名称。系统会显示服务名称、状态、客户端库的安装说明、文档和代码示例等详细信息。
启用 Cloud API
如需使用 API 详细信息页面为项目启用 Cloud API,请按照以下步骤操作:
- 在 Cloud API 详细信息页面上,选择您要为其启用 Cloud API 的项目。
- 点击启用 API。 启用 API 后,系统会显示一条消息来确认更改。
将客户端库添加到项目中
除了使用 Cloud Code 浏览和启用 Cloud API 之外,您还可以向项目添加特定语言的客户端库。
如需安装客户端库,请按照 API 详细信息页面上与您的语言对应的说明进行操作。
使用 API 示例
您可以在 API 浏览器中搜索并使用每个 API 的代码示例。
点击 Cloud Code,然后展开 Cloud API 部分。
如需打开详细信息视图,请点击 API 的名称。
如需查看 API 的代码示例,请点击代码示例。
要过滤示例列表,请输入要搜索的文本或选择 编程语言。
如需查看样本,请点击样本名称。您还可以选择将示例复制到剪贴板或查看 GitHub 中的示例。
设置身份验证
启用所需的 API 并添加必要的客户端库后,您需要对应用进行配置,以便成功通过身份验证。您的配置取决于您的开发类型和运行所在的平台。
完成身份验证步骤后,您的应用可以进行身份验证并准备好进行部署。
本地开发
本地机器
如果您在 IDE 中登录 Google Cloud,则 Cloud Code 会设置您的应用默认凭据 (ADC),您可以跳过此步骤。如果您登录了 Google Cloud (例如,使用 gcloud CLI), 设置 ADC,并让 Google Cloud 客户端库进行身份验证 来通过 ADC:
gcloud auth login --update-adc
minikube
如果您在 IDE 中登录 Google Cloud,则 Cloud Code 会设置您的应用默认凭据 (ADC),您可以跳过此步骤。如果您是在 IDE 之外登录 Google Cloud(例如,使用 gcloud CLI),请设置您的 ADC,并运行以下命令,让 Google Cloud 客户端库通过 ADC 进行身份验证:
gcloud auth login --update-adc
- 通过运行
minikube start --addons gcp-auth
启动 minikube。此命令会将您的 ADC 装载到 pod 中。如需详细了解如何使用 Google Cloud 进行 minikube 身份验证,请参阅 minikube gcp-auth 文档。
其他本地 K8s 集群
如果您在 IDE 中登录 Google Cloud,则 Cloud Code 会设置您的应用默认凭据 (ADC),您可以跳过此步骤。如果您登录了 Google Cloud (例如,使用 gcloud CLI), 设置 ADC,并让 Google Cloud 客户端库进行身份验证 来通过 ADC:
gcloud auth login --update-adc
- 为确保 Google Cloud 客户端库能够找到您的凭据,请通过修改部署清单在 Kubernetes pod 中装载本地
~/.config/gcloud
目录。 - 将 Google Cloud 项目 ID 设置成名为
GOOGLE_CLOUD_PROJECT
的环境变量。
Kubernetes pod 配置示例:
apiVersion: v1
kind: Pod
metadata:
name: my-app
labels:
name: my-app
spec:
containers:
- name: my-app
image: gcr.io/google-containers/busybox
ports:
- containerPort: 8080
env:
- name: GOOGLE_CLOUD_PROJECT
value: my-project-id
volumeMounts:
- mountPath: /root/.config/gcloud
name: gcloud-volume
volumes:
- name: gcloud-volume
hostPath:
path: /path/to/home/.config/gcloud
Cloud Run
如果您在 IDE 中登录 Google Cloud,则 Cloud Code 会设置您的应用默认凭据 (ADC),您可以跳过此步骤。如果您是在 IDE 之外登录 Google Cloud(例如,使用 gcloud CLI),请设置您的 ADC,并运行以下命令,让 Google Cloud 客户端库通过 ADC 进行身份验证:
gcloud auth login --update-adc
使用需要服务账号的 API 进行本地开发
某些 API(例如 Cloud Translation API)需要 拥有适当的权限来对请求进行身份验证如需了解详情,请参阅创建和管理服务账号。 如需查看使用服务账号的快速入门,请参阅在 Cloud Code 中使用 Cloud 客户端库。
如需打开终端,请依次点击 Terminal(终端)> New Terminal(新建终端)。
创建服务账号以对您的 API 请求进行身份验证:
gcloud iam service-accounts create \ SERVICE_ACCOUNT_ID \ --project PROJECT_ID
替换以下值:
SERVICE_ACCOUNT_ID
:服务账号 IDPROJECT_ID
:项目 ID
如需查找这些 ID,请在 Google Cloud 中点击页面左侧的导航菜单, 将指针悬停在 IAM 和管理并点击 服务账号。
电子邮件列会显示每个服务账号的唯一
SERVICE_ACCOUNT_ID
和PROJECT_ID
,格式如下:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
例如:
my-service-account@my-project.iam.gserviceaccount.com
具有以下特征 值:SERVICE_ACCOUNT_ID
:my-service-account
PROJECT_ID
:my-project
为您的服务账号授予适当的角色。以下示例命令会授予 Cloud Translation API User 角色。如需确定要授予的角色,请参阅您所使用的 Cloud API 的文档。
gcloud projects \ add-iam-policy-binding \ PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com' \ --role='roles/cloudtranslate.user'
创建服务账号密钥:
gcloud iam service-accounts keys \ create key.json --iam-account \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com
将密钥设置为默认凭据:
export \ GOOGLE_APPLICATION_CREDENTIALS=key.json
可选:如需允许用户模拟服务账号,请运行
gcloud iam service-accounts add-iam-policy-binding
命令以向用户授予服务账号的 Service Account User 角色 (roles/iam.serviceAccountUser
):gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
替换以下值:
USER_EMAIL
:用户的电子邮件地址
远程开发
GKE
根据您的项目范围,您可以选择在 GKE 上对 Google Cloud 服务进行身份验证的方式:
- (仅限开发)
- 使用以下设置创建 GKE 集群:
- 确保您使用的是 GKE 默认使用的服务账号、Compute Engine 默认服务账号,并且访问权限范围设置为授予对所有 Cloud API 的完整访问权限(这两种设置均可在节点池 > 安全部分中访问)。由于 Compute Engine 服务账号由部署在节点上的所有工作负载共享,因此此方法会过度预配权限,并且应该仅用于开发。
- 确保集群上未启用 Workload Identity(在集群 > 安全部分中)。
- 为您的服务账号分配必要的角色:
- 如果您尝试访问密文,请按照以下 Secret Manager 专用步骤为您的服务账号设置所需角色。
- 如果您使用的是 Compute Engine 默认服务账号,则可能应用了正确的 IAM 角色。
- 如需查看您可以向身份授予的 IAM 角色类型和预定义角色列表,请参阅了解角色指南。如需了解授予角色的步骤,请参阅授予、更改和撤消对资源的访问权限。
- 使用以下设置创建 GKE 集群:
- (建议用于生产用途)
- 使用 Workload Identity 配置 GKE 集群和应用,以对 GKE 上的 Google Cloud 服务进行身份验证。此操作会将您的 Kubernetes 服务账号与您的 Google 服务账号相关联。
- 通过在 Kubernetes 部署 YAML 文件中设置
.spec.serviceAccountName
字段,配置 Kubernetes 部署以引用 Kubernetes 服务账号。 如果您使用的是通过 Cloud Code 示例应用创建的应用,则此文件位于 kubernetes-manifests 文件夹下。 - 如果您尝试访问的 Google Cloud 服务
需要额外的角色,请针对 Google 服务授予这些角色
您用于开发应用的 Google 账号:
- 如果您尝试访问密文,请按照以下 Secret Manager 专用步骤为您的服务账号设置所需角色。
- 如需查看您可以向身份授予的 IAM 角色类型和预定义角色列表,请参阅了解角色指南。如需了解授予角色的步骤,请参阅授予、更改和撤消对资源的访问权限。
Cloud Run
- 如需创建新的唯一服务账号来部署 Cloud Run 应用,请导航到“服务账号”页面,然后选择存储密文的项目。
- 点击创建服务账号。
- 在创建服务账号对话框中,为服务账号输入一个描述性名称。
- 将服务账号 ID 更改为一个可识别的唯一值,然后点击创建。
- 如果您尝试访问的 Google Cloud 服务需要其他角色,请授予角色,点击继续,然后点击完成。
- 如需将您的服务账号添加到部署配置,请执行以下操作:
- 使用 Cloud Code 状态栏选择 Cloud Run: Deploy 命令。
- 在 Cloud Run 部署界面的修订版本设置 (Revision Settings) 下的服务账号字段中,指定您的服务账号。
Cloud Run
根据您的项目范围,您可以选择在 GKE 上对 Google Cloud 服务进行身份验证的方式:
- (仅限开发)
- 使用以下设置创建 GKE 集群:
- 请确保您使用的是 GKE 默认使用的服务账号、Compute Engine 默认服务账号,并且访问权限范围设置为授予对所有 Cloud API 的完整访问权限(这两种设置均可在节点池 > 安全部分中访问)。由于 Compute Engine 服务账号由部署在节点上的所有工作负载共享,因此此方法会过度预配权限,并且应该仅用于开发。
- 确保集群上未启用 Workload Identity(在集群 > 安全部分中)。
- 为您的服务账号分配必要的角色:
- 如果您尝试访问密文,请按照以下 Secret Manager 专用步骤为您的服务账号设置所需角色。
- 如果您使用的是 Compute Engine 默认服务账号,则可能应用了正确的 IAM 角色。
- 如需查看您可以向身份授予的 IAM 角色类型和预定义角色列表,请参阅了解角色指南。如需了解授予角色的步骤,请参阅授予、更改和撤消对资源的访问权限。
- 使用以下设置创建 GKE 集群:
- (建议用于生产用途)
- 使用 Workload Identity 配置 GKE 集群和应用,以对 GKE 上的 Google Cloud 服务进行身份验证。此操作会将您的 Kubernetes 服务账号与您的 Google 服务账号相关联。
- 如需将您的服务账号添加到部署配置,请执行以下操作:
- 使用 Cloud Code 状态栏选择 Cloud Run: Deploy 命令。
- 在 Cloud Run 部署界面的修订版本设置 (Revision Settings) 下的服务账号字段中,指定您的服务账号。
- 如果您尝试访问的 Google Cloud 服务需要其他角色,请为您用于开发应用的 Google 服务账号授予角色。
- 如果您尝试访问密文,请按照以下 Secret Manager 专用步骤为您的服务账号设置所需角色。
- 如需查看您可以向身份授予的 IAM 角色类型和预定义角色列表,请参阅了解角色指南。如需了解授予角色的步骤,请参阅授予、更改和撤消对资源的访问权限。
已启用 Secret Manager 权限的远程开发
如果您正在进行远程开发并通过使用服务账号进行身份验证,且您的应用使用密文,则除了 远程开发说明以外,您还需要完成一些其他步骤。以下步骤为您的 Google 服务账号授予访问特定 Secret Manager 密文所需的角色:
点击 Cloud Code,然后展开 Secret Manager 部分。
右键点击该密钥,然后选择在 Cloud 控制台中修改权限。 此操作会在网络浏览器中启动该密文对应的 Secret Manager 配置页面。
在 Google Cloud 控制台中,点击权限,然后点击添加。
在新的主账号字段中,输入您的服务账号的名称。
在选择角色字段中,选择 Secret Manager Secret Accessor 角色。
点击保存。
您的服务账号现在有权访问此特定密文。