模板模块属于辅助文件,可执行提高模板效率的特定功能。例如,您可以有一个模块为您的资源生成唯一名称。Deployment Manager 可以执行用 Python 或 Jinja 编写的任何模块。
准备工作
- 如果要使用本指南中的命令行示例,请安装 “gcloud” 命令行工具。
- 如果希望使用本指南中的 API 示例,请设置 API 访问权限。
- 了解如何创建基本模板。
- 了解如何创建配置
创建模板模块
模板模块被视为常规模板文件,可以用 Jinja 或 Python 编写。
例如,以下帮助程序模板可生成带有给定前缀和后缀的名称。
Jinja
在 Jinja 中,此辅助模板(在此示例中名为 helpers/common.jinja)如下所示:
然后,您可以导入此模板并将其用作模块。在 Jinja 模板中,您可以按如下所示使用模块:
然后,配置必须导入这两个文件(包括 helpers/common.jinja
文件):
Deployment Manager 服务将扩展配置,最终配置如下所示:
resources:
- name: myfrontend-prod
type: compute.v1.instance
properties:
zone: us-central1-f
machineType: https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/machineTypes/f1-micro
disks:
- deviceName: boot
type: PERSISTENT
boot: true
autoDelete: true
initializeParams:
sourceImage: https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/family/debian-9
networkInterfaces:
- network: https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default
accessConfigs:
- name: External NAT
type: ONE_TO_ONE_NAT
Python
在 Python 中,辅助模板(在此示例中名为 helpers/common.py)如下所示:
要在 Python 模板中使用它,应如下所示:
然后,配置必须导入这两个文件(包括 helpers/common.py
文件):
这是一个较为复杂的辅助模块: