部署管理器是否具有云功能支持(以及支持具有多个云功能)?



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

在其他部署管理器示例中,我看到"类型"设置为正在部署的资源类型,但在此示例中,我看到以下内容:

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

"type"指向python脚本(cloud_function.py(而不是资源类型。该脚本超过100行长,可以做一大堆事情。

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

部署管理器是否不支持云功能,这是一个黑客解决方法,或者这是它应该的工作方式?这个例子的文档很糟糕,所以我不知道发生了什么

另外,我想将多个功能部署到单个部署管理器堆栈中 - 必须编辑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进行交互。本文档按部署管理器提供支持的资源类型列表。我建议您运行此命令"gcloud 部署管理器类型列表 |grep 函数",你会发现这个"cloudfunctions.v1beta2.function"资源类型也支持DM。

该模板使用的是 gcp 类型(处于测试阶段(。cloud_functions.py是一个模板。如果使用模板,则可以将其重用于多个资源,请参阅示例。 为了更好地理解,更易于阅读/遵循,您可以通过gcp类型查看此云函数示例。

我想在Aarti S的答案中添加gcloud deployment-manager types list | grep function对我不起作用,因为我找到了如何列出所有资源类型,包括 alpha 中的资源:

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

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

最新更新