Explorer les scripts d'aide

Les scripts d'aide, ou modules de modèle, sont des fichiers d'aide qui exécutent des fonctions spécifiques afin d'augmenter l'efficacité de vos modèles. Par exemple, vous pouvez utiliser des scripts d'aide pour interpréter des métadonnées de ressources, créer des fichiers et lancer des services.

À présent, vous allez découvrir un script d'aide Python qui nomme une machine virtuelle, avec un préfixe et un suffixe.

Avant de commencer

Ouvrir le script d'aide

Dans cet exemple, le script d'aide de base génère le nom d'une machine virtuelle. Pour afficher le script, exécutez les commandes suivantes :

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

nano common.py  # use your preferred text editor

La fonction GenerateMachineName() prend un préfixe et un suffixe, puis génère un nom au format prefix-suffix :

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

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

Utiliser le script d'aide dans le modèle

Pour utiliser common.py dans vm-template.py, plusieurs modifications doivent être apportées au modèle.

Pour afficher les modifications, ouvrez vm-template.py :

nano vm-template.py

Le modèle contient des commentaires sur le code qui mettent en surbrillance les modifications.

Notez que le modèle importe common.py en haut du fichier. Dans la section resources, les champs name des VM appellent désormais 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}

Afficher les modifications apportées à la configuration

Pour afficher la configuration mise à jour, ouvrez two-vms.yaml :

nano two-vms.yaml

Notez que le script d'aide common.py doit également être importé dans la configuration.

Déployez votre configuration :

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

Pour afficher le déploiement, y compris les ressources avec les noms générés, exécutez :

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

Supprimer le déploiement

Il est recommandé de supprimer le déploiement afin d'éviter que des frais ne soient facturés. Vous n'avez pas besoin de ce déploiement pour l'étape suivante. Exécutez la commande suivante pour supprimer le déploiement :

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

Anticiper : mettre à jour des déploiements

Découvrez ensuite comment ajouter, supprimer et modifier les propriétés des ressources d'un déploiement lorsque votre application évolue.