0

我正在尝试设置一个模块来在云中部署资源(它可以是任何云提供商)。我没有看到使用模板(即部署管理器)而不是直接 API 调用的优势:

使用模板创建 VM:

# deployment.yaml
resources:
- type: compute.v1.instance
  name: quickstart-deployment-vm
  properties:
    zone: us-central1-f
    machineType: f1-micro
 ...

# bash command to deploy yaml file
gcloud deployment-manager deployments create vm-deploy --config deployment.yaml

使用 API 调用创建 VM:

def addInstance(http, listOfHeaders):
  url = "https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances"

  body = {
    "name": "quickstart-deployment-vm",
    "zone": " us-central1-f",
    "machineType": "f1-micro",
...
     }]

bodyContentURLEncoded = urllib.urlencode(bodyContent)
http.request(uri=url, method="POST", body=body)

有人可以向我解释使用模板有什么好处吗?

4

5 回答 5

2

可读性\易于使用\为您处理的身份验证\无需成为编码器\等。可能有很多优点,这实际上取决于您如何看待它。这取决于您使用的背景\工具。

专门为您使用 python 可能会更有益。

于 2019-09-16T16:38:55.090 回答
1

使用模板更容易,并且您可以获得许多内置功能,例如在模板上运行验证以扫描可能的安全漏洞等。您还可以使用与创建它相同的模板轻松删除您的基础设施。FWIW,我一直使用模板,并尽可能多地使用模板和更小的单元。例如,使用 GitLab 中的管道进行部署,可以轻松移出一部分基础设施或将其复制到另一个项目。

于 2019-09-16T16:44:21.473 回答
1

使用模板而不是 API 调用的原因是模板可用于需要确定性结果的用例。

于 2019-09-17T09:33:20.313 回答
0

模板和 API 调用都有其自身的好处。这两个选项之间总是存在权衡。如果您想在部署中获得更大的灵活性,那么 API 调用更适合您。另一方面,如果安全和完整的修订是您的首要任务,那么模板应该是您的选择。可以在此在线文档中找到详细信息。

于 2019-09-17T00:57:17.350 回答
0

使用模板时,部署的编排由平台处理。使用 API 调用(或其他命令式方法)时,您需要处理编排。

于 2019-09-17T22:28:57.207 回答