Cree un script de ejemplo que utilice PowerShell para llamar a la API de proyecto de vRealize Automation.

Procedimiento

  1. En el equipo local, abra un shell de línea de comandos.
  2. Cree una carpeta vro-powershell-vra.
    mkdir vro-powershell-vra
  3. Desplácese hasta la carpeta vro-powershell-vra.
    cd vro-powershell-vra
  4. Cree un script de PowerShell llamado handler.ps1.
    touch handler.ps1
    El script handler.ps1 debe definir una función que acepte dos argumentos: el contexto de la ejecución del flujo de trabajo de vRealize Orchestrator y las entradas enlazadas de vRealize Orchestrator.
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
    Nota: Mediante las bibliotecas de registro estándar, todo lo que se registre en la acción que utiliza el script también se muestra en el registro del flujo de trabajo. Las entradas y los valores devueltos del script deben tener configurados en el cliente de vRealize Orchestrator los parámetros de entrada y los tipos de valores devueltos correspondientes. Por ejemplo, la entrada vRAUrl en el script debe tener un parámetro de entrada correspondiente denominado vRAUrl en el cliente de vRealize Orchestrator. De forma similar, si el script devuelve un valor de cadena, el tipo de valor devuelto configurado en el cliente de vRealize Orchestrator también debe ser una cadena. Si la acción devuelve un objeto complejo, puede utilizar un tipo de valor devuelto Properties o Composite Type.
  5. Instale el módulo de aserciones de PowerShell.
    Importante: Los módulos de dependencia de terceros deben instalarse en una carpeta de nivel raíz en la carpeta de scripts vro-powershell-vra principal. En este caso práctico se crea una carpeta Modules para el módulo de aserciones.
    1. Cree una carpeta Modules.
      mkdir Modules
    2. Instale el módulo de aserciones.
      pwsh -c "Save-Module -Name Assert -Path ./Modules/ -Repository PSGallery"
  6. Agregue el módulo de aserciones al script handler.ps1.
    Import-Module Assert
     
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
  7. Cree una solicitud GET a la API de proyecto de vRealize Automation que utiliza el 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. Defina los valores de token y de vRAUrl .
    1. Recupere el token de acceso mediante la API del servicio de identidad de vRealize Automation. Consulte Obtener el token de acceso para la API de vRealize Automation.
    2. Agregue los atributos del módulo de aserciones Assert-NotNull y Assert-Type.
      $token | Assert-NotNull
      $token | Assert-Type String
    3. Para el valor de vRAUrl, defina el script para que utilice un parámetro de entrada de vRealize Orchestrator con el mismo nombre.
      $vRAUrl = $inputs.vRAUrl
    4. Agregue los nuevos valores al archivo 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: Dado que la respuesta de la API de proyecto de vRealize Automation se devuelve en formato JSON, utilice un tipo de valor devuelto Properties o Composite Type para la acción de vRealize Orchestrator.
  9. Cree un paquete ZIP que contenga el archivo handler.ps1 y la carpeta Modules del módulo de aserciones.
    
    zip -r --exclude=*.zip -X vro-powershell-vra.zip .

Qué hacer a continuación

Importe el script de PowerShell en una acción de vRealize Orchestrator. Consulte Crear acciones en el cliente de vRealize Orchestrator.