Gérer votre service de recherche Azure AI avec Azure CLI
Vous pouvez exécuter des scripts et des commandes Azure CLI sur Windows, macOS, Linux ou dans Azure Cloud Shell pour créer et configurer la recherche Azure AI.
Utilisez le module az search pour effectuer les tâches suivantes :
- Lister les services de recherche dans un abonnement
- Retourner les informations sur les services
- Créer ou supprimer un service
- Créer un service avec un point de terminaison privé
- Régénérer des clés API d’administration
- Créer ou supprimer des clés API de requête
- Effectuer un scale-up ou un scale-down avec les réplicas et les partitions
- Créer une ressource de liaison privée partagée
Parfois, des questions sont posées sur des tâches qui ne figurent pas dans la liste ci-dessus.
Vous ne pouvez pas modifier un nom de serveur, une région ou un niveau par programmation ou dans le portail. Des ressources dédiées sont allouées lorsqu’un service est créé. Ainsi, toute modification du matériel sous-jacent (emplacement ou type de nœud) nécessite un nouveau service.
Vous ne pouvez pas utiliser d’outils ou d’API pour transférer du contenu, tel qu’un index, d’un service à un autre. Au sein d’un service, la création par programme du contenu s’effectue par le biais de l’API REST du service de recherche ou un Kit de développement logiciel (SDK) tel que le SDK Azure pour .NET. Bien qu’il n’existe aucune commande dédiée pour la migration de contenu, vous pouvez écrire un script qui appelle l’API REST ou une bibliothèque cliente pour créer et charger des index sur un nouveau service.
Les fonctionnalités d’administration en préversion ne sont généralement pas disponibles dans le module az search. Si vous souhaitez utiliser une fonctionnalité en préversion, utilisez l’API REST de gestion et une version préliminaire de l’API.
Prérequis
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Les versions d’Azure CLI sont répertoriées sur GitHub.
Le module az search étend le Azure CLI avec une parité complète aux versions stables des API REST Search Management.
Répertorier les services dans un abonnement
Les commandes suivantes proviennent d’az resources et renvoient des informations sur les ressources et services existants déjà approvisionnés dans votre abonnement. Si vous ne savez pas combien de services de recherche sont déjà créés, ces commandes vous en informent et vous évitent d'accéder au portail.
La première commande renvoie tous les services de recherche.
az resource list --resource-type Microsoft.Search/searchServices --output table
Dans la liste des services, elle permet d'obtenir des informations sur une ressource spécifique.
az resource list --name <search-service-name>
Répertorier toutes les commandes az search
Vous pouvez afficher des informations sur les sous-groupes et les commandes disponibles dans az search à partir de l’interface CLI. Vous pouvez également consulter la documentation.
Pour afficher les sous-groupes disponibles dans az search
, exécutez la commande suivante.
az search --help
La réponse doit être semblable à ma sortie suivante.
Group
az search : Manage Azure Search services, admin keys and query keys.
WARNING: This command group is in preview and under development. Reference and support
levels: https://aka.ms/CLI_refstatus
Subgroups:
admin-key : Manage Azure Search admin keys.
private-endpoint-connection : Manage Azure Search private endpoint connections.
private-link-resource : Manage Azure Search private link resources.
query-key : Manage Azure Search query keys.
service : Manage Azure Search services.
shared-private-link-resource : Manage Azure Search shared private link resources.
For more specific examples, use: az find "az search"
Dans chaque sous-groupe, plusieurs commandes sont disponibles. Vous pouvez voir les commandes disponibles pour le sous-groupes service
en exécutant la ligne suivante.
az search service --help
Vous pouvez également voir les arguments disponibles pour une commande particulière.
az search service create --help
Obtenir des informations sur le service de recherche
Si vous connaissez le groupe de ressources qui contient votre service de recherche, exécuter az search service show pour renvoyer la définition du service, avec le nom, la région, le niveau ainsi que le nombre de partitions et de réplicas. Pour cette commande, indiquez le groupe de ressources qui contient le service de recherche.
az search service show --name <service-name> --resource-group <search-service-resource-group-name>
Créer ou supprimer un service
Pour créer un service de recherche, utilisez la commande az search service create.
az search service create \
--name <service-name> \
--resource-group <search-service-resource-group-name> \
--sku Standard \
--partition-count 1 \
--replica-count 1
Les résultats se présentent comme suit :
{
"hostingMode": "default",
"id": "/subscriptions/<alphanumeric-subscription-ID>/resourceGroups/demo-westus/providers/Microsoft.Search/searchServices/my-demo-searchapp",
"identity": null,
"location": "West US",
"name": "my-demo-searchapp",
"networkRuleSet": {
"bypass": "None",
"ipRules": []
},
"partitionCount": 1,
"privateEndpointConnections": [],
"provisioningState": "succeeded",
"publicNetworkAccess": "Enabled",
"replicaCount": 1,
"resourceGroup": "demo-westus",
"sharedPrivateLinkResources": [],
"sku": {
"name": "standard"
},
"status": "running",
"statusDetails": "",
"tags": null,
"type": "Microsoft.Search/searchServices"
}
supprimer le service de recherche azure supprime le service et ses données.
az search service delete --name <service-name> \
--resource-group <search-service-resource-group-name> \
Créer un service avec des règles IP
Selon vos exigences de sécurité, vous pouvez créer un service de recherche avec un pare-feu IP configuré. Pour ce faire, transmettez les adresses IP publiques (v4) ou les plages CIDR à l’argument ip-rules
comme indiqué ci-dessous. Les règles doivent être séparées par une virgule (,
) ou un point-virgule (;
).
az search service create \
--name <search-service-name> \
--resource-group <search-service-resource-group-name> \
--sku Standard \
--partition-count 1 \
--replica-count 1 \
--ip-rules "55.5.63.73;52.228.215.197;101.37.221.205"
Créer un service avec une identité managée affectée par le système
Dans certains cas, par exemple, lorsque à l’aide d’une identité managée pour vous connecter à une source de données, vous devez activer identité managée affectée par le système. Pour ce faire, ajoutez --identity-type SystemAssigned
à la commande.
az search service create \
--name <search-service-name> \
--resource-group <search-service-resource-group-name> \
--sku Standard \
--partition-count 1 \
--replica-count 1 \
--identity-type SystemAssigned
Créer un service avec un point de terminaison privé
Les points de terminaison privés pour la recherche Azure AI permettent à un client sur un réseau virtuel d’accéder en toute sécurité aux données d’un index de recherche grâce à une liaison privée. Ils utilisent une adresse IP de l’espace d’adressage du réseau virtuel pour votre service Search. Le trafic entre le client et le service Search traverse le réseau virtuel et une liaison privée sur le réseau principal de Microsoft, ce qui élimine l’exposition sur l’Internet public. Pour plus d’informations, reportez-vous à la documentation sur la création d’un point de terminaison privé pour azure AI Search.
L’exemple suivant montre comment créer un service de recherche avec un point de terminaison privé.
Tout d’abord, déployez un service de recherche avec PublicNetworkAccess
défini sur Disabled
.
az search service create \
--name <search-service-name> \
--resource-group <search-service-resource-group-name> \
--sku Standard \
--partition-count 1 \
--replica-count 1 \
--public-access Disabled
Ensuite, créez un réseau virtuel et le point de terminaison privé.
# Create the virtual network
az network vnet create \
--resource-group <vnet-resource-group-name> \
--location "West US" \
--name <virtual-network-name> \
--address-prefixes 10.1.0.0/16 \
--subnet-name <subnet-name> \
--subnet-prefixes 10.1.0.0/24
# Update the subnet to disable private endpoint network policies
az network vnet subnet update \
--name <subnet-name> \
--resource-group <vnet-resource-group-name> \
--vnet-name <virtual-network-name> \
--disable-private-endpoint-network-policies true
# Get the id of the search service
id=$(az search service show \
--resource-group <search-service-resource-group-name> \
--name <search-service-name> \
--query [id] \
--output tsv)
# Create the private endpoint
az network private-endpoint create \
--name <private-endpoint-name> \
--resource-group <private-endpoint-resource-group-name> \
--vnet-name <virtual-network-name> \
--subnet <subnet-name> \
--private-connection-resource-id $id \
--group-id searchService \
--connection-name <private-link-connection-name>
Enfin, créez une zone DNS privée.
## Create private DNS zone
az network private-dns zone create \
--resource-group <private-dns-resource-group-name> \
--name "privatelink.search.windows.net"
## Create DNS network link
az network private-dns link vnet create \
--resource-group <private-dns-resource-group-name> \
--zone-name "privatelink.search.windows.net" \
--name "myLink" \
--virtual-network <virtual-network-name> \
--registration-enabled false
## Create DNS zone group
az network private-endpoint dns-zone-group create \
--resource-group <private-endpoint-resource-group-name>\
--endpoint-name <private-endpoint-name> \
--name "myZoneGroup" \
--private-dns-zone "privatelink.search.windows.net" \
--zone-name "searchServiceZone"
Pour plus d’informations sur la création de points de terminaison privés dans Azure CLI, consultez ce guide de démarrage rapide liaison privée.
Gérer les connexions de point de terminaison privé
Vous pouvez créer une connexion de point de terminaison privé, mais également récupérer (show
), définir (update
) et supprimer (delete
) cette connexion.
Pour récupérer une connexion de point de terminaison privé et afficher son état, utilisez la commande az search private-endpoint-connection show.
az search private-endpoint-connection show \
--name <pe-connection-name> \
--service-name <search-service-name> \
--resource-group <search-service-resource-group-name>
Pour mettre à jour la connexion, utilisez la commande az search private-endpoint-connection update. L’exemple suivant montre comment rejeter une connexion de point de terminaison privé :
az search private-endpoint-connection update \
--name <pe-connection-name> \
--service-name <search-service-name> \
--resource-group <search-service-resource-group-name>
--status Rejected \
--description "Rejected" \
--actions-required "Please fix XYZ"
Pour supprimer la connexion au point de terminaison privé, utilisez la commande az search private-endpoint-connection delet.
az search private-endpoint-connection delete \
--name <pe-connection-name> \
--service-name <search-service-name> \
--resource-group <search-service-resource-group-name>
Régénération des clés d’administration
Pour remplacer les clés de l’API Administrateur, utilisez la commande az search admin-key renew. Deux clés d'administration sont créées avec chaque service à des fins d'accès authentifié. Ces clés sont nécessaires pour chaque requête. Les deux clés d’administration fonctionnement de la même manière, et accorde au service de recherche un accès total en écriture, avec possibilité de récupérer des informations ou de créer et de supprimer des objets. Deux clés sont disponibles pour vous permettre d'en utiliser une lorsque vous remplacez l'autre.
Vous ne pouvez régénérer qu'une clé à la fois, spécifiée en tant que clé primary
ou secondary
. Pour ne pas interrompre le service, pensez à mettre à jour la totalité du code client de manière à utiliser une clé secondaire lors de la substitution de la clé primaire. Évitez tout changement de clés lorsque des opérations sont en cours.
En effet, si vous régénérez les clés sans mettre à jour le code client, les requêtes utilisant l'ancienne clé n'aboutiront pas. La régénération de toutes les nouvelles clés ne vous verrouille pas définitivement hors de votre service, et vous pouvez toujours accéder au service via le portail. Une fois les clés primaire et secondaire régénérées, vous pouvez mettre à jour le code client pour utiliser les nouvelles clés, après quoi les opérations reprennent.
Les valeurs correspondant aux clés API sont générées par le service. Vous ne pouvez pas fournir de clé personnalisée pour Azure AI Search à utiliser. De même, il n’existe aucun nom défini par l’utilisateur pour les clés API d’administration. Les références à la clé correspondent à des chaînes fixes, primary
ou secondary
.
az search admin-key renew \
--resource-group <search-service-resource-group-name> \
--service-name <search-service-name> \
--key-kind primary
Les résultats se présentent comme suit. Les deux clés sont renvoyées, même si vous n'en modifiez qu'une.
{
"primaryKey": <alphanumeric-guid>,
"secondaryKey": <alphanumeric-guid>
}
Créer ou supprimer des clés de requête
Pour créer des clés API de requête à des fins d’accès en lecture seule à partir d’applications clientes vers un index de recherche Azure AI, utilisez la commande créer une clé de requête de recherche azure. Les clés de requête sont utilisées pour s’authentifier auprès d’un index spécifique pour récupérer les résultats de la recherche. Les clés de requête n’accordent pas d’accès en lecture seule à d’autres éléments du service, tels qu’un index, une source de données ou un indexeur.
Vous ne pouvez pas fournir de clé pour Azure AI Search à utiliser. Les clés API sont générées par le service.
az search query-key create \
--name myQueryKey \
--resource-group <search-service-resource-group-name> \
--service-name <search-service-name>
Mettre à l'échelle des réplicas et des partitions
Pour augmenter ou diminuer les réplicas et les partitions, utilisez la commande az search service update. Augmenter les réplicas ou les partitions se répercute sur votre facture, qui présente des frais fixes et variables. Si vous avez besoin d’une puissance de traitement supplémentaire, vous pouvez augmenter les réplicas et les partitions pour gérer la charge de travail. La zone de surveillance de la page Vue d’ensemble du portail présente des vignettes sur la latence de requête, les requêtes par seconde et les limitations, indiquant si la capacité actuelle est suffisante.
L'ajout ou la suppression de ressources peut prendre un certain temps. Des ajustements de la capacité interviennent en arrière-plan, ce qui permet la poursuite des charges de travail existantes. Une capacité supplémentaire est utilisée pour les requêtes entrantes dès qu’elle est prête, sans configuration supplémentaire requise.
La suppression de la capacité peut entraîner des perturbations. Il est recommandé d'arrêter tous les travaux d'indexation avant de réduire la capacité pour éviter la suppression de requêtes. Si ce n’est pas possible, essayez de réduire la capacité de façon incrémentielle, un seul réplica et une seule partition à la fois, jusqu'à ce que vos nouveaux niveaux cibles soient atteints.
Une fois que vous avez envoyé la commande, il n’existe aucun moyen de l’arrêter à mi-chemin. Vous devez attendre la fin de la commande avant de réviser les nombres.
az search service update \
--name <search-service-name> \
--resource-group <search-service-resource-group-name> \
--partition-count 6 \
--replica-count 6
Outre la mise à jour des nombres de réplicas et de partitions, vous pouvez également mettre à jour ip-rules
, public-access
et identity-type
.
Créer une ressource de liaison privée partagée
Les points de terminaison privés des ressources sécurisées créées par les API de recherche Azure AI sont appelés ressources de liaison privée partagées. Cela est dû au fait que vous partagez l’accès à une ressource, tel qu’un compte de stockage intégré au service Azure Private Link.
Si vous utilisez un indexeur pour indexer des données dans la recherche Azure AI et que votre source de données se trouve sur un réseau privé, vous pouvez créer une connexion de point de terminaison privé sortante pour atteindre les données.
Si vous souhaitez obtenir la liste complète des ressources Azure pour lesquelles il est possible de créer des points de terminaison privés sortants à partir de la recherche Azure AI, ainsi que les valeurs d’ID de groupe associées, cliquez ici.
Pour créer la ressource de liaison privée partagée, utilisez la commande az search shared-private-link-resource create. N’oubliez pas que certaines configurations peuvent être requises pour la source de données avant d’exécuter cette commande.
az search shared-private-link-resource create \
--name <spl-name> \
--service-name <search-service-name> \
--resource-group <search-service-resource-group-name> \
--group-id blob \
--resource-id "/subscriptions/<alphanumeric-subscription-ID>/resourceGroups/<resource-group-name>/providers/Microsoft.Storage/storageAccounts/myBlobStorage" \
--request-message "Please approve"
Pour récupérer les ressources de liaison privée partagée et afficher leur état, utilisez la commande az search shared-private-link-resource list.
az search shared-private-link-resource list \
--service-name <search-service-name> \
--resource-group <search-service-resource-group-name>
Vous devez approuver la connexion avec la commande suivante pour pouvoir être utilisée. L’ID de la connexion de point de terminaison privé doit être récupéré à partir de la ressource enfant. Dans ce cas, nous obtenons l’ID de connexion à partir de la commande az storage.
id = (az storage account show -n myBlobStorage --query "privateEndpointConnections[0].id")
az network private-endpoint-connection approve --id $id
Pour supprimer la ressource de liaison privée partagée, utilisez la commande az search shared-private-link-resource delete.
az search shared-private-link-resource delete \
--name <spl-name> \
--service-name <search-service-name> \
--resource-group <search-service-resource-group-name>
Pour plus d’informations sur la configuration des ressources de liaison privée partagée, consultez établir des connexions d’indexeur via un point de terminaison privé.
Étapes suivantes
Génération d'un index, interrogation d'un index à l’aide du portail, des API REST ou du kit de développement logiciel (SDK) .NET.