Creare uno script di esempio che utilizzi PowerShell per richiamare l'API del progetto di vRealize Automation.
Procedura
- Sulla macchina locale, aprire una shell della riga di comando.
- Creare una cartella
vro-powershell-vra
.mkdir vro-powershell-vra
- Passare alla cartella
vro-powershell-vra
.cd vro-powershell-vra
- 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'inputvRAUrl
nello script deve avere un parametro di input corrispondente denominatovRAUrl
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 restituzioneProperties
oComposite Type
. - 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 Modules per il modulo di asserzione.- Creare una cartella Modules.
mkdir Modules
- Installare il modulo di asserzione.
pwsh -c "Save-Module -Name Assert -Path ./Modules/ -Repository PSGallery"
- Creare una cartella Modules.
- 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" }
- 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"
- Definire i valori di
token
evRAUrl
.- 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.
- Aggiungere gli attributi del modulo di asserzione
Assert-NotNull
eAssert-Type
.$token | Assert-NotNull $token | Assert-Type String
- 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
- 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 restituzioneProperties
oComposite Type
per l'azione di vRealize Orchestrator.
- 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.