Explorar scripts auxiliares

Os scripts auxiliares, ou módulos de modelos, são ficheiros auxiliares que podem tornar os seus modelos mais eficientes através da execução de funções específicas. Por exemplo, pode usar scripts auxiliares para interpretar metadados de recursos, criar ficheiros e iniciar serviços.

Agora, vai explorar um script auxiliar do Python que atribui um nome a uma máquina virtual, dado um prefixo e um sufixo.

Antes de começar

Abrir o script auxiliar

O script auxiliar básico neste exemplo gera o nome de uma máquina virtual (VM). Para ver o script, execute estes comandos:

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

nano common.py  # use your preferred text editor

A função GenerateMachineName() usa um prefixo e um sufixo, e gera um nome no formato prefix-suffix:

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


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

Usar o script auxiliar no modelo

Para usar o efeito common.py no vm-template.py, têm de ser feitas várias alterações ao modelo.

Para ver as alterações, abra vm-template.py:

nano vm-template.py

O modelo contém comentários de código que realçam as alterações.

Tenha em atenção que o modelo importa common.py na parte superior do ficheiro. Na secção resources, os campos name para as VMs chamam agora 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}

Visualizar as alterações à configuração

Para ver a configuração atualizada, abra two-vms.yaml:

nano two-vms.yaml

Tenha em atenção que o script auxiliar common.py também tem de ser importado na configuração.

Implemente a sua configuração:

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

Para ver a implementação, incluindo os recursos com os nomes gerados, execute:

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

Eliminar a implementação

Recomendamos que elimine a implementação para evitar custos. Não precisa desta implementação para o passo seguinte. Execute o seguinte comando para eliminar a implementação:

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

Olhando para o futuro: atualizar implementações

Em seguida, saiba como adicionar, eliminar e alterar as propriedades dos recursos numa implementação à medida que a sua app evolui.