Ga naar inhoud

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.