Deployment Manager是否具有云功能支持(并支持具有多个云功能)?

时间:2019-10-08 22:31:34

标签: google-cloud-platform google-cloud-functions google-deployment-manager

我正在查看此仓库,并对这里发生的事情非常困惑: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脚本,还是可以只定义多个资源并将它们全部指向同一脚本?

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

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

为什么要导入其部署功能的实际代码?

2 个答案:

答案 0 :(得分:1)

Deployment Manager只需与其他类型的Google API进行交互即可。此documentation为您提供Deployment Manager支持的资源类型列表。我建议您运行此命令“ gcloud deployment-manager types list | grep function”,您会发现DM也支持这种“ cloudfunctions.v1beta2.function”资源类型。

模板使用的是gcp-type(处于beta版)。cloud_functions.py是template。如果使用模板,则可以将其重用于多个资源,请参见example。为了更好地理解,更易于阅读/关注,您可以通过gcp-type检查此example云功能。

答案 1 :(得分:0)

我想在 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会有所帮助。