Die ursprüngliche Version des Python-Skripts weist einen absichtlich integrierten Fehler auf, sodass Sie lernen können, wie Sie Ihr Skript debuggen.

Voraussetzungen

Melden Sie sich bei Ihrem Amazon Web Services-Konto (AWS) an und erstellen Sie einen IAM-Benutzer speziell für dieses Anwendungsbeispiel-Szenario Weitere Informationen hierzu finden Sie unter Erstellen eines IAM-Benutzers in Ihrem AWS-Konto. Der IAM-Benutzer muss über die folgenden Berechtigungen verfügen:
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"

Prozedur

  1. Bereiten Sie die vRealize Orchestrator Appliance vor.
    Vorsicht: Debuggen Sie keine Skripts in Ihrer vRealize Orchestrator-Produktionsbereitstellung. Debuggen Sie in einer vRealize Orchestrator-Bereitstellung mit einem einzelnen Knoten, die Sie für Entwicklungs- und Testzwecke verwenden.
    1. Melden Sie sich über SSH als root-Benutzer bei der Befehlszeile der vRealize Orchestrator Appliance an.
    2. Führen Sie den Befehl vracli dev tools aus.
    3. Sie werden aufgefordert zu bestätigen, dass Sie fortfahren möchten. Geben Sie ja ein, um fortzufahren, oder nein, um den Vorgang abzubrechen.
      Wichtig: Indem Sie den Befehl vracli dev tools ausführen, öffnen Sie die Ports, die zum Debuggen des Python-Skripts erforderlich sind. Sie müssen die aktuelle SSH-Sitzung während des Debug-Prozesses geöffnet lassen.
  2. Starten Sie die Debug-Konfiguration.
    1. Melden Sie sich beim vRealize Orchestrator Client an.
    2. Öffnen Sie die AWS-Aktion und klicken Sie auf Debuggen.
      Der Debug-Prozess beginnt, und die Aktionsausführung wird angehalten.
    3. Wählen Sie die Registerkarte Debug-Konfiguration aus.
      Die Registerkarte enthält eine Konfiguration vom Typ .json, die Sie zum Debuggen des Python-Skripts remote an Ihre IDE anhängen können.
    4. Kopieren Sie den Konfigurationsinhalt manuell oder klicken Sie auf In Zwischenablage kopieren.
  3. Debuggen Sie das Python-Skript.
    1. Öffnen Sie Visual Studio Code.
    2. Öffnen Sie den Ordner vro-python-aws.
    3. Wählen Sie im oberen Navigationsbereich Ausführen > Konfigurationen öffnen.
    4. Wählen Sie Python-Datei aus.
    5. Behalten Sie die Attribute "version" und "configuration" an ihren aktuellen Positionen bei und fügen Sie den Inhalt der .json-Konfiguration ein, die aus dem vRealize Orchestrator Client kopiert wurde. Die generierte launch.json-Datei muss dem folgenden Beispiel gleichen:
      {
      
          "version": "0.2.0",
          "configurations": [
              {
                  "request": "attach",
                  "port": 18281,
                  "name": "vRO Python debug 8302f4c7-5beb-40da-848a-5003c0296f7b",
                  "host": "es-sof-vc-vm-225-190.sof-mbu.eng.vmware.com",
                  "type": "python",
                  "pathMappings": [
                    {
                      "localRoot": "${workspaceFolder}",
                      "remoteRoot": "/var/run/vco-polyglot/function"
                  }
              ]
            }
          ]
        }
    6. Wählen Sie die Skriptdatei main.py aus und fügen Sie der Zeile ec2 = boto3.resource('ec2') einen Haltepunkt hinzu.
    7. Wählen Sie im oberen Navigationsbereich Ausführen > Debuggen starten aus.
    8. Wenn der Debugger den Haltepunkt erreicht, führen Sie einen Überspringen-Vorgang durch.
      Die Debug-Ausführung gibt an, dass dem Python-Skript eine angegebene Region und ein AWS-Zugriffsschlüssel fehlt.
    9. Gehen Sie zurück zur geöffneten vRealize Orchestrator Appliance-Sitzung und drücken Sie die Eingabetaste, um die Ports zu schließen, die Sie für diese Debug-Sitzung geöffnet haben.
  4. Fügen Sie dem Python-Skript die fehlenden Informationen hinzu.
    1. Erstellen Sie in Visual Studio Code eine Datei mit dem Namen awsconfig, die den AWS-Zugriffsschlüssel des IAM-Benutzers und die AWS-Region enthält, die Sie mit dem Python-Skript anpingen möchten.
      [default]
      aws_access_key_id=your key ID
      aws_secret_access_key=your secret access key
      region=your-region
    2. Speichern Sie awsconfig als Konfigurationsdatei (.cfg) im Ordner vro-python-aws.
    3. Öffnen Sie die Datei main.py und bearbeiten Sie sie, damit die boto3-Bibliothek die Datei awsconfig.cfg verwenden kann.
      import boto3
       
      import os
      os.environ['AWS_CONFIG_FILE'] = os.getcwd() + '/awsconfig.cfg'
       
      def handler(context, inputs):
          ec2 = boto3.resource('ec2')
          filters = [{
              'Name': 'instance-state-name',
              'Values': ['running']
          }]
        
          instances = ec2.instances.filter(Filters=filters)
          for instance in instances:
              print('Instance: ' + instance.id)
    4. Erstellen Sie ein neues ZIP-Paket, das die Datei main.py, die Datei awsconfig.cfg und die boto3-Bibliothek enthält.
      zip -r --exclude=*.zip -X vro-python-aws.zip .
      Hinweis: Sie können das ZIP-Paket auch mithilfe eines ZIP-Tools wie 7-Zip erstellen.