Maak een voorbeeldscript dat PowerShell gebruikt om de vRealize Automation Project-API aan te roepen.

Procedure

  1. Open een opdrachtregelshell op uw lokale machine.
  2. Maak een map vro-powershell-vra.
    mkdir vro-powershell-vra
  3. Ga naar de map vro-powershell-vra.
    cd vro-powershell-vra
  4. Maak een PowerShell-script met de naam handler.ps1.
    touch handler.ps1
    Het handler.ps1-script moet één functie definiëren die twee argumenten accepteert: de context van de vRealize Orchestrator-werkstroomuitvoering en de afhankelijke vRealize Orchestrator-invoer.
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
    Opmerking: Met behulp van standaardbibliotheken voor logboekregistratie wordt alles wat u vastlegt in de actie die uw script gebruikt, ook weergegeven in het werkstroomlogboek. De invoer en de retour van uw script moeten overeenkomende invoerparameters en retourtypen hebben die zijn geconfigureerd in de vRealize Orchestrator-client. De vRAUrl-invoer in uw script moet bijvoorbeeld een bijbehorende invoerparameter met de naam vRAUrl in de vRealize Orchestrator-client hebben. Op dezelfde wijze moet, als uw script een tekenreekswaarde retourneert, het retourtype dat is geconfigureerd in de vRealize Orchestrator-client ook een tekenreekstype zijn. Als uw actie een complex object retourneert, kunt u retourtype Properties of Composite Type gebruiken.
  5. Installeer de PowerShell-bevestigingsmodule.
    Belangrijk: De modules voor afhankelijkheden van derden moeten worden geïnstalleerd in een map op het hoofdniveau in uw primaire vro-powershell-vra-scriptmap. Voor dit gebruiksscenario maakt u een map Modules voor uw bevestigingsmodule.
    1. Maak een map Modules.
      mkdir Modules
    2. Installeer de bevestigingsmodule.
      pwsh -c "Save-Module -Name Assert -Path ./Modules/ -Repository PSGallery"
  6. Voeg de bevestigingsmodule toe aan het handler.ps1-script.
    Import-Module Assert
     
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
  7. Maak een GET-aanvraag voor de vRealize Automation Project-API die de Invoke-RestMethod-cmdlet gebruikt.
    $token = ''
    $vRAUrl = ''
    $projectsUrl = $vRAUrl + "/project-service/api/projects"
    $response = Invoke-RestMethod $projectsUrl + '/iaas/api/projects' -Headers @{'Authorization' = "Bearer $token"} -Method 'GET'
     
    Write-Host "Got response: $response"
  8. Definieer de waarden token en vRAUrl .
    1. Haal het toegangstoken op met behulp van de API van de vRealize Automation-identiteitsservice. Zie Uw toegangstoken voor de vRealize Automation API ophalen.
    2. Voeg de kenmerken Assert-NotNull en Assert-Type van de bevestigingsmodule toe.
      $token | Assert-NotNull
      $token | Assert-Type String
    3. Voor de waarde vRAUrl definieert u het script zodat het een vRealize Orchestrator-invoerparameter met dezelfde naam gebruikt.
      $vRAUrl = $inputs.vRAUrl
    4. Voeg de nieuwe waarden toe aan het handler.ps1-bestand.
      Import-Module Assert
      $ErrorActionPreference = "Stop"
      function Handler {
        Param($context, $inputs)
        $token = "ACCESS_TOKEN"
        $token | Assert-NotNull
        $token | Assert-Type String
        $vRAUrl = $inputs.vRAUrl
        $projectsUrl = $vRAUrl + "/project-service/api/projects"
        $response = Invoke-RestMethod $projectsUrl -Headers @{'Authorization' = "Bearer $token"} -Method 'GET'
       
        Write-Host "Got response: $response"
       
        return $response
      }
      Opmerking: Omdat het antwoord van de vRealize Automation Project-API wordt geretourneerd in een JSON-indeling, gebruikt u een retourtype Properties of Composite Type voor uw vRealize Orchestrator-actie.
  9. Maak een ZIP-pakket dat het handler.ps1-bestand en de map Modules van uw bevestigingsmodule bevat.
    
    zip -r --exclude=*.zip -X vro-powershell-vra.zip .

Volgende stappen

Importeer het PowerShell-script in een vRealize Orchestrator-actie. Zie Acties in de vRealize Orchestrator-client maken.