Como explorar scripts auxiliares

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

Agora, você vai explorar um script auxiliar Python que nomeia uma máquina virtual, fornecendo um prefixo e um sufixo.

Antes de começar

Abra o script auxiliar

O script auxiliar básico neste exemplo gera o nome de uma máquina virtual. 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() recebe 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

Como usar o script auxiliar no modelo

Para usar common.py em vm-template.py, várias alterações precisam ser feitas no modelo.

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

nano vm-template.py

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

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

Ver as alterações na configuração

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

nano two-vms.yaml

Observe que o script auxiliar common.py também precisa ser importado na configuração.

Implante a configuração.

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

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

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

Excluir a implantação

Recomendamos que você exclua a implantação para evitar cobranças. Você não precisa desta implantação para a próxima etapa. Execute o seguinte comando para excluir a implantação:

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

Pensando no futuro: como atualizar implantações

Em seguida, aprenda a adicionar, excluir e alterar as propriedades de recursos em uma implantação à medida que seu aplicativo evolui.