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.
Remarque
Ce document fait référence au portail Microsoft Foundry (classique).
🔍 Consultez la documentation Microsoft Foundry (nouvelle) pour en savoir plus sur le nouveau portail.
Dans cet article, vous allez apprendre à créer les ressources Microsoft Foundry suivantes à l’aide du Kit de développement logiciel (SDK) Azure Machine Learning et d’Azure CLI (avec l’extension Machine Learning) :
- Un hub de fonderie
- Une connexion Foundry
Remarque
Un hub est utilisé uniquement pour un projet basé sur un hub. Un projet Foundry n’utilise pas de hub. Pour plus d'informations, voir Types de projets.
Conditions préalables
- Un compte Azure avec un abonnement actif. Si vous n’en avez pas, créez un compte Azure gratuit, qui inclut un abonnement d’essai gratuit.
- Rôles RBAC : vous devez disposer du rôle Contributeur ou Propriétaire sur votre abonnement Ou groupe de ressources Azure pour créer un hub. Si vous créez une connexion à des ressources existantes, vérifiez que vous disposez également d’un accès Contributeur à ces ressources.
- Pour le SDK Python : Kit de développement logiciel (SDK) Python Azure Machine Learning (v2.0 ou version ultérieure),sdk Python d’identité Azure et Python 3.8 ou version ultérieure.
- Pour Azure CLI : Extension Azure CLI et Azure Machine Learning.
- Si vous vous connectez à des ressources existantes : le compte stockage Azure ou Azure Key Vault doit déjà exister dans le même abonnement (même groupe de ressources ou dans un autre groupe de ressources auquel vous avez accès).
Configurer votre environnement
Utilisez les onglets suivants pour déterminer si vous utilisez le Kit de développement logiciel (SDK) Python ou Azure CLI :
Installez les packages. (Si dans une cellule de bloc-notes, utilisez
%pip installà la place.)pip install azure-ai-ml pip install azure-identityFournissez les informations de votre abonnement :
# Enter details of your subscription subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>"Obtenez un descripteur pour l’abonnement. Tout le code Python de cet article utilise
ml_client:# get a handle to the subscription from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group)(Facultatif) Si vous avez plusieurs comptes, ajoutez l’ID de locataire de l’instance Microsoft Entra ID que vous souhaitez utiliser dans le
DefaultAzureCredential. Recherchez votre ID de locataire dans le portail Azure sous Microsoft Entra ID, External Identities.DefaultAzureCredential(interactive_browser_tenant_id="<TENANT_ID>")(Facultatif) Si vous travaillez dans les régions Azure Government – États-Unis ou Azure China 21Vianet, spécifiez la région dans laquelle vous voulez vous authentifier. Vous pouvez spécifier la région avec
DefaultAzureCredential. L’exemple suivant s’authentifie auprès de la région Azure Government – États-Unis :from azure.identity import AzureAuthorityHosts DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT)Vérifiez la connexion.
for hub in ml_client.workspaces.list(): print(f" - {hub.name}")
Si vous recevez une erreur d’authentification, vérifiez que vos informations d’identification Azure sont configurées (exécutez ou configurez az login vos informations d’identification via le Kit de développement logiciel (SDK) Azure Identity). Si vous recevez une erreur d’autorisation, vérifiez que vous avez le rôle Contributeur sur l’abonnement ou le groupe de ressources.
Références : MLClient, DefaultAzureCredential
Créer le hub Foundry et la connexion Microsoft Foundry
Utilisez les exemples suivants pour créer un hub. Remplacez les valeurs de chaîne d'exemple par vos propres valeurs :
from azure.ai.ml.entities import Hub
my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"
# Construct a basic hub
my_hub = Hub(
name=my_hub_name,
location=my_location,
display_name=my_display_name
)
# Create the hub and wait for completion
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub: {created_hub.name}")
Ce code crée un nouveau hub avec le nom spécifié, l'emplacement, et le nom d'affichage. Azure provisionne automatiquement les ressources Azure Storage et Azure Key Vault associées.
Références : Hub, MLClient.workspaces.begin_create
Créer une connexion Foundry
Après avoir créé votre propre ressource Foundry ou ressource Azure OpenAI dans le même groupe de ressources, vous pouvez la connecter à votre hub. Vous pouvez également connecter Azure AI Search à partir de n’importe quel groupe de ressources dans votre même abonnement.
Incluez votre hub dans votre
ml_clientconnexion :Entrez les détails de votre abonnement. Pour
<AML_WORKSPACE_NAME>, entrez le nom de votre hub :# Enter details of your AML workspace subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" workspace = "<AML_WORKSPACE_NAME>"Obtenez un descripteur pour le hub :
# get a handle to the workspace from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient( DefaultAzureCredential(), subscription_id, resource_group, workspace )
Utilisez
ml_clientpour créer la connexion à vos outils Foundry. Vous pouvez trouver des points de terminaison dans le portail Azure sous Clés et points de terminaison de gestion des > ressources. Pour une ressource Foundry, utilisez le point de terminaison AI Services . Pour Azure AI Search, utilisez l’URL du point de terminaison.from azure.ai.ml.entities import AzureAIServicesConnection # Construct a connection to Azure AI Services my_connection_name = "my-ai-services-connection" # Any name you want aiservices_resource_name = "<your-resource-name>" # From Azure portal my_endpoint = "<your-endpoint>" # From Azure portal my_api_keys = None # Leave blank to use Azure Entra ID (AAD) authentication my_ai_services_resource_id = f"/subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{aiservices_resource_name}" my_connection = AzureAIServicesConnection( name=my_connection_name, endpoint=my_endpoint, api_key=my_api_keys, ai_services_resource_id=my_ai_services_resource_id ) # Create the connection ml_client.connections.create_or_update(my_connection) print(f"Created connection: {my_connection.name}")Références :
AzureAIServicesConnection, MLClient.connections
Créer un hub avec des ressources de dépendance existantes
Par défaut, un hub crée automatiquement des ressources Azure Storage et Azure Key Vault associées. Si vous souhaitez réutiliser des ressources Azure Storage ou Azure Key Vault existantes, vous pouvez les spécifier lors de la création du hub. Dans les exemples suivants, remplacez les valeurs des placeholders par vos propres identifiants de ressource :
Conseil / Astuce
Vous pouvez récupérer l’ID de ressource du compte de stockage et du coffre de clés à partir du Portail Microsoft Azure en accédant à la vue d’ensemble de la ressource et en sélectionnant la vue JSON. L’ID de la ressource se trouve dans le champ id. Vous pouvez également utiliser l’interface de ligne de commande Azure pour récupérer l’ID de ressource. Par exemple, utilisez az storage account show --name {my_storage_account_name} --query "id" et az keyvault show --name {my_key_vault_name} --query "id".
from azure.ai.ml.entities import Hub
my_hub_name = "myexamplehub"
my_location = "East US"
my_display_name = "My Example Hub"
my_resource_group = "myresourcegroupname"
my_storage_account_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account-name>"
my_key_vault_id = "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.KeyVault/vaults/<key-vault-name>"
# Construct a hub with existing dependency resources
my_hub = Hub(
name=my_hub_name,
location=my_location,
display_name=my_display_name,
resource_group=my_resource_group,
storage_account_id=my_storage_account_id,
key_vault_id=my_key_vault_id
)
# Create the hub
created_hub = ml_client.workspaces.begin_create(my_hub).result()
print(f"Created hub with existing resources: {created_hub.name}")
Pour rechercher des ID de ressource pour les ressources existantes, accédez au portail Azure, accédez à la page Vue d’ensemble de la ressource, puis sélectionnez l’affichage JSON. L’ID de ressource apparaît dans le champ ID . Vous pouvez également utiliser Azure CLI :
# Get Storage account resource ID
az storage account show --name <storage-account-name> --resource-group <resource-group> --query "id"
# Get Key Vault resource ID
az keyvault show --name <key-vault-name> --resource-group <resource-group> --query "id"
Références : Hub
Mettre à jour Azure Application Insights et Azure Container Registry
Pour utiliser des environnements personnalisés pour Prompt Flow, vous devez configurer un Registre de conteneurs Azure pour votre hub. Pour utiliser Azure Application Insights pour les déploiements de flux d’invite, vous devez configurer une ressource Azure Application Insights pour votre hub. La mise à jour des ressources Azure Container Registry ou Application Insights associées à l’espace de travail peut rompre la traçabilité des travaux précédents, des points de terminaison d’inférence déployés ou votre capacité à réexécuter des travaux antérieurs dans l’espace de travail. Après l’association avec un hub Foundry, les ressources Azure Container Registry et Application Insights ne peuvent pas être dissociées (définie sur Null).
Vous pouvez utiliser le portail Azure, les options Azure SDK/CLI ou des modèles d’infrastructure en tant que code pour mettre à jour à la fois Azure Application Insights et Azure Container Registry pour le hub.
from azure.ai.ml.entities import Hub
my_app_insights = "{APPLICATION_INSIGHTS_ARM_ID}"
my_container_registry = "{CONTAINER_REGISTRY_ARM_ID}"
# construct a hub with Application Insights and Container Registry
my_hub = Hub(name="myexamplehub",
location="East US",
application_insights=my_app_insights,
container_registry=my_container_registry)
# update_dependent_resources is used to give consent to update the workspace dependent resources.
updated_hub = ml_client.workspaces.begin_update(workspace=my_hub, update_dependent_resources=True).result()
print(f"Hub updated: {updated_hub.name}")
Ce script met à jour un hub existant avec les ressources Application Insights et Container Registry spécifiées. Le update_dependent_resources=True paramètre confirme la mise à jour.
Référence : Hub, MLClient.workspaces.begin_update()