Deployment Manager 是否支持 Cloud Functions(并支持拥有多个云函数)?

Does Deployment Manager have Cloud Functions support (and support for having multiple cloud functions)?

我正在查看这个 repo,对这里发生的事情感到非常困惑:https://github.com/GoogleCloudPlatform/deploymentmanager-samples/tree/master/examples/v2/cloud_functions

在其他 Deployment Manager 示例中,我看到“类型”设置为正在部署的资源类型,但在本示例中我看到:

resources:
- name: function
  type: cloud_function.py # why not "type: cloudfunctions"?
  properties:
    # All the files that start with this prefix will be packed in the Cloud Function
    codeLocation: function/
    codeBucket: mybucket
    codeBucketObject: function.zip
    location: us-central1
    timeout: 60s
    runtime: nodejs8
    availableMemoryMb: 256
    entryPoint: handler

“类型”指向 python 脚本 (cloud_function.py) 而不是资源类型。该脚本超过 100 行,做了一大堆东西。

这看起来像是黑客攻击,就像它只是编写 GCP API 脚本一样?我想使用 Deployment Manager 之类的东西的原因是为了避免部署脚本混乱,但这看起来更像是意大利面条。

Deployment Manager 是否不支持 Cloud Functions,这是一个棘手的解决方法,还是它应该如何工作?这个例子的文档很糟糕,所以我不知道发生了什么

此外,我想将多个功能部署到单个 Deployment Manager 堆栈中 - 必须编辑 cloud_function.py 脚本,或者我可以只定义多个资源并让它们都指向同一个脚本吗?

编辑

我也对 cloud_function.yaml 顶部的这两个导入的用途感到困惑:

imports:
# The function code will be defined for the files in function/
- path: function/index.js
- path: function/package.json

为什么要导入它正在部署的函数的实际代码?

部署管理器仅与不同类型的 Google API 交互。 documentation 为您提供部署管理器支持的资源类型列表。我建议您 运行 这个命令“gcloud deployment-manager types list | grep function”,你会发现DM也支持这种“cloudfunctions.v1beta2.function”资源类型。

模板正在通过 gcp-type 使用 gcp-type (that is in beta).The cloud_functions.py is a template. If you use a template, you can reuse it for multiple resources, you can this see example. For better understanding, easier to read/follow you can check this example 云函数。

我想补充 Aarti S 的答案,gcloud deployment-manager types list | grep function 对我不起作用,因为我发现 how to all list of resource types, including resources that are in alpha:

gcloud beta deployment-manager types list --project gcp-types

或者 gcloud beta deployment-manager types list | grep function 有帮助。