在任何 Google 服务上调用任何方法()()

熟悉代码以在一项 Google 服务上调用一种方法后,你就可以推断出如何在任何 Google 服务上调用任何方法。 ****

首先,我们使用前一个示例中实例化的 credential 对象建立服务连接:

service = build(
    SERVICE_NAME,
    SERVICE_VERSION,
    credentials=credentials)

然后,我们可以调用服务提供的方法。有哪些方法?

https://cloud.google.com/resource-manager/docs/apis

Projects.Create 的基础 REST 请求是什么?

https://cloud.google.com/resource-manager/reference/rest/v1/projects/create

好的……让我们编写代码。

create 方法需要一个最小化包含项目 ID 的主体。项目 ID 是唯一标识符。我建议你使用系统命名项目以帮助你识别它们。该方法还接受项目名称,标签,项目父母的详细信息等。

operation1 = service.projects().create(
  body={
    "project_id": PROJECT_ID
  }
).execute()

项目创建是异步处理的。我们给出了一个 Operation 对象,我们必须轮询它以确定何时创建 Project。操作具有唯一标识操作的 Name 属性。下一部分代码会调查平台“我们还完成了吗?”。当我们的新操作包含 Done 属性 True 时,将创建该项目。

name = operation1["name"]
while True:
    operation2 = service.operations().get(
        name=name
    ).execute()
    if "done" in operation2:
        if (operation2["done"]):
            break
    time.sleep(1)

为了完整性,并且希望在很多年后使用你的项目后,你可能需要删除你的项目。我们只需调用 delete 方法并提供项目 ID。这也会返回一个操作但是我会留给你轮询操作直到它完成

operation3 = service.projects().delete(
    projectId=PROJECT_ID
).execute()

而已!