KI-Plattform: Auf der Plattform bauen¶
Diese Seite richtet sich an Workload-Teams, die ein Foundry project haben und eine Anwendung deployen wollen, die es nutzt. Die Beispiele stammen aus den Modul-READMEs und sind Referenz: Namen, Pfade und Modulquellen hängen von deinem Deployment-Code ab.
Was du vom Plattform-Team brauchst¶
| Punkt | Warum |
|---|---|
| Name deines Projects | Die Lookup-Module finden das Project und seine Identity über diesen Namen. |
| Project-Endpoint | Die URL, die deine Anwendung aufruft. Das Lookup-Modul baut sie als https://<account>.services.ai.azure.com/api/projects/<project>. |
| Mitgliedschaft in den Project-Gruppen | Um im Project zu arbeiten, siehe Zugriff und RBAC. |
| Im Account verfügbare Modelle | Modelle werden auf Plattformebene deployt, nicht in deinem Project. |
Die Plattform und das Project finden¶
Zwei Data-only-Module liefern deinem Code die IDs und Endpoints, damit nichts fest einprogrammiert ist:
module "platform_data" {
source = "<path to modules>/platform_data"
}
module "project_data" {
source = "<path to modules>/project_data"
project_name = "<project>"
}
| Modul | Verwende es für |
|---|---|
platform_data |
Resource group, Foundry account und Endpoints, Container Registry, Container Apps environment, Cosmos DB, AI Search, Storage, Key Vault, Log Analytics, spoke-VNet und Subnetze |
project_data |
Project-ID, Name und Endpoint sowie die Project Identity (Client-ID, Principal-ID) |
Die vollständige Liste der Outputs steht unter Plattform-Module.
Deiner Anwendung eine Identity geben¶
Erstelle mit dem Modul workload_identity eine User-assigned Managed Identity für die Anwendung und weise ihr nur die
Rollen zu, die sie braucht:
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>"
}
}
Die Anwendung ausführen¶
Das Referenzdesign führt Anwendungen im gemeinsamen Container Apps environment aus und zieht Images aus der gemeinsamen Registry. Die Modul-READMEs zeigen die Container App, die den Project-Endpoint und die Client-ID der Identity als Umgebungsvariablen erhält:
| Umgebungsvariable | Wert |
|---|---|
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 |
Die Container App verwendet die User-assigned Identity des Workloads (identity_ids = [module.workload_identity.id]), um sich am Foundry project
anzumelden. Die Variablennamen sind die aus den README-Beispielen. Verwende die Namen, die dein SDK oder Framework
erwartet.
Praktische Hinweise¶
- Der Workload-Name wird in Ressourcennamen verwendet, halte ihn also kurz (maximal 8 Zeichen nach den Konventionen der Quelle).
- Ein Workload kann mehr als ein Project nutzen: Rufe
project_dataeinmal pro Project auf. - Der Foundry account hat keine Key-Authentifizierung. Wenn eine Client-Bibliothek nach einem Key fragt, verwende stattdessen die identitätsbasierte Anmeldung.
- Der Netzwerkzugriff ist privat. Deine Anwendung muss in einem Netzwerk laufen, das die Private Endpoints erreichen kann, und die privaten DNS zones aus der Architektur müssen auflösen.