Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Dopo aver creato un nuovo modello dell'interfaccia della riga di comando per sviluppatori (azd) di Azure sviluppatore o iniziare da un modello esistente, è possibile estendere ed evolvere l'applicazione e l'infrastruttura man mano che cambiano i requisiti. Questa esercitazione illustra come aggiungere un nuovo servizio Azure a un modello senza basarsi su un modulo già fornito dal modello.
Inizierai con il hello-azd modello, creerai un modulo Bicep che definisce una risorsa Traduttore di Azure, farai riferimento al modulo dal punto di ingresso dell'infrastruttura del modello e ne esporrai gli output come azd valori di ambiente. Il tutorial si concentra sull'estensione dell'infrastruttura e non modifica il codice dell'applicazione.
Note
È possibile apportare le modifiche seguenti direttamente o con assistenza da un assistente per la codifica di intelligenza artificiale. Indipendentemente dal metodo di creazione, esaminare i file risultanti e convalidare il modello prima della distribuzione.
Prerequisiti
Per completare questa esercitazione è necessario:
- Interfaccia della riga di comando per sviluppatori di Azure installata.
- Una sottoscrizione di Azure.
- Autorizzazione per creare risorse di Azure nella sottoscrizione.
- Una directory vuota del template inizializzato.
Inizializzare il modello
Aprire un terminale in una directory vuota e quindi inizializzare il hello-azd modello in tale directory:
azd init --template hello-azd .
Il modello include:
- Un'applicazione C# distribuita su App contenitore di Azure come il servizio
acainazure.yaml. - Identità gestita assegnata dall'utente per l'applicazione.
- Un account Archiviazione di Azure con un contenitore BLOB e una tabella.
- Registro Azure Container e un ambiente App contenitore di Azure.
- Moduli Bicep riutilizzabili sotto
infra/core.
Per indicazioni su come selezionare ed esaminare un modello prima dell'inizializzazione, vedere Iniziare da un modello esistente.
Crea un modulo Traduttore
Creare un file denominato infra/translator.bicep, manualmente o con l'aiuto di un assistente per la codifica di intelligenza artificiale. Questo nuovo modulo è autonomo e non dipende dai moduli del modello iniziale:
@description('Name of the Azure Translator resource.')
param name string
@description('Azure region for the resource.')
param location string
@description('Tags to apply to the resource.')
param tags object = {}
@description('Pricing tier for Azure Translator.')
@allowed([
'F0'
'S1'
])
param sku string = 'F0'
resource translator 'Microsoft.CognitiveServices/accounts@2023-05-01' = {
name: name
location: location
kind: 'TextTranslation'
sku: {
name: sku
}
properties: {
customSubDomainName: name
disableLocalAuth: true
publicNetworkAccess: 'Enabled'
}
tags: tags
}
output name string = translator.name
output endpoint string = translator.properties.endpoint
Il modulo usa il TextTranslation tipo di risorsa e disabilita l'autenticazione della chiave locale. Il F0 livello è utile per la valutazione, ma consente una sola risorsa Translator gratuita per sottoscrizione. Usare S1 se la sottoscrizione contiene già una F0 risorsa o se il progetto richiede un livello a pagamento.
Importante
Questo esempio introduttivo abilita l'endpoint pubblico in modo da poter effettuare il provisioning della risorsa senza aggiungere l'infrastruttura di rete. Prima di usare questo modello nell'ambiente di produzione, valutare gli endpoint privati, i controlli di accesso alla rete, il monitoraggio e i requisiti di sicurezza dell'organizzazione.
Fare riferimento al modulo da main.bicep
Il hello-azd modello definisce i valori del rg gruppo di risorse, location, tagse resourceToken in infra/main.bicep. È possibile apportare questa modifica a mano o richiedere a un assistente di intelligenza artificiale di aggiungerlo. Aggiungere il modulo seguente dopo la dichiarazione di rg risorsa:
module translator './translator.bicep' = {
name: 'translator'
scope: rg
params: {
name: 'translator-${resourceToken}'
location: location
tags: tags
}
}
La scope proprietà distribuisce il modulo nel gruppo di risorse creato dal modello. Il valore esistente resourceToken rende il nome della risorsa Translator distinto per ogni ambiente.
Esportare gli output di Translator
Aggiungere gli output seguenti alla fine di infra/main.bicep:
output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint
Dopo il provisioning, azd memorizza questi valori di output non riservati nell'ambiente attivo. Una modifica successiva del codice dell'applicazione può usare questi valori per individuare la risorsa Translator.
Predisporre e verificare l'infrastruttura
Effettuare il provisioning dell'infrastruttura del modello senza distribuire il codice dell'applicazione:
azd provision
Eseguire azd env get-values e verificare che l'output includa AZURE_TRANSLATOR_NAME e AZURE_TRANSLATOR_ENDPOINT. Nel portale di Azure verificare che il gruppo di risorse contenga una risorsa Traduttore di Azure.
A questo punto, il template esegue il provisioning del servizio di intelligenza artificiale, ma non vi connette l'applicazione di esempio. Per completare l'integrazione, configurare l'accesso con privilegi minimi per l'identità gestita dell'applicazione, passare l'endpoint all'applicazione e aggiungere un client Translator al codice dell'applicazione. Per altre informazioni, vedere la documentazione di Traduttore di Azure.
Pulire le risorse
Quando le risorse non sono più necessarie, eliminarle per evitare addebiti continui:
azd down --purge
Contenuti correlati
- Panoramica dello sviluppo di modelli
- Iniziare con un nuovo modello
- Iniziare da un modello esistente
- Esplorare e modificare i file modello
Richiedere assistenza
Per informazioni su come inviare un bug, richiedere assistenza o proporre una nuova funzionalità per l'interfaccia della riga di comando per sviluppatori di Azure, visitare la pagina troubleshooting e supporto.