【问题标题】:Extract zip archive in Google Cloud Storage Bucket using Python api client使用 Python api 客户端在 Google Cloud Storage Bucket 中提取 zip 存档
【发布时间】:2017-11-29 05:55:44
【问题描述】:

我正在尝试使用 api 创建一个云函数,源代码将在一个 zip 存档中提供,其中包含一个 index.jspackage.json 文件.我已将此存档上传到存储桶并通过 API 请求创建了一个云功能,但现在我需要提取此 zip 存档以指出云功能的来源,我该如何实现?

这是我所做的: 来自views.py

            sclient = storage.Client()
            bucket = sclient.get_bucket(func_obj.bucket)
            blob = bucket.blob(func_obj.sourceFile.name)
            print('Uploading archive...')
            print(blob.upload_from_filename(file_name))
name = "projects/{}/locations/us-central1/functions/{}".format(func_obj.project, func_obj.fname,)
            print(name)
            req_body = {
              "name": name,
              "entryPoint": func_obj.entryPoint,
              "timeout": "3.5s",
              "availableMemoryMb": func_obj.fmemory,
              # "sourceUploadUrl": upload_url,
              "sourceArchiveUrl": "gs://newer_bucket/func.zip",
              "httpsTrigger": {},
            }
            service = discovery.build('cloudfunctions', 'v1')
            func_api = service.projects().locations().functions()

            response = func_api.create(location='projects/' + func_obj.project + '/locations/us-central1',
                                                body=req_body).execute()

            pprint.pprint(response)

【问题讨论】:

    标签: python google-cloud-platform google-cloud-storage google-api-python-client


    【解决方案1】:

    根据Cloud Function Docsfunctions.create REST 端点的请求正文必须包含CloudFunction 的实例。如您在第二个链接中所见,云函数 JSON 资源的字段之一是 "sourceArchiveUrl",它指向包含该函数的 zip 存档。据我了解,您无需提取 zip 存档 for Google Cloud Functions 即可访问代码。检查non-REST API deployment of Cloud Functions;它需要存档,而不是提取的存档。

    但无论如何,没有直接的方法来提取存储桶内的存档。您将需要在某处(即本地机器、Google Compute Engine VM 实例等)下载/传输存档,对其执行提取操作并将结果上传回存储桶中。 如果您需要提取存档,为什么还要将存档上传到 Google Cloud Storage 存储桶?为什么不上传文件?

    您可能还想查看this answer。同样的问题,不同的背景。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 2022-01-26
      • 1970-01-01
      相关资源
      最近更新 更多