Compartilhar via


Solicitações da API REST para executar o comando em servidores habilitados para Azure Arc (versão prévia)

Usando o comando da API REST para Execução em servidores habilitados para Azure Arc (versão prévia), 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 com suporte e um cenário de exemplo para ajudá-lo a entender como usar a API REST.

Pré-requisitos

  • A versão do agente do Connected Machine 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 com suporte

Você pode usar as seguintes operações da API REST para executar comandos de execução em um servidor habilitado pelo Azure Arc.

Operação Descrição
Criar ou atualizar A operação para criar ou atualizar um Executar Comando. Executa o comando 'Run'.
excluir A operação para excluir um Executar Comando. Se estiver em execução, a exclusão também interromperá o comando Executar.
Obter A operação para obter um Executar comando.
Lista A operação para obter todos os Executar comandos de um servidor habilitado para Azure Arc.
Atualizar A operação para atualizar o Executar comando. Interrompe o comando Executar anterior.

Observação

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

Exemplo de cenário de API REST

As solicitações a seguir orientam você usando o Executar Comando 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 assinatura - 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 endpoint com um comando de execução

Primeiro, crie um script de Executar Comando para fornecer acesso ao ponto de extremidade www.microsoft.com/pkiops/certs em seu servidor de destino habilitado para Arc utilizando a operação PUT.

Você pode fornecer o script embutido ou vincular ao arquivo de script.

  • Para fornecer o script na 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 em linha e que você carregou o script no armazenamento de blobs.

    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 SAS (assinatura de acesso compartilhado) para o blob de armazenamento e deve fornecer acesso de leitura ao blob. Um tempo de expiração de 24 horas é recomendado 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 estiver gerando token SAS usando New-AzStorageBlobSASToken, o formato de URI SAS será: base blob URL + "?" + o token SAS de New-AzStorageBlobSASToken.

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

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

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 Executar existente com novos parâmetros usando a operação PATCH. O exemplo a seguir abre o acesso a outro ponto de extremidade para *.waconazure.com, 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 Executar comando para acesso ao ponto de extremidade, verifique se não há outros Executar comandos para o servidor habilitado para Arc. 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: excluir um comando de execução

Quando você não precisar mais da extensão executar comando, 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