AI-platform: bouwen op het platform¶
Deze pagina is voor workload teams die een Foundry project hebben en een applicatie willen deployen die het gebruikt. De voorbeelden komen uit de README's van de modules en zijn referentie: namen, paden en modulebronnen hangen af van je deploymentcode.
Wat je nodig hebt van het platformteam¶
| Onderdeel | Waarom |
|---|---|
| Naam van je project | De lookup-modules vinden het project en zijn identity met deze naam. |
| Project endpoint | De URL die je applicatie aanroept. De lookup-module bouwt die op als https://<account>.services.ai.azure.com/api/projects/<project>. |
| Lidmaatschap van de projectgroepen | Om in het project te werken, zie Toegang en RBAC. |
| Modellen die in het account beschikbaar zijn | Modellen worden op platformniveau gedeployd, niet in je project. |
Het platform en het project vinden¶
Twee modules met alleen data geven je code de ID's en endpoints, zodat er niets hardcoded is:
module "platform_data" {
source = "<path to modules>/platform_data"
}
module "project_data" {
source = "<path to modules>/project_data"
project_name = "<project>"
}
| Module | Gebruik hem voor |
|---|---|
platform_data |
Resource group, Foundry account en endpoints, container registry, Container Apps environment, Cosmos DB, AI Search, storage, Key Vault, Log Analytics, spoke VNet en subnets |
project_data |
Project-ID, naam en endpoint, en de project identity (client-ID, principal-ID) |
De volledige lijst met outputs staat bij Platformmodules.
Je applicatie een identity geven¶
Maak met de module workload_identity een user-assigned managed identity voor de applicatie aan, en wijs er alleen de rollen aan toe
die nodig zijn:
module "workload_identity" {
source = "<path to modules>/workload_identity"
name = "id-<workload>"
location = "<region>"
resource_group_name = "<resource group>"
role_assignments = [
{
scope = module.platform_data.ai_search_id
role_definition_name = "Search Index Data Contributor"
}
]
tags = {
Environment = "<environment>"
Workload = "<workload>"
}
}
De applicatie draaien¶
Het referentieontwerp draait applicaties in de gedeelde Container Apps environment en haalt images op uit de gedeelde registry. De README's van de modules laten zien dat de container app het project endpoint en de client-ID van de identity als omgevingsvariabelen krijgt:
| Omgevingsvariabele | Waarde |
|---|---|
AZURE_AI_PROJECT_ENDPOINT |
module.project_data.project_endpoint |
AZURE_CLIENT_ID |
module.workload_identity.client_id |
AZURE_OPENAI_ENDPOINT |
module.platform_data.openai_endpoint |
AZURE_AI_SEARCH_ENDPOINT |
module.platform_data.ai_search_endpoint |
De container app gebruikt de user-assigned identity van de workload (identity_ids = [module.workload_identity.id]) om zich aan te
melden bij het Foundry project. De namen van de variabelen zijn die uit de README-voorbeelden. Gebruik de namen die je SDK of
framework verwacht.
Praktische opmerkingen¶
- De workloadnaam wordt in resourcenamen gebruikt, dus houd hem kort (maximaal 8 tekens volgens de conventies in de bron).
- Een workload kan meer dan één project gebruiken: roep
project_dataéén keer per project aan. - Het Foundry account heeft geen sleutelauthenticatie. Vraagt een clientbibliotheek om een sleutel, gebruik dan in plaats daarvan de aanmelding met een identity.
- Netwerktoegang is privé. Je applicatie moet draaien in een netwerk dat de private endpoints kan bereiken, en de private DNS-zones uit Architectuur moeten kunnen worden opgelost.