Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À l’aide de la commande REST API for Run sur des serveurs avec Azure Arc (préversion), vous pouvez exécuter à distance et en toute sécurité des scripts ou des commandes sur des machines virtuelles avec Arc sans se connecter directement à eux via le protocole Bureau à distance ou SSH.
Cet article fournit des opérations d’API REST prises en charge et un exemple de scénario pour vous aider à comprendre comment utiliser l’API REST.
Conditions préalables
- La version de l’agent Connected Machine sur le serveur avec Arc doit être 1.33 ou ultérieure.
- Vous avez besoin d’un jeton d’accès pour utiliser l’API REST. Consultez Prise en main de REST.
Opérations d’API REST prises en charge
Vous pouvez utiliser les opérations d’API REST suivantes pour exécuter des commandes d’exécution sur un serveur avec Azure Arc.
| Opération | Descriptif |
|---|---|
| Créer ou mettre à jour | Opération de création ou de mise à jour d’une commande Run. Exécute la commande Run. |
| Supprimer | Opération de suppression de la commande Exécuter. Si un programme est en cours d'exécution, la suppression arrête également la commande Exécuter. |
| Obtenir | Opération d’obtention d’une commande Run. |
| Liste | Opération permettant d’obtenir toutes les commandes d’exécution d’un serveur avec Azure Arc. |
| Mettre à jour | Opération de mise à jour de la commande Exécuter. Arrête la commande Run précédente. |
Remarque
Les blobs d’erreur et de sortie sont écrasés lors de chaque exécution du script de la commande Run.
Exemple de scénario d’API REST
Les demandes suivantes vous guident à l’aide de la commande Exécuter pour configurer à distance une règle de pare-feu qui autorise l’accès au point de terminaison www.microsoft.com/pkiops/certs. L’exemple de scénario utilise chacune des opérations REST disponibles.
Les exemples de code utilisent les informations suivantes :
- ID d’abonnement -
aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e - Nom du serveur avec Arc -
2012DatacenterServer1 - Groupe de ressources -
ContosoRG - Système d’exploitation du serveur - Serveurs Windows Server 2012 / R2
Étape 1 : Créer un accès de point de terminaison avec une commande d’exécution
Tout d’abord, créez un script de commande Run pour fournir un accès au point de terminaison www.microsoft.com/pkiops/certs sur votre serveur Arc cible à l’aide de l’opération PUT.
Vous pouvez fournir le script inline ou vous pouvez créer un lien vers le fichier de script.
Pour fournir le script en ligne :
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" } }Pour créer un lien vers le fichier de script :
Remarque
Cet exemple suppose que vous avez préparé un fichier nommé
newnetfirewallrule.ps1, contenant le script intégré et que vous avez chargé le script dans le stockage blob.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" } }scriptUriest un URI de signature d’accès partagé (SAP) pour l’objet blob de stockage, et il doit fournir un accès en lecture à l’objet blob. Une heure d’expiration de 24 heures est suggérée pour l’URI SAP. Vous pouvez générer un URI SAS sur le portail Azure à l’aide des options d’objets blob ou d’un jeton SAS utilisantNew-AzStorageBlobSASToken. Si vous générez un jeton SAS à l’aide deNew-AzStorageBlobSASToken, le format d’URI SAS est :base blob URL + "?"+ le jeton SAS à partir deNew-AzStorageBlobSASToken.Les blobs de sortie et d'erreur doivent être de type AppendBlob et leurs URI SAS doivent fournir des accès en lecture, en ajout, en création et en écriture à l'objet blob. Une heure d’expiration de 24 heures est suggérée pour l’URI SAP. Vous pouvez générer des URI SAS sur le portail Azure à l'aide des options de l'objet blob ou d'un jeton SAS en utilisant
New-AzStorageBlobSASToken.
Pour en savoir plus sur les signatures d’accès partagé, consultez Accorder un accès limité aux ressources stockage Azure à l’aide de signatures d’accès partagé (SAP).
Étape 2 : Vérifier les détails de la commande d'exécution
Vérifiez que vous avez correctement provisionné la commande Exécuter à l’aide de l’opération 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
Étape 3 : Mettre à jour la commande Exécuter
Vous pouvez mettre à jour la commande Run existante avec de nouveaux paramètres à l’aide de l’opération PATCH. L’exemple suivant ouvre l’accès à un autre point de terminaison, *.waconazure.com, pour la connectivité à 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"
}
}
Étape 4 : Répertorier les commandes d’exécution
Avant de supprimer la commande Exécuter pour l’accès au point de terminaison, vérifiez qu’il n’existe aucune autre commande d’exécution pour le serveur avec Arc. Vous pouvez utiliser l’opération LIST pour obtenir toutes les commandes d’exécution sur le serveur avec 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
Étape 5 : Supprimer une commande d’exécution
Lorsque vous n’avez plus besoin de l’extension de commande Exécuter, vous pouvez la supprimer à l’aide de l’opération DELETE suivante :
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