Crie um script de amostra que usa o PowerShell para chamar a API de Projeto do vRealize Automation.

Procedimento

  1. Na sua máquina local, abra um shell de linha de comando.
  2. Crie uma pasta vro-powershell-vra.
    mkdir vro-powershell-vra
  3. Vá para a pasta vro-powershell-vra.
    cd vro-powershell-vra
  4. Crie um script do PowerShell chamado handler.ps1.
    touch handler.ps1
    O script handler.ps1 deve definir uma função que aceite dois argumentos, o contexto do fluxo de trabalho de vRealize Orchestrator executado e as entradas do vRealize Orchestrator vinculadas.
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
    Observação: Usando bibliotecas de registro padrão, tudo o que você registra na ação que usa seu script também é mostrado no registro do fluxo de trabalho. As entradas e o retorno do seu script devem ter parâmetros de entrada e tipos de retorno correspondentes configurados no Cliente do vRealize Orchestrator. Por exemplo, a entrada de vRAUrl, no seu script, deve ter um parâmetro de entrada correspondente chamado vRAUrl no Cliente do vRealize Orchestrator. Da mesma forma, se o script retornar um valor de cadeia de caracteres, o tipo de retorno configurado no Cliente do vRealize Orchestrator também deverá ser um tipo de cadeia de caracteres. Se a sua ação retornar um objeto complexo, você poderá usar o tipo de retorno Properties ou Composite Type.
  5. Instale o módulo de afirmação do PowerShell.
    Importante: Os módulos de dependência de terceiros devem ser instalados em uma pasta de nível da raiz na sua pasta de script principal vro-powershell-vra. Para esse caso de uso, crie uma pasta Módulos para o seu módulo de afirmação.
    1. Crie uma pasta Módulos.
      mkdir Modules
    2. Instale o módulo de afirmação.
      pwsh -c "Save-Module -Name Assert -Path ./Modules/ -Repository PSGallery"
  6. Adicione o módulo de afirmação ao script handler.ps1.
    Import-Module Assert
     
    function Handler {
      Param($context, $inputs)
     
     
      $inputsString = $inputs | ConvertTo-Json -Compress
      Write-Host "Inputs were $inputsString"
    }
  7. Crie uma solicitação GET para a API de Projeto do vRealize Automation que usa o cmdlet do 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 os valores token e vRAUrl .
    1. Recupere o token de acesso usando a API do Serviço de Identidade do vRealize Automation. Consulte Obter o Token de Acesso para a API do vRealize Automation.
    2. Adicione os atributos de módulo de afirmação Assert-NotNull e Assert-Type.
      $token | Assert-NotNull
      $token | Assert-Type String
    3. Para o valor vRAUrl, defina o script para que ele use um parâmetro de entrada do vRealize Orchestrator com o mesmo nome.
      $vRAUrl = $inputs.vRAUrl
    4. Adicione os novos valores ao arquivo 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
      }
      Observação: Como a resposta da API de Projeto do vRealize Automation é retornada em um formato JSON, use um tipo de retorno Properties ou Composite Type para a ação do vRealize Orchestrator.
  9. Crie um pacote ZIP que contenha o arquivo handler.ps1 e a pasta Módulos do seu módulo de afirmação.
    
    zip -r --exclude=*.zip -X vro-powershell-vra.zip .

O que Fazer Depois

Importe o script do PowerShell para uma ação do vRealize Orchestrator. Consulte o Criar ações no Cliente do vRealize Orchestrator.