管理 Cloud API 和库

如需以编程方式访问 Google Cloud 产品和服务,您需要使用 Cloud API。这些 API 公开了一个简单的 JSON REST 接口,您可以通过客户端库调用该接口。

借助 Cloud Code,您可以访问此 Google Cloud 服务合并列表及其相应的客户端库和文档,浏览并启用 Cloud API,以及将 Cloud 客户端库添加到您的项目中,这一切全都可以在 IDE 中完成。

浏览 Cloud API

如需浏览您的 IDE 中所有可用的 Google Cloud API,请按照以下步骤操作:

  1. 点击活动栏中的“Cloud Code - Cloud API”图标 Cloud Code - Cloud API 图标
  2. 展开 Google Cloud API 资源管理器树,查看所有可用的 API。 该资源管理器按类别对 Cloud API 分组。
  3. 显示资源管理器树中所示 Cloud API 列表的屏幕截图。

  4. 点击某个 API 以查看更多详细信息,例如其服务名称、状态、相应客户端库的安装说明以及相关文档。

启用 Cloud API

如需使用 API 详细信息页面为项目快速启用 Cloud API,请按照以下步骤操作:

  1. 在 Cloud API 详细信息页面中,选择要为其启用 Cloud API 的项目。
  2. 显示所选 Cloud API 相关详细信息的屏幕截图

  3. 点击启用 API 按钮。

    启用 API 后,您会看到一条有关这项更改的确认消息。

将客户端库添加到项目中

除了使用 Cloud Code 浏览和启用 Cloud API 之外,您还可以向项目添加特定语言的客户端库。您将需要安装该客户端库;API 详细信息页面包含每种语言对应的安装说明。

显示与 Cloud API 对应的客户端库安装说明的屏幕截图

设置身份验证

启用所需的 API 并添加必要的客户端库后,您需要对应用进行配置,以便成功通过身份验证。您的配置取决于您的开发类型和运行所在的平台。

完成相关身份验证步骤后,您的应用即可进行身份验证并准备好部署。

本地开发

本地机器

  1. 如果您通过 IDE 登录到 Google Cloud,则 Cloud Code 可确保您已设置应用默认凭据 (ADC)。
    如果您是在 IDE 之外登录到 Google Cloud(例如,通过 gcloud 命令行工具登录),则需要运行 gcloud auth login --update-adc 来设置您的 ADC。这样,Google Cloud 客户端库也能找到您的 ADC 以进行身份验证。

minikube

  1. 如果您通过 IDE 登录到 Google Cloud,则 Cloud Code 可确保您已设置应用默认凭据 (ADC)。
    如果您是在 IDE 之外登录到 Google Cloud(例如,通过 gcloud 命令行工具登录),则需要运行 gcloud auth login --update-adc 来设置您的 ADC。这样,minikube 就能找到您的 ADC 以进行身份验证。
  2. 使用 minikube start --addons gcp-auth 启动 minikube。此操作会将您的 ADC 装载到 pod 中。如需详细了解 Google Cloud 的 minikube 身份验证指南,请参阅 minikube gcp-auth 文档

其他本地 K8s 集群

  1. 如果您通过 IDE 登录到 Google Cloud,则 Cloud Code 可确保您已设置应用默认凭据 (ADC)。
    如果您是在 IDE 之外登录到 Google Cloud(例如,通过 gcloud 命令行工具登录),则需要运行 gcloud auth login --update-adc 来设置您的 ADC。
  2. 通过修改部署清单,将您的本地 ~/.config/gcloud 目录装载到 Kubernetes pod 中,以便 Google Cloud 客户端库能够找到您的凭据。您还需要将 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

  1. 如果您通过 IDE 登录到 Google Cloud,则 Cloud Code 可确保您已设置应用默认凭据 (ADC)。
    如果您是在 IDE 之外登录到 Google Cloud(例如,通过 gcloud 命令行工具登录),则需要运行 gcloud auth login --update-adc 来设置您的 ADC。这样,Cloud Run 本地模拟环境也能找到您的 ADC 以进行身份验证。

远程开发

Google Kubernetes Engine

根据您的项目范围,您可以选择在 GKE 上对 Google Cloud 服务进行身份验证的方式:

  • (仅限开发)
    1. 使用以下设置创建 GKE 集群
      • 确保您使用的是 GKE 默认使用的服务帐号、Compute Engine 默认服务帐号,并且访问权限范围设置为授予对所有 Cloud API 的完整访问权限(这两种设置均可在节点池 > 安全部分中访问)。
        由于 Compute Engine 服务帐号由部署在节点上的所有工作负载共享,因此此方法会过度预配权限,并且应该仅用于开发。
      • 确保集群上未启用 Workload Identity(在集群 > 安全部分中)。
    2. 为您的服务帐号分配必要的角色:
  • (建议用于生产用途)
    1. 使用 Workload Identity 配置 GKE 集群和应用,以对 GKE 上的 Google Cloud 服务进行身份验证。此操作会将您的 Kubernetes 服务帐号与您的 Google 服务帐号相关联。
    2. 通过在 Kubernetes 部署 YAML 文件中设置 .spec.serviceAccountName 字段,配置 Kubernetes 部署以引用 Kubernetes 服务帐号。
      如果您使用的是基于 Cloud Code 模板创建的应用,则此文件位于 kubernetes-manifests 文件夹下。
    3. 如果您尝试访问的 Google Cloud 服务需要其他角色,请为您用于开发应用的 Google 服务帐号授予角色。

Cloud Run

  1. 如需创建新的唯一服务帐号来部署 Cloud Run 应用,请导航到“服务帐号”页面,然后选择存储密文的项目。

    转到“服务帐号”页面

  2. 点击创建服务帐号
  3. 创建服务帐号对话框中,为服务帐号输入一个描述性名称。
  4. 服务帐号 ID 更改为一个可识别的唯一值,然后点击创建
  5. 如果您尝试访问的 Google Cloud 服务需要其他角色,请授予角色,点击继续,然后点击完成
  6. 如需将您的服务帐号添加到部署配置,请执行以下操作:
    1. 使用 Cloud Code 状态栏选择 Cloud Run: Deploy 命令。
    2. 在 Cloud Run 部署界面的修订版本设置 (Revision Settings) 下的服务帐号字段中,指定您的服务帐号。
    “Cloud Run:部署”中展开了“高级修订版本设置”部分,并且“服务帐号”字段中已填写服务帐号名称(格式为 service-account-name@project-name.iam.gserviceaccount.com)

Cloud Run

根据您的项目范围,您可以选择在 GKE 上对 Google Cloud 服务进行身份验证的方式:

  • (仅限开发)
    1. 使用以下设置创建 GKE 集群
      • 确保您使用的是 GKE 默认使用的服务帐号、Compute Engine 默认服务帐号,并且访问权限范围设置为授予对所有 Cloud API 的完整访问权限(这两种设置均可在节点池 > 安全部分中访问)。
        由于 Compute Engine 服务帐号由部署在节点上的所有工作负载共享,因此此方法会过度预配权限,并且应该仅用于开发。
      • 确保集群上未启用 Workload Identity(在集群 > 安全部分中)。
    2. 为您的服务帐号分配必要的角色:
  • (建议用于生产用途)
    1. 使用 Workload Identity 配置 GKE 集群和应用,以对 GKE 上的 Google Cloud 服务进行身份验证。此操作会将您的 Kubernetes 服务帐号与您的 Google 服务帐号相关联。
    2. 如需将您的服务帐号添加到部署配置,请执行以下操作:
      1. 使用 Cloud Code 状态栏选择 Cloud Run: Deploy 命令。
      2. 在 Cloud Run 部署界面的修订版本设置 (Revision Settings) 下的服务帐号字段中,指定您的服务帐号。
      “Cloud Run:部署”中展开了“高级修订版本设置”部分,并且“服务帐号”字段中已填写 Kubernetes 服务帐号名称(格式为 service-account-name@project-name.iam.gserviceaccount.com)
    3. 如果您尝试访问的 Google Cloud 服务需要其他角色,请为您用于开发应用的 Google 服务帐号授予角色。

已启用 Secret Manager 权限的远程开发

如果您正在进行远程开发并通过使用服务帐号进行身份验证,且您的应用使用密文,则除了 远程开发说明以外,您还需要完成一些其他步骤。以下步骤为您的 Google 服务帐号授予访问特定 Secret Manager 密文所需的角色

  1. 打开 Secret Manager 视图 Secret Manager 图标,并选择您要在代码中访问的密文。

    Cloud Code 中的 Secret Manager 即会打开且列出了两个密文

  2. 右键点击密文,然后选择在 Cloud Console 中修改权限。 此操作会在网络浏览器中启动该密文对应的 Secret Manager 配置页面。

    右键点击 Secret Manager 面板中的密文

  3. 在 Cloud Console 中,点击显示信息面板,然后点击添加成员

    浏览器中的 Console Secret 页面中列出了密文详情;在展开的“信息面板”中突出显示了“添加成员”按钮

  4. 为您的服务帐号分配 Secret Manager Secret Accessor 角色。

    在“向测试面板添加成员”中,“新成员”字段中列出了格式为 service-account-name@project-name.iam.gservicesaccount.com 的服务帐号,并且填写了“选择角色”下拉列表以便在 Secret Manager 类别下选择类型为“Secret Manager Accessor”的角色

    您的服务帐号现在有权访问此特定密文。

获取支持

如需发送反馈,请在 GitHub 上报告问题,或者在 Stack Overflow 上提问。