【问题标题】:Using Google Cloud API with Python - Using libs to creating Schedule Sanpshots将 Google Cloud API 与 Python 结合使用 - 使用库创建 Schedule Sanpshots
【发布时间】:2020-10-23 02:40:57
【问题描述】:

我可能对 API 概念很困惑,但我不明白如何将 REST Google API 与 Python 结合使用。

API documentation 上,它说使用 HTTP 请求或客户端库(在 Python、libcloud 或 Google API Python 客户端库的情况下)。我看到了一些运行良好的功能示例,例如创建虚拟机或附加磁盘。

虽然,我找不到纯 REST 请求示例,例如,如果我想创建计划快照。

所以我有两个问题:

  1. 如何使用库进行身份验证和调用库没有内置方法的函数(如计划快照)?

根据文档,应该是这样的请求:

https://compute.googleapis.com/compute/v1/projects/{PROJECT_ID}/regions/{REGION_ID}/resourcePolicies

    {
        "name": "name",
        "snapshotSchedulePolicy": {
        "schedule": {
            "dailySchedule": {
            "startTime": "12:00",
            "daysInCycle": "1"
            }
        },
        "retentionPolicy": {
            "maxRetentionDays": "5"
        },
        "snapshotProperties": {
            "guestFlush": "False",
            "labels": {
            "env": "dev",
            "media": "images"
            },
            "storageLocations": ["US"]
        }
    }
  1. 我可以在 Cloud Functions 中使用 API,而不必担心获得令牌吗?

谁能帮助我更好地理解这一点?

提前致谢

【问题讨论】:

    标签: python google-cloud-platform google-cloud-functions google-api-python-client libcloud


    【解决方案1】:

    这可能会令人困惑,但它在 Google Cloud 上的记录相当完善,我鼓励您阅读那里了解更多详细信息。

    对于你描述的具体API方法:

    https://cloud.google.com/compute/docs/reference/rest/beta/resourcePolicies/insert

    此页面包含自行调用 API 方法的功能(请参见页面右侧)。这使用了最优秀的 Google APIs Explorer,您也可以直接访问它:

    https://developers.google.com/apis-explorer

    并且,深入了解 Compute Engine 测试版:

    https://cloud.google.com/compute/docs/reference/rest/beta/#rest-resource:-beta.resourcepolicies

    另一个有用的(技巧)是发出(任何)带有--log-http 标志的gcloud 命令。然后,这将包括作为命令基础的 HTTP 方法请求|响应详细信息,这可以帮助您更好地了解正在发生的事情。在你的情况下:

    gcloud beta compute resource-policies ... --log-http
    

    Google 提供的库有 2 种类型。较旧的 API 客户端库和较新的 Cloud。见:

    https://cloud.google.com/apis/docs/client-libraries-explained

    API 客户端库是机器生成的,您应该能够使用这些库访问所有 Google 支持的语言的所有库的所有 API 方法。

    云客户端库(主要)是手工制作的,这些库通常滞后于底层 API。

    Compute Engine没有有 Cloud 客户端库(适用于任何语言;去看看吧!)。因此,您应该能够使用 Python API 客户端库调用 beta 资源策略。

    也就是说,您可能总是用自己喜欢的语言手工制作 REST 调用,但不鼓励这样做,因为它需要您自己管理身份验证等,这可能是具有挑战性的

    是的,您可以从 Cloud Functions 进行(任何)REST 调用,但如果支持服务需要身份验证,您将始终需要对调用进行身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 2017-09-19
      • 2013-11-29
      • 2014-11-05
      • 2021-02-21
      • 2020-02-10
      • 1970-01-01
      相关资源
      最近更新 更多