Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Depois de criar um novo modelo de CLI (azd) para Desenvolvedores do Azure ou começar a partir de um já existente, pode expandir e evoluir a sua aplicação e infraestrutura conforme as suas necessidades mudam. Este tutorial demonstra como adicionar um novo serviço Azure a um template sem depender de um módulo que o template já fornece.
Começas pelo hello-azd template, crias um módulo Bicep que define um recurso do Azure Translator, referencias o módulo a partir do ponto de entrada da infraestrutura do template e expões as suas saídas como azd valores de ambiente. O tutorial foca-se na expansão da infraestrutura e não modifica o código da aplicação.
Note
Pode fazer as seguintes alterações diretamente ou com a ajuda de um assistente de programação por IA. Independentemente do método de autoria, reveja os ficheiros resultantes e valide o modelo antes da implementação.
Pré-requisitos
Para concluir este tutorial, você precisa:
- Azure Developer CLI instalado.
- Uma assinatura do Azure.
- Permissão para criar recursos do Azure na subscrição.
- Um diretório vazio para o modelo inicializado.
Inicializar o modelo
Abra um terminal numa pasta vazia e depois inicialize o hello-azd modelo nessa diretoria:
azd init --template hello-azd .
O modelo inclui:
- Uma aplicação C# implementada no Azure Container Apps como serviço
acaemazure.yaml. - Uma identidade gerida atribuída pelo utilizador para a aplicação.
- Uma conta Armazenamento do Azure com um contentor de blobs e uma tabela.
- Azure Container Registry e um ambiente Azure Container Apps.
- Módulos Bicep reutilizáveis em
infra/core.
Para orientações sobre como selecionar e rever um modelo antes da inicialização, consulte Começar a partir de um modelo existente.
Criar um módulo tradutor
Crie um ficheiro chamado infra/translator.bicep, manualmente ou com a ajuda de um assistente de programação de IA. Este novo módulo é autónomo e não depende dos módulos do modelo inicial:
@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
O módulo utiliza o TextTranslation resource type e desativa a autenticação de chave local. O F0 nível é útil para avaliação, mas permite apenas um recurso gratuito do Tradutor por subscrição. Use S1 se a subscrição já contiver um F0 recurso ou se o projeto exigir um nível pago.
Importante
Este exemplo introdutório permite que o endpoint público permita que possa provisionar o recurso sem adicionar infraestrutura de rede. Antes de usar este padrão em produção, avalie endpoints privados, controlos de acesso à rede, monitorização e os requisitos de segurança da sua organização.
Referenciar o módulo a partir de main.bicep
O hello-azd modelo define o grupo de recursos rg e os valores de location, tags e resourceToken em infra/main.bicep. Podes fazer esta edição manualmente ou pedir a um assistente de IA para a adicionar. Adicione o seguinte módulo após a declaração de rg recurso:
module translator './translator.bicep' = {
name: 'translator'
scope: rg
params: {
name: 'translator-${resourceToken}'
location: location
tags: tags
}
}
A scope propriedade implanta o módulo no grupo de recursos que o template cria. O valor existente resourceToken torna o nome do recurso tradutor distinto para cada ambiente.
Exportar as saídas do tradutor
Adicione as seguintes saídas no final de infra/main.bicep:
output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint
Após o provisionamento, azd captura estas saídas não secretas no ambiente ativo. Uma alteração posterior no código da aplicação pode usar estes valores para localizar o recurso Tradutor.
Provisionar e verificar a infraestrutura
Providencie a infraestrutura do modelo sem implementar o seu código de aplicação:
azd provision
Execute azd env get-values e confirme que a saída inclui AZURE_TRANSLATOR_NAME e AZURE_TRANSLATOR_ENDPOINT. No portal Azure, verifique se o grupo de recursos contém um recurso do Azure Translator.
Neste ponto, o modelo provisiona o serviço de IA mas não liga a aplicação de exemplo a ele. Para completar essa integração, configure o acesso de privilégio mínimo para a identidade gerida da aplicação, passe o endpoint para a aplicação e adicione um cliente tradutor ao código da aplicação. Para mais informações, consulte a documentação do Azure Translator.
Limpeza de recursos
Quando já não precisar dos recursos, elimine-os para evitar cobranças contínuas:
azd down --purge
Conteúdo relacionado
- Visão geral do desenvolvimento de modelos
- Comece com um novo modelo
- Comece a partir de um modelo existente
- Explorar e editar ficheiros modelo
Pedir ajuda
Para informações sobre como registar um bug, pedir ajuda ou propor uma nova funcionalidade para a Azure Developer CLI, por favor visite a página troubleshooting and support.