Esplorazione degli script di supporto

Script di supporto o moduli di modelli sono file di supporto che possono rendere i tuoi modelli più efficienti eseguendo funzioni specifiche. Ad esempio, puoi utilizzare gli script di supporto per interpretare i metadati delle risorse, creare file e avviare servizi.

Ora esplorerai uno script di supporto Python che assegna un nome a una macchina virtuale, dato un prefisso e un suffisso.

Prima di iniziare

  • Se vuoi utilizzare gli esempi di riga di comando in questa guida, installa lo strumento a riga di comando `gcloud`.
  • Se vuoi utilizzare gli esempi di API in questa guida, configura l'accesso alle API.

Aprire lo script di supporto

Lo script di supporto di base in questo esempio genera il nome di una macchina virtuale (VM). Per visualizzare lo script, esegui questi comandi:

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

nano common.py  # use your preferred text editor

La funzione GenerateMachineName() accetta un prefisso e un suffisso e genera un nome nel formato prefix-suffix:

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


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

Utilizzare lo script di supporto nel modello

Per utilizzare common.py in vm-template.py, è necessario apportare diverse modifiche al modello.

Per visualizzare le modifiche, apri vm-template.py:

nano vm-template.py

Il modello contiene commenti di codice che evidenziano le modifiche.

Tieni presente che il modello importa common.py nella parte superiore del file. Nella sezione resources, i campi name delle VM ora chiamano 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}

Visualizzare le modifiche alla configurazione

Per visualizzare la configurazione aggiornata, apri two-vms.yaml:

nano two-vms.yaml

Tieni presente che anche lo script di supporto common.py deve essere importato nella configurazione.

Esegui il deployment della configurazione:

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

Per visualizzare il deployment, incluse le risorse con i nomi generati, esegui:

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

Eliminare il deployment

Ti consigliamo di eliminare il deployment per evitare addebiti. Non hai bisogno di questo deployment per il passaggio successivo. Esegui questo comando per eliminare il deployment:

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

Guardare avanti: aggiornare i deployment

Ora scopri come aggiungere, eliminare e modificare le proprietà delle risorse in un deployment man mano che l'app si evolve.