Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.ps1
erstellt 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 vonNew-AzStorageBlobSASToken
. Wenn SAS-Token mithilfe vonNew-AzStorageBlobSASToken
generiert wird, lautet das SAS-URI-Format:base blob URL + "?"
+ das SAS-Token vonNew-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