Examinar secuencias de comandos auxiliares

Las secuencias de comandos auxiliares o los módulos de plantilla son archivos auxiliares que pueden hacer que tus plantillas sean más eficientes al realizar funciones específicas. Por ejemplo, puedes usar secuencias de comandos auxiliares para interpretar metadatos de recursos, crear archivos e iniciar servicios.

Ahora, vamos a ver una secuencia de comandos auxiliar de Python que asigna un nombre a una máquina virtual a partir de un prefijo y un sufijo.

Antes de empezar

Abrir la secuencia de comandos auxiliar

La secuencia de comandos auxiliar básica de este ejemplo genera el nombre de una máquina virtual (VM). Para ver la secuencia de comandos, ejecuta estos comandos:

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 con el formato prefix-suffix:

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


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

Usar la secuencia de comandos auxiliar en la plantilla

Para usar common.py en vm-template.py, debes hacer 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 resaltan 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 de las VMs 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-11'}
          }],
          'networkInterfaces': [{
              'network': COMPUTE_URL_BASE + 'projects/' + context.env['project']
                         + '/global/networks/default',
              'accessConfigs': [{
                  'name': 'External NAT',
                  'type': 'ONE_TO_ONE_NAT'
              }]
          }]
      }
  }]
  return {'resources': resources}

Ver los cambios en la configuración

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

nano two-vms.yaml

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

Despliega la configuración:

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

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

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

Eliminar el despliegue

Te recomendamos que elimines la implementación para evitar que se te apliquen cargos. No necesitas esta implementación para el siguiente paso. Ejecuta el siguiente comando para eliminar la implementación:

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

Novedades: actualización de las implementaciones

A continuación, aprenderás a añadir, eliminar y cambiar las propiedades de los recursos de un despliegue a medida que evoluciona tu aplicación.