跳转到主要内容

Google Cloud Platform友好型飞行员

项目描述

Github CI Coverage Status python python

Google Cloud Pilot

安装

pip安装gcp-pilot

某些API需要额外的包,因此您必须使用extras来添加它们

  • Cloud Tasks: pip install gcp-pilot[tasks]
  • Cloud Build: pip install gcp-pilot[build]
  • Cloud Storage: pip install gcp-pilot[storage]
  • Big Query: pip install gcp-pilot[bigquery]
  • 语音: pip install gcp-pilot[speech]
  • 电子表格: pip install gcp-pilot[sheets]
  • Pub/Sub: pip install gcp-pilot[pubsub]
  • Datastore: pip install gcp-pilot[datastore]
  • Cloud DNS: pip install gcp-pilot[dns]
  • Secret Manager: pip install gcp-pilot[secret]
  • Healthcare Engine: pip install gcp-pilot[healthcare]
  • IAM: pip install gcp-pilot[iam]

用法

from gcp_pilot.resource import ResourceManager

grm = ResourceManager()

默认值

凭证

gcp-pilot 使用 ADC 来检测凭证。这意味着您必须有以下配置之一

  • 环境变量 GOOGLE_APPLICATION_CREDENTIALS 指向包含凭证的 JSON 文件
  • 在 GCP 内运行(计算引擎、Cloud Run、GKE、AppEngine),将使用机器的凭证
  • 在执行 gcloud auth application-default login 登录后本地运行

您还可以使用环境变量 DEFAULT_SERVICE_ACCOUNT 全局设置服务帐户,这将需要模拟。

项目

创建客户端时,将使用凭证所属的项目定义默认项目。

支持管理其他项目的资源的客户端可以按调用进行覆盖。

示例:您使用来自 project_a 的凭证创建一个 BigQuery 客户端。所有调用都将查询 project_a 的数据集,除非在调用时传递另一个项目作为参数。

您还可以使用环境变量 DEFAULT_PROJECT 全局设置项目

位置

与默认项目非常相似,默认位置是通过使用项目的位置来定义的。如果您曾经启用过 AppEngine,则项目位置将存在,因此您当时必须设置位置。否则,将不设置默认位置。

您还可以使用环境变量 DEFAULT_LOCATION 全局设置位置,并在创建客户端时减少 API 调用的数量。

为什么使用 gcp-pilot

“既然 Google 已经有一个 通用 API 客户端 和这么多 特定客户端,为什么我还要使用这个库?”

Google 有两种类型的客户端

  • 专用:为 API 定制制作。它们非常出色:它们使用友好的方法实现了与 API 的高级交互。《gcp-pilot》通过处理身份验证、友好的错误和参数回退增加了其价值。
  • 通用:一个可以动态调用任何 REST API 的单一客户端。它们很难使用:非常具体的调用必须从文档中转换。在所有上述优点之上,《gcp-pilot》很有用,可以添加高级交互,例如 Calendar.create_event

参数回退

大多数 API 端点都需要 project_id(有时甚至需要 project_number)和 location

因此,《gcp-pilot》会自动为您检测这些值,基于您的凭证(尽管它将需要额外的权限和 API 调用)。

如果您使用多个项目,并且您的凭证访问其他项目,您仍然可以自定义每个调用的参数,以避免默认回退。

友好的错误

大多数 API 返回一个通用的 HttpException,它包含一个嵌入的错误输出负载,并且这些负载有几个不同的结构。

因此,《gcp-pilot》尽其所能将这些异常转换为更友好的异常,例如 NotFoundAlreadyExistsNotAllowed

这将更容易捕获这些异常并按其类型进行处理。

识别功能

  • 身份验证:每个客户端使用 ADC,它包括尝试检测具有回退的服务帐户:SDK > 环境变量 > 元数据
  • 模拟:可以创建具有 impersonate_account 参数的客户端,该参数可以 模拟 另一个帐户。
  • 委托:需要特定主题的服务(例如 Google Workspace)会自动委托,有时甚至执行额外的凭证签名。
  • 区域:大多数 GCP 服务需要在特定位置工作(一些甚至需要特定位置)。如果未提供,客户端将使用项目默认位置,该位置由 App Engine 定义。
  • 授权:为需要身份验证才能使用的服务(例如 CloudRun)自动生成 OIDC 授权。

自动授权

一些服务需要特定的授权,应在使用前进行设置,以下是一些示例

  • [发布/订阅] 使用认证推送订阅主题;
  • [云调度器] 安排作业以触发 Cloud Run 服务;
  • [云任务] 将任务排队以触发 Cloud Run 服务;

在这些情况下,gcp-pilot 尽力确保在实际请求之前正确设置所需权限。

集成

一些服务可以进行集成,gcp-pilot 通过添加辅助方法以无缝的方式完成此操作。

示例:您可以为 Google Cloud Build 的每个构建步骤接收通知而订阅其事件。

使用 CloudBuild.subscribegcp-pilot 在 Google Pub/Sub 服务中创建订阅(如果需要,还包括主题)。

支持 API

  • IAM
    • 管理服务账户
    • 管理权限
    • 编码和解码 JWT 令牌
  • 身份平台
    • 用户登录
    • 用户注册
    • 密码重置流程
    • 邮箱验证流程
    • 生成认证魔法链接(OOB 令牌)
    • 管理授权域名
  • 凭证
    • 管理 API 密钥
  • 资源管理器
    • 管理项目
    • 管理权限
  • 秘密管理器
    • 管理秘密
  • 身份感知代理
    • 生成 OIDC 令牌
  • 源存储库
    • 管理存储库
  • 目录
    • 管理用户
    • 管理组
  • 人员
    • 获取人员
  • 云 SQL
    • 管理实例
    • 管理数据库
    • 管理用户
  • 云存储
    • 管理存储桶
    • 管理文件
  • 云构建
    • 管理触发器
  • 云函数
    • 管理函数
    • 管理权限
  • 云调度器
    • 管理计划
  • 云任务
    • 管理任务和队列
  • 云运行
    • 读取服务
    • 管理域名映射 [1]
  • API 网关
    • 管理 API
    • 管理 API 配置
    • 管理网关
  • 服务使用
    • 启用/禁用 API 和服务
  • 大查询
    • 管理数据集
    • 执行查询
  • 日历
    • 管理事件
  • Google Chats
    • 构建复杂消息
    • 调用 webhook
    • 以机器人交互
  • 云目录
    • 管理组
  • 云 DNS
    • 管理 DNS 区域
    • 管理区域记录
  • 表格
    • 管理电子表格(由 gspread 提供动力)
  • 语音
    • 从音频中识别语音
  • 数据存储
    • 对象映射(类似 ORM 的文档管理)
  • 监控
    • 报告错误
    • 记录
    • 管理自定义服务
  • 医疗保健
    • 管理数据集
    • 管理存储
    • 管理 FHIR 资源:fhir-resources 提供
  • 数据流
    • 读取/删除流
    • 读取流的对象
    • 启动/停止对象回填

项目详情


版本历史 发布通知 | RSS 源

下载文件

下载适合您平台的应用程序文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

gcp_pilot-1.29.0.tar.gz (58.9 kB 查看哈希值)

上传时间 源代码

构建分发

gcp_pilot-1.29.0-py3-none-any.whl (72.5 kB 查看哈希值)

上传时间 Python 3

支持者