Partilhar via


Solicitações de API REST para o comando Executar em servidores com suporte ao Azure Arc (Pré-visualização)

Usando o comando API REST for Run em servidores habilitados para ArcGIS do Azure (Visualização), você pode executar scripts ou comandos remotamente e com segurança em máquinas virtuais habilitadas para Arc sem se conectar diretamente a elas por meio do Protocolo de Área de Trabalho Remota ou SSH.

Este artigo fornece operações de API REST suportadas e um cenário de exemplo para ajudá-lo a entender como usar a API REST.

Pré-requisitos

  • A versão do agente de Máquina Conectada no servidor habilitado para Arc deve ser 1.33 ou superior.
  • Você precisa de um token de acesso para usar a API REST. Consulte Introdução ao REST.

Operações de API REST suportadas

Você pode usar as seguintes operações da API REST para executar comandos Run em um servidor habilitado para Azure Arc.

Funcionamento Descrição
Criar ou atualizar A operação para criar ou atualizar um comando de execução. Executa o comando Run.
Eliminar A operação para excluir um comando Executar. Se estiver em execução, apagar também interrompe o comando Executar.
Obter A operação para acessar o comando "Executar".
Lista A operação para obter todos os comandos de execução de um servidor com Azure Arc ativado.
Atualização A operação para atualizar o comando Executar. Interrompe o comando Executar anterior.

Observação

Os blobs de saída e de erro são substituídos sempre que é executado o script de comando run.

Exemplo de cenário da API REST

As solicitações a seguir orientam-no a usar o comando Executar para configurar remotamente uma regra de firewall que permite o acesso ao ponto de extremidade www.microsoft.com/pkiops/certs. O cenário de exemplo usa cada uma das operações REST disponíveis.

Os exemplos de código usam as seguintes informações:

  • ID da subscrição - aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
  • Nome do servidor habilitado para Arc - 2012DatacenterServer1
  • Grupo de recursos - ContosoRG
  • Sistema operacional do servidor - servidores Windows Server 2012 / R2

Etapa 1: Criar acesso ao ponto de extremidade com um comando Run

Primeiro, crie um script de comando Run para fornecer acesso ao ponto de extremidade de destino no servidor habilitado para Arc usando a operação PUT.

Você pode fornecer o script integrado ou pode ligar ao ficheiro de script.

  • Para fornecer o script em linha:

    PUT https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2024-11-10-preview
    
    {
      "location": "eastus2",
      "properties": {
        "source": {
          "script": "New-NetFirewallRule -DisplayName $ruleName -Direction Outbound -Action Allow -RemoteAddress $endpoint -RemotePort $port -Protocol $protocol"
        },
        "parameters": [
          {
            "name": "ruleName",
            "value": "Allow access to www.microsoft.com/pkiops/certs"
          },
          {
            "name": "endpoint",
            "value": "www.microsoft.com/pkiops/certs"
          },
          {
            "name": "port",
            "value": 433
          },
          {
            "name": "protocol",
            "value": "TCP"
          }
    
        ],
        "asyncExecution": false,
        "runAsUser": "contoso-user1",
        "runAsPassword": "Contoso123!"
        "timeoutInSeconds": 3600,
        "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
        "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
      }
    }
    
  • Para vincular ao arquivo de script:

    Observação

    Este exemplo pressupõe que você preparou um arquivo chamado newnetfirewallrule.ps1, contendo o script in-line e que você enviaste o script para o Blob Storage.

    PUT https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2024-11-10-preview
    
    {
      "location": "eastus2",
      "properties": {
        "source": {
          "scriptUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/newnetfirewallrule.ps1"
        },
        "parameters": [
          {
            "name": "ruleName",
            "value": " Allow access to www.microsoft.com/pkiops/certs"
          },
          {
            "name": "endpoint",
            "value": "www.microsoft.com/pkiops/certs"
          },
          {
            "name": "port",
            "value": 433
          },
          {
            "name": "protocol",
            "value": "TCP"
          }
    
        ],
        "asyncExecution": false,
        "runAsUser": "contoso-user1",
        "runAsPassword": "Contoso123!"
        "timeoutInSeconds": 3600,
        "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
        "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
      }
    }
    
    • O scriptUri é um URI de assinatura de acesso compartilhado (SAS) para o blob de armazenamento e deve fornecer acesso de leitura ao blob. Sugere-se um tempo de expiração de 24 horas para o URI SAS. Você pode gerar um URI SAS no portal do Azure usando opções de blobs ou token SAS usando New-AzStorageBlobSASToken. Se gerar token SAS usando New-AzStorageBlobSASToken, o formato URI SAS é: base blob URL + "?" + o token SAS de New-AzStorageBlobSASToken.

    • Os blobs de saída e erro devem ser do tipo AppendBlob e seus URIs SAS devem fornecer acesso de leitura, acréscimo, criação e gravação ao blob. Sugere-se um tempo de expiração de 24 horas para o URI SAS. Você pode gerar URIs SAS no portal do Azure usando as opções de blob ou gerar um token SAS através de New-AzStorageBlobSASToken.

    Para saber mais sobre assinaturas de acesso compartilhado, consulte Conceder acesso limitado aos recursos do Armazenamento do Azure usando assinaturas de acesso compartilhado (SAS).

Etapa 2: Verificar os detalhes do comando Executar

Verifique se você provisionou corretamente o comando Executar usando a operação GET.

GET https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2024-11-10-preview

Etapa 3: Atualizar o comando Executar

Você pode atualizar o comando Run existente com novos parâmetros usando a operação PATCH. O exemplo a seguir abre o acesso a outro ponto de extremidade, *.waconazure.com, para conectividade com o Windows Admin Center.

PATCH https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2024-11-10-preview
{
  "location": "eastus2",
  "properties": {
    "source": {
      "script": "New-NetFirewallRule -DisplayName $ruleName -Direction Outbound -Action Allow -RemoteAddress $endpoint -RemotePort $port -Protocol $protocol"
    },
    "parameters": [
      {
        "name": "ruleName",
        "value": "Allow access to WAC endpoint"
      },
      {
        "name": "endpoint",
        "value": "*.waconazure.com"
      },
      {
        "name": "port",
        "value": 433
      },
      {
        "name": "protocol",
        "value": "TCP"
      }
    ],
    "asyncExecution": false,
    "runAsUser": "contoso-user1",
    "runAsPassword": "Contoso123!",
    "timeoutInSeconds": 3600,
    "outputBlobUri": "https://mystorageaccount.blob.core.windows.net/myscriptoutputcontainer/MyScriptoutput.txt",
    "errorBlobUri": "https://mystorageaccount.blob.core.windows.net/mycontainer/MyScriptError.txt"
  }
}

Etapa 4: Listar comandos de execução

Antes de excluir o comando Executar para acesso ao ponto de extremidade, verifique se não há outros comandos Executar para o servidor com Arc ativado. Você pode usar a operação LIST para obter todos os comandos Run no servidor habilitado para Arc:

LIST https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands?api-version=2024-11-10-preview

Etapa 5: Apagar um Comando 'Executar'

Quando não precisar mais da extensão de comando Executar, você poderá excluí-la usando a seguinte operação DELETE:

DELETE https://management.azure.com/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ContosoRG/providers/Microsoft.HybridCompute/machines/2012DatacenterServer1/runCommands/EndpointAccessCommand?api-version=2024-11-10-preview