Explora las secuencias de comandos auxiliares

Las secuencias de comandos auxiliares o módulos de plantilla, son archivos auxiliares que ejecutan funciones específicas para que tus plantillas sean más eficientes. Por ejemplo, puedes usar las secuencias de comandos auxiliares a fin de interpretar los metadatos del recurso, crear archivos y habilitar servicios.

Ahora, explorarás una secuencia de comandos auxiliares de Python que nombra una máquina virtual con un prefijo o un sufijo.

Antes de comenzar

Abre la secuencia de comandos auxiliar

La secuencia de comandos auxiliar básica de este ejemplo genera el nombre de una máquina virtual. Si quieres ver la secuencia de comandos, ejecuta los comandos siguientes:

cd deploymentmanager-samples/examples/v2/step_by_step_guide/create_a_helper_script

nano common.py  # use your preferred text editor

La función GenerateMachineName() toma un prefijo y un sufijo, y genera un nombre en el formato prefix-suffix:

"""Generates name of a VM."""

def GenerateMachineName(prefix, suffix):
  return prefix + "-" + suffix

Usa la secuencia de comandos auxiliar en la plantilla

Si quieres usar common.py en vm-template.py, se deben realizar varios cambios en la plantilla.

Para ver los cambios, abre vm-template.py:

nano vm-template.py

La plantilla contiene comentarios de código que destacan los cambios.

Ten en cuenta que la plantilla importa common.py en la parte superior del archivo. En la sección resources, los campos name para las VM ahora se llaman GenerateMachineName().

"""Creates the virtual machine."""

# `common.py` is imported below.
import common

COMPUTE_URL_BASE = 'https://www.googleapis.com/compute/v1/'

def GenerateConfig(context):
  """Generates configuration of a VM."""
  resources = [{
      'name': common.GenerateMachineName('myfrontend', 'prod'),
      'type': 'compute.v1.instance',
      'properties': {
          'zone': 'us-central1-f',
          'machineType': COMPUTE_URL_BASE + 'projects/' + context.env['project']
                         + '/zones/us-central1-f/machineTypes/f1-micro',
          'disks': [{
              'deviceName': 'boot',
              'type': 'PERSISTENT',
              'boot': True,
              'autoDelete': True,
              'initializeParams': {
                  'sourceImage': COMPUTE_URL_BASE + 'projects/'
                                 'debian-cloud/global/images/family/debian-9'}
          }],
          'networkInterfaces': [{
              'network': COMPUTE_URL_BASE + 'projects/' + context.env['project']
                         + '/global/networks/default',
              'accessConfigs': [{
                  'name': 'External NAT',
                  'type': 'ONE_TO_ONE_NAT'
              }]
          }]
      }
  }]
  return {'resources': resources}

Visualiza los cambios en la configuración

Si quieres ver la configuración actualizada, abre two-vms.yaml:

nano two-vms.yaml

Ten en cuenta que la secuencia de comandos auxiliar common.py también debe importarse en la configuración.

Implementa tu configuración:

gcloud deployment-manager deployments create deployment-with-helper-script --config two-vms.yaml

Si quieres ver la implementación, incluidos los recursos con los nombres generados, ejecuta el comando siguiente:

 gcloud deployment-manager deployments describe deployment-with-helper-script

Borra tu implementación

Te recomendamos borrar la implementación para evitar cambios. No necesitas esta implementación para el siguiente paso. Ejecuta el siguiente comando para borrar la implementación:

gcloud deployment-manager deployments delete deployment-with-helper-script

De cara al futuro: actualización de implementaciones

A continuación, aprenderás a agregar, borrar y cambiar las propiedades de los recursos de una implementación a medida que tu aplicación evoluciona.