Creare uno script di esempio che utilizzi PowerShell per richiamare l'API del progetto di vRealize Automation.

Procedura

  1. Sulla macchina locale, aprire una shell della riga di comando.
  2. Creare una cartella vro-powershell-vra.
    mkdir vro-powershell-vra
  3. Passare alla cartella vro-powershell-vra.
    cd vro-powershell-vra
  4. Creare uno script di PowerShell denominato handler.ps1.
    touch handler.ps1
    Lo script handler.ps1 deve definire una funzione che accetti due argomenti, il contesto dell'esecuzione del workflow di vRealize Orchestrator e gli input di vRealize Orchestrator associati.
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
    Nota: Se si utilizzano le librerie di registrazione standard, tutto ciò che viene registrato nell'azione che utilizza lo script viene visualizzato anche nel registro del workflow. Gli input e ciò che viene restituito dallo script devono avere parametri di input e tipi di restituzione corrispondenti configurati in vRealize Orchestrator Client. Ad esempio, l'input vRAUrl nello script deve avere un parametro di input corrispondente denominato vRAUrl in vRealize Orchestrator Client. Analogamente, se lo script restituisce un valore stringa, anche il tipo di restituzione configurato in vRealize Orchestrator Client deve essere stringa. Se l'azione restituisce un oggetto complesso, è possibile utilizzare il tipo di restituzione Properties o Composite Type.
  5. Installare il modulo di asserzione di PowerShell.
    Importante: I moduli delle dipendenze di terze parti devono essere installati in una cartella di livello root nella cartella dello script vro-powershell-vra principale. Per questo caso d'uso, verrà creata una cartella Moduli per il modulo di asserzione.
    1. Creare una cartella Modules.
      mkdir Modules
    2. Installare il modulo di asserzione.
      pwsh -c "Save-Module -Name Assert -Path ./Modules/ -Repository PSGallery"
  6. Aggiungere il modulo di asserzione allo script handler.ps1.
    Import-Module Assert
     
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
  7. Creare una richiesta GET per l'API del progetto di vRealize Automation che utilizza il cmdlet Invoke-RestMethod.
    $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. Definire i valori di token e vRAUrl .
    1. Recuperare il token di accesso utilizzando l'API del servizio di identità di vRealize Automation. Vedere Ottenere il token di accesso per l'API di vRealize Automation.
    2. Aggiungere gli attributi del modulo di asserzione Assert-NotNull e Assert-Type.
      $token | Assert-NotNull
      $token | Assert-Type String
    3. Per il valore di vRAUrl, definire lo script in modo che utilizzi un parametro di input di vRealize Orchestrator con lo stesso nome.
      $vRAUrl = $inputs.vRAUrl
    4. Aggiungere i nuovi valori al file handler.ps1.
      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
      }
      Nota: Poiché la risposta dell'API del progetto di vRealize Automation viene restituita in formato JSON, utilizzare il tipo di restituzione Properties o Composite Type per l'azione di vRealize Orchestrator.
  9. Creare un pacchetto ZIP contenente il file handler.ps1 e la cartella Modules del modulo di asserzione.
    
    zip -r --exclude=*.zip -X vro-powershell-vra.zip .

Operazioni successive

Importare lo script di PowerShell in un'azione di vRealize Orchestrator. Vedere Creazione di azioni in vRealize Orchestrator Client.