Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Nadat u een nieuwe Azure Developer CLI-sjabloon (azd) hebt gebouwd of een bestaande sjabloon hebt gestart, kunt u de toepassing en infrastructuur uitbreiden en ontwikkelen naarmate uw vereisten veranderen. In deze zelfstudie ziet u hoe u een nieuwe Azure-service toevoegt aan een sjabloon zonder dat u afhankelijk bent van een module die de sjabloon al biedt.
U begint met de hello-azd sjabloon, maakt een Bicep module die een Azure Translator resource definieert, naar de module verwijst vanuit het ingangspunt van de infrastructuur van de sjabloon en de uitvoer ervan beschikbaar maakt als azd omgevingswaarden. De tutorial richt zich op het uitbreiden van de infrastructuur en wijzigt de applicatiecode niet.
Note
U kunt de volgende wijzigingen rechtstreeks of met hulp van een AI-coderingsassistent aanbrengen. Bekijk, ongeacht de ontwerpmethode, de resulterende bestanden en valideer de sjabloon vóór de implementatie.
Prerequisites
U hebt het volgende nodig om deze zelfstudie te voltooien:
- Azure Developer CLI geïnstalleerd.
- Een Azure-abonnement.
- Toestemming om Azure-resources te maken in het abonnement.
- Een lege map voor de geïnitialiseerde sjabloon.
De sjabloon initialiseren
Open een terminal in een lege map en initialiseer de hello-azd sjabloon in die map:
azd init --template hello-azd .
De sjabloon bevat:
- Een C#-toepassing die is geïmplementeerd in Azure Container Apps als de
acaservice inazure.yaml. - Een door de gebruiker toegewezen beheerde identiteit voor de toepassing.
- Een Azure Storage-account met een blobcontainer en -tabel.
- Azure Container Registry en een Azure Container Apps omgeving.
- Herbruikbare Bicep modules onder
infra/core.
Zie Beginnen met een bestaande sjabloon voor hulp bij het selecteren en controleren van een sjabloon vóór initialisatie.
Een Translator-module maken
Maak een bestand met de naam infra/translator.bicep, handmatig of met hulp van een AI-coderingsassistent. Deze nieuwe module is zelfstandig en is niet afhankelijk van modules uit de beginsjabloon:
@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
De module maakt gebruik van het TextTranslation resourcetype en schakelt verificatie van lokale sleutels uit. De F0 laag is handig voor evaluatie, maar staat slechts één gratis Translator-resource per abonnement toe. Gebruik S1 als het abonnement al een F0-resource bevat of als het project een betaalde prijscategorie vereist.
Important
In dit inleidende voorbeeld wordt het openbare eindpunt ingeschakeld, zodat u de resource kunt inrichten zonder netwerkinfrastructuur toe te voegen. Voordat u dit patroon in productie gebruikt, evalueert u privé-eindpunten, besturingselementen voor netwerktoegang, bewaking en de beveiligingsvereisten van uw organisatie.
Naar de module verwijzen vanuit main.bicep
De hello-azd sjabloon definieert de rg resourcegroep, locationen tagsresourceToken waarden ininfra/main.bicep. U kunt deze bewerking handmatig aanbrengen of een AI-assistent vragen om deze toe te voegen. Voeg de volgende module toe na de rg resourcedeclaratie:
module translator './translator.bicep' = {
name: 'translator'
scope: rg
params: {
name: 'translator-${resourceToken}'
location: location
tags: tags
}
}
Met scope de eigenschap wordt de module geïmplementeerd in de resourcegroep die door de sjabloon wordt gemaakt. De bestaande resourceToken waarde maakt de naam van de Translator-resource voor elke omgeving uniek.
De Translator-uitvoer exporteren
Voeg de volgende uitvoer toe aan het einde van infra/main.bicep:
output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint
Na het provisioneren legt azd deze niet-geheime uitvoerwaarden vast in de actieve omgeving. Een latere wijziging in toepassingscode kan deze waarden gebruiken om de Translator-resource te vinden.
De infrastructuur inrichten en verifiëren
De infrastructuur van de sjabloon inrichten zonder de toepassingscode te implementeren:
azd provision
Voer de opdracht uit azd env get-values en bevestig dat de uitvoer het bevat AZURE_TRANSLATOR_NAME en AZURE_TRANSLATOR_ENDPOINT. Controleer in de Azure portal of de resourcegroep een Azure Translator resource bevat.
Op dit moment richt de sjabloon de AI-service in, maar verbindt de voorbeeldtoepassing er niet mee. Om deze integratie te voltooien, configureert u toegang met minimale bevoegdheden voor de beheerde identiteit van de toepassing, geeft u het eindpunt door aan de toepassing en voegt u een Translator-client toe aan de toepassingscode. Zie de documentatie voor Azure Translator voor meer informatie.
De hulpbronnen opschonen
Wanneer u de resources niet meer nodig hebt, verwijdert u deze om doorlopende kosten te voorkomen:
azd down --purge
Verwante onderwerpen
- Overzicht van sjabloonontwikkeling
- Beginnen met een nieuwe sjabloon
- Beginnen met een bestaande sjabloon
- Sjabloonbestanden verkennen en bewerken
Hulp vragen
Ga naar de pagina roubleshooting en ondersteuning voor informatie over het indienen van een bug, hulp vragen of een nieuwe functie voorstellen voor de Azure Developer CLI.