Compartir a través de


Solicitudes de API REST para ejecutar el comando en servidores habilitados para Azure Arc (versión preliminar)

Con la API REST para ejecutar el comando en servidores habilitados para Azure Arc (versión preliminar), puede ejecutar scripts o comandos de forma remota y segura en máquinas virtuales habilitadas para Arc sin conectarse directamente a ellos a través del protocolo de Escritorio remoto o SSH.

En este artículo se proporcionan operaciones de API REST admitidas y un escenario de ejemplo que le ayudará a comprender cómo usar la API REST.

Prerrequisitos

  • La versión del agente de Connected Machine en el servidor habilitado para Arc debe ser 1.33 o posterior.
  • Necesita un token de acceso para usar la API REST. Consulte Introducción a REST.

Operaciones de API REST admitidas

Puede usar las siguientes operaciones de API REST para ejecutar comandos run en un servidor habilitado para Azure Arc.

Operación Descripción
Crear o actualizar La operación para crear o actualizar una orden de ejecución. Esto ejecuta un comando de ejecución.
Eliminar La operación para borrar un comando de ejecución. Si se está ejecutando, eliminar también detendrá el comando de ejecución.
Obtener Operación para obtener un comando de ejecución.
Lista La operación para recuperar todos los comandos de ejecución de un servidor habilitado para Azure Arc.
Actualizar Operación de actualización del comando Ejecutar. Detiene el comando Run anterior.

Nota:

Los blobs de salida y error se sobrescriben cada vez que se ejecuta el script de comando de ejecución.

Escenario de API REST de ejemplo

Las siguientes solicitudes le guiarán por el uso del comando Ejecutar para configurar de forma remota una regla de firewall que permita el acceso al punto de conexión www.microsoft.com/pkiops/certs. En el escenario de ejemplo se usa cada una de las operaciones REST disponibles.

Los ejemplos de código usan la siguiente información:

  • Identificador de suscripción - aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
  • Nombre del servidor habilitado para Arc - 2012DatacenterServer1
  • Grupo de recursos - ContosoRG
  • Sistema operativo del servidor : servidores de Windows Server 2012/R2

Paso 1: Crear acceso de punto de conexión con el comando de ejecución

Primero, crea un script de comando de ejecución para proporcionar acceso al punto de conexión www.microsoft.com/pkiops/certs en tu servidor habilitado para Arc de destino mediante la operación PUT.

Puede proporcionar el script en línea o enlazar al archivo del script.

  • Para proporcionar el script en línea:

    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 al archivo de script:

    Nota:

    En este ejemplo se supone que preparó un archivo denominado newnetfirewallrule.ps1, que contiene el script en línea y que cargó el script en 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"
      }
    }
    
    • scriptUri es un URI de firma de acceso compartido (SAS) para el blob de almacenamiento y debe proporcionar acceso de lectura al blob. Se sugiere una hora de expiración de 24 horas para el URI de SAS. Puede generar un URI de SAS en Azure Portal mediante opciones de blobs o token de SAS mediante New-AzStorageBlobSASToken. Si genera el token de SAS mediante New-AzStorageBlobSASToken, el formato de URI de SAS es: base blob URL + "?" + el token de SAS de New-AzStorageBlobSASToken.

    • Los blobs de salida y error deben ser el tipo AppendBlob y sus URI de SAS deben proporcionar acceso de lectura, anexión, creación y escritura al blob. Se recomienda un tiempo de expiración de 24 horas para el URI de SAS. Puede generar URI de SAS en Azure Portal mediante las opciones del blob o el token de SAS mediante New-AzStorageBlobSASToken.

    Para más información sobre las firmas de acceso compartido, consulte Concesión de acceso limitado a recursos de Azure Storage mediante firmas de acceso compartido (SAS).

Paso 2: Comprobación de los detalles del comando de ejecución

Compruebe que ha aprovisionado correctamente el comando Ejecutar mediante la operación 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

Paso 3: Actualizar el comando Ejecutar

Puede actualizar el comando Run existente con nuevos parámetros mediante la operación PATCH. En el siguiente ejemplo se abre el acceso a otro punto de conexión para la conectividad a *.waconazure.com, 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"
  }
}

Paso 4: Enumerar comandos de ejecución

Antes de eliminar el comando Ejecutar para el acceso al punto de conexión, asegúrese de que no haya ningún otro comando Run para el servidor habilitado para Arc. Puede usar la operación LIST para obtener todos los comandos Ejecutar en el 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

Paso 5: Eliminar un comando de ejecución

Cuando ya no necesite la extensión Ejecutar comando, puede eliminarla mediante la siguiente operación 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