De oorspronkelijke versie van het Python-script heeft een opzettelijke ingebouwde fout, zodat u kunt leren hoe u fouten in uw script oplost.
Voorwaarden
Meld u aan bij uw AWS-account (Amazon Web Services) en maak een IAM-gebruiker specifiek voor dit gebruiksscenario. Zie
Een IAM-gebruiker maken in uw AWS-account. De IAM-gebruiker moet de volgende rechten hebben:
"Effect": "Allow", "Action": "ec2:DescribeInstances", "Resource": "*"
Procedure
- Bereid de vRealize Orchestrator Appliance voor.
Voorzichtig: Voer geen foutopsporing uit in scripts in uw vRealize Orchestrator-productie-implementatie. Voer foutopsporing uit vanaf een vRealize Orchestrator-implementatie met één knooppunt die u gebruikt voor ontwikkeling en tests.
- Meld u via SSH aan bij de vRealize Orchestrator Appliance-opdrachtregel als root.
- Voer de opdracht vracli dev tools uit.
- U wordt gevraagd om te bevestigen dat u wilt doorgaan. Voer Ja in om door te gaan of Nee om te annuleren.
Belangrijk: Door de opdracht vracli dev tools uit te voeren, opent u de poorten die nodig zijn om fouten op te sporen in het Python-script. U moet de huidige SSH-sessie geopend laten tijdens de foutopsporing.
- Start de configuratie van de foutopsporing.
- Meld u aan bij de vRealize Orchestrator-client.
- Open de actie AWS en klik op Foutopsporing.
De foutopsporing begint en de actie-uitvoering is opgeschort.
- Selecteer het tabblad Configuratie van foutopsporing.
Het tabblad bevat een .json-configuratie die u op afstand kunt toevoegen aan uw IDE om fouten op te sporen in het Python-script.
- Kopieer de configuratie-inhoud handmatig of klik op Naar klembord kopiëren.
- Voer foutopsporing uit op het Python-script.
- Open Visual Studio Code.
- Open de map vro-python-aws.
- Selecteer in het bovenste navigatiedeelvenster Uitvoeren > Configuraties openen.
- Selecteer Python-bestand.
- Laat de kenmerken
"version"
en"configuration"
op hun huidige posities staan en plak de inhoud van de .json-configuratie die is gekopieerd van de vRealize Orchestrator-client. Het gegenereerde launch.json-bestand moet er ongeveer als volgt uitzien:{ "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" } ] } ] }
- Selecteer het main.py-scriptbestand en voeg een onderbrekingspunt toe aan de
ec2 = boto3.resource('ec2')
-regel. - Selecteer in het bovenste navigatiedeelvenster Uitvoeren > Foutopsporing starten.
- Wanneer het foutopsporingsprogramma het onderbrekingspunt bereikt, voert u een Stap over-bewerking uit.
De foutopsporing geeft aan dat het Python-script geen specifieke regio en AWS-toegangssleutel bevat.
- Ga terug naar de open vRealize Orchestrator Appliance-sessie en druk op Enter om de poorten te sluiten die u voor deze foutopsporingssessie heeft geopend.
- Voeg de ontbrekende informatie toe aan het Python-script.
- Maak in Visual Studio Code een bestand met de naam awsconfig dat de AWS-toegangssleutel van de IAM-gebruiker bevat en de AWS-regio die u wilt pingen met het Python-script.
[default] aws_access_key_id=your key ID aws_secret_access_key=your secret access key region=your-region
- Sla awsconfig op als een configuratiebestand (.cfg) in de map vro-python-aws.
- Open het bestand main.py en wijzig dit zodat de boto3-bibliotheek het bestand awsconfig.cfg kan gebruiken.
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)
- Maak een nieuw ZIP-pakket dat het bestand main.py, het bestand awsconfig.cfg en de boto3-bibliotheek bevat.
zip -r --exclude=*.zip -X vro-python-aws.zip .
Opmerking: U kunt ook het ZIP-pakket maken met behulp van een ZIP-hulpprogramma, zoals 7-Zip.
- Maak in Visual Studio Code een bestand met de naam awsconfig dat de AWS-toegangssleutel van de IAM-gebruiker bevat en de AWS-regio die u wilt pingen met het Python-script.