Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Hilfsskripts entdecken

Hilfsskripts oder Vorlagenmodule sind Hilfsdateien, die Vorlagen durch die Ausführung bestimmter Funktionen effizienter machen können. So können Sie mit Hilfsskripts beispielsweise Metadaten von Ressourcen interpretieren, Dateien erstellen und Dienste starten.

Hier lernen Sie nun ein Python-Hilfsskript kennen, das mit einem Präfix und einem Suffix einen Namen für eine virtuelle Maschine erstellt.

Hinweis

  • Wenn Sie die Befehlszeilenbeispiele in dieser Anleitung verwenden möchten, installieren Sie das gcloud-Befehlszeilentool.
  • Wenn Sie die API-Beispiele in dieser Anleitung verwenden möchten, richten Sie den API-Zugriff ein.

Hilfsskript öffnen

Das einfache Hilfsskript in diesem Beispiel generiert den Namen für eine virtuelle Maschine (VM). Führen Sie die folgenden Befehle aus, um das Skript anzeigen zu lassen:

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

nano common.py  # use your preferred text editor

Die Funktion GenerateMachineName() verwendet ein Präfix und ein Suffix und generiert einen Namen im Format prefix-suffix:

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

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

Hilfsskript in der Vorlage verwenden

Wenn Sie common.py in vm-template.py verwenden möchten, müssen Sie zuerst mehrere Änderungen an der Vorlage vornehmen.

Zum Anzeigen der Änderungen öffnen Sie vm-template.py:

nano vm-template.py

Die Vorlage enthält Code-Kommentare, die die Änderungen hervorheben.

Beachten Sie, dass die Vorlage am Anfang der Datei common.py importiert. Im Abschnitt resources rufen die name-Felder für die VMs jetzt GenerateMachineName() auf.

"""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}

Änderungen an der Konfiguration ansehen

Wenn Sie sich die aktualisierte Konfiguration ansehen möchten, öffnen Sie two-vms.yaml:

nano two-vms.yaml

Beachten Sie dabei, dass das Hilfsskript common.py auch in die Konfiguration importiert werden muss.

Konfiguration bereitstellen:

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

Führen Sie Folgendes aus, um die Bereitstellung einschließlich der Ressourcen mit den generierten Namen anzeigen zu lassen:

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

Bereitstellung löschen

Sie sollten die Bereitstellung löschen, um Kosten zu vermeiden. Diese Bereitstellung benötigen Sie für den nächsten Schritt nicht. Führen Sie den folgenden Befehl aus, um die Bereitstellung zu löschen:

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

Nächstes Thema: Bereitstellungen aktualisieren

Als Nächstes lernen Sie, wie Sie Attribute von Ressourcen einer Bereitstellung hinzufügen, löschen und ändern, wenn sich Ihre Anwendung weiterentwickelt.