Freigeben über


REST-API-Anforderungen für befehl "Ausführen" auf Azure Arc-fähigen Servern (Vorschau)

Mithilfe der REST-API für "Ausführen" auf Azure Arc-fähigen Servern (Vorschau) können Sie Skripts oder Befehle remote und sicher auf arcfähigen virtuellen Computern ausführen, ohne eine direkte Verbindung mit ihnen über das Remotedesktopprotokoll oder SSH herzustellen.

Dieser Artikel enthält unterstützte REST-API-Vorgänge und ein Beispielszenario, das Ihnen hilft, die Verwendung der REST-API zu verstehen.

Voraussetzungen

  • Die Version des Connected Machine Agents auf dem Arc-fähigen Server muss 1.33 oder höher sein.
  • Sie benötigen ein Zugriffstoken, um die REST-API zu verwenden. Weitere Informationen finden Sie unter "Erste Schritte mit REST".

Unterstützte REST-API-Vorgänge

Sie können die folgenden REST-API-Vorgänge verwenden, um Ausführungsbefehle auf einem Azure Arc-fähigen Server auszuführen.

Vorgang BESCHREIBUNG
Erstellen oder aktualisieren Der Vorgang zum Erstellen oder Aktualisieren eines Ausführen-Befehls. Führt die Skriptausführung aus.
Löschen Der Vorgang zum Löschen einer Skriptausführung. Wenn es ausgeführt wird, stoppt Löschen auch die Skriptausführung.
Get Der Vorgang zum Abrufen einer Skriptausführung.
Liste Der Vorgang zum Abrufen aller Ausführungsbefehle eines Azure Arc-fähigen Servers.
Aktualisieren Der Vorgang zum Aktualisieren des Befehls "Ausführen". Beendet die vorherige Skriptausführung.

Hinweis

Ausgabe- und Fehlerblobs werden bei jeder Ausführung des Skriptausführungsskripts überschrieben.

Beispielszenario für REST-API

Die folgenden Anforderungen führen Sie durch die Verwendung des Befehls „Ausführen“, um remote eine Firewall-Regel zu konfigurieren, die den Zugriff auf den Endpunkt www.microsoft.com/pkiops/certs ermöglicht. Im Beispielszenario werden alle verfügbaren REST-Vorgänge verwendet.

In den Codebeispielen werden die folgenden Informationen verwendet:

  • Abonnement-ID - aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
  • Arc-aktivierter Servername - 2012DatacenterServer1
  • Ressourcengruppe - ContosoRG
  • Betriebssystem des Servers – Windows Server 2012 / R2-Server

Schritt 1: Endpunktzugriff mit einem Run-Befehl erstellen

Erstellen Sie zunächst ein Ausführen-Befehlsskript, um den Zugriff auf den www.microsoft.com/pkiops/certs Endpunkt auf Ihrem Arc-fähigen Zielserver mithilfe des PUT-Vorgangs bereitzustellen.

Sie können entweder das Skript inline bereitstellen oder eine Verknüpfung mit der Skriptdatei herstellen.

  • So stellen Sie das Skript inline bereit:

    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"
      }
    }
    
  • So verknüpfen Sie die Skriptdatei:

    Hinweis

    In diesem Beispiel wird davon ausgegangen, dass Sie eine Datei mit dem Namen newnetfirewallrule.ps1erstellt haben, die das Inlineskript enthält und das Skript in blob storage hochgeladen hat.

    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"
      }
    }
    
    • Dies scriptUri ist ein SAS-URI (Shared Access Signature) für das Speicher-Blob und muss Lesezugriff auf das Blob bereitstellen. Für den SAS-URI wird eine Ablaufzeit von 24 Stunden vorgeschlagen. Sie können einen SAS-URI im Azure-Portal mit Blobs-Optionen generieren oder einen SAS-Token mithilfe von New-AzStorageBlobSASToken. Wenn SAS-Token mithilfe von New-AzStorageBlobSASToken generiert wird, lautet das SAS-URI-Format: base blob URL + "?" + das SAS-Token von New-AzStorageBlobSASToken.

    • Ausgabe- und Fehler-Blobs müssen der AppendBlob-Typ sein, und ihre SAS-URIs müssen Lese-, Anfüge-, Erstellungs- und Schreibzugriff auf das Blob bereitstellen. Für SAS-URI wird eine Ablaufzeit von 24 Stunden vorgeschlagen. Sie können SAS-URIs im Azure-Portal mithilfe von Blob-Optionen oder des SAS-Tokens von New-AzStorageBlobSASToken generieren.

    Weitere Informationen zu freigegebenen Zugriffssignaturen finden Sie unter "Gewähren des eingeschränkten Zugriffs auf Azure Storage-Ressourcen mithilfe von freigegebenen Zugriffssignaturen (SAS)".

Schritt 2: Überprüfen der Ausführungsbefehlsdetails

Stellen Sie sicher, dass Sie den Befehl "Ausführen" ordnungsgemäß mithilfe des GET-Vorgangs bereitgestellt haben.

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

Schritt 3: Aktualisieren des Befehls "Ausführen"

Sie können den vorhandenen Befehl "Ausführen" mit neuen Parametern mithilfe des PATCH-Vorgangs aktualisieren. Im folgenden Beispiel wird der Zugriff auf einen anderen Endpunkt *.waconazure.com, für die Konnektivität mit Windows Admin Center geöffnet.

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"
  }
}

Schritt 4: Ausführungsbefehle auflisten

Bevor Sie den Befehl "Ausführen" für den Endpunktzugriff löschen, stellen Sie sicher, dass keine anderen Ausführungsbefehle für den Arc-fähigen Server vorhanden sind. Sie können den LIST-Vorgang verwenden, um alle Skriptausführungen auf dem Arc-fähigen Server abzurufen:

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

Schritt 5: Löschen eines Ausführungsbefehls

Wenn Sie die Befehlserweiterung "Ausführen" nicht mehr benötigen, können Sie sie mithilfe des folgenden DELETE-Vorgangs löschen:

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