我正在查看此仓库,并对这里发生的事情非常困惑: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
为什么要导入其部署功能的实际代码?
答案 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
会有所帮助。