Rozšíření šablony azd přidáním služby Azure

Jakmile vytvoříte novou šablonu rozhraní příkazového řádku pro vývojáře Azure neboazd začnete s existující šablonou, můžete rozšířit a vyvíjet její aplikaci a infrastrukturu při změně požadavků. Tento kurz ukazuje, jak do šablony přidat novou službu Azure, aniž byste museli spoléhat na modul, který šablona již poskytuje.

Začnete s hello-azd šablonou, vytvoříte modul Bicep, který definuje prostředek Azure Translator, odkážete na tento modul z vstupního bodu infrastruktury šablony a zpřístupníte jeho výstupy jako hodnoty prostředí azd. Kurz se zaměřuje na rozšíření infrastruktury a neupravuje kód aplikace.

Note

Následující změny můžete provést přímo nebo pomocí pomocníka pro psaní kódu AI. Bez ohledu na metodu vytváření zkontrolujte výsledné soubory a před nasazením šablonu ověřte.

Předpoklady

K dokončení tohoto kurzu potřebujete:

Inicializujte šablonu

Otevřete terminál v prázdném adresáři a pak inicializujete hello-azd šablonu v daném adresáři:

azd init --template hello-azd .

Šablona obsahuje:

  • Aplikace v jazyce C# nasazená do Azure Container Apps jako služba aca v azure.yaml.
  • Uživatelem přiřazená spravovaná identita pro aplikaci.
  • Účet Azure Storage s kontejnerem objektů blob a tabulkou.
  • Azure Container Registry a prostředí Azure Container Apps.
  • Opakovaně použitelné moduly Bicep v sekci infra/core.

Pokyny k výběru a kontrole šablony před inicializací najdete v tématu Začínáme z existující šablony.

Vytvoření modulu Translator

Vytvořte soubor s názvem infra/translator.bicepručně nebo pomocí pomocníka pro kódování AI. Tento nový modul je samostatný a nezávisí na modulech ze spouštěcí šablony:

@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

Modul používá TextTranslation druh prostředku a zakáže ověřování pomocí místního klíče. Úroveň F0 je užitečná pro vyhodnocování, ale v rámci jednoho předplatného umožňuje pouze jeden bezplatný prostředek služby Translator. Použijte S1 , pokud předplatné již obsahuje F0 prostředek nebo pokud projekt vyžaduje placenou úroveň.

Important

Tento úvodní příklad umožňuje veřejný koncový bod, abyste mohli zřídit prostředek bez přidání síťové infrastruktury. Než tento model použijete v produkčním prostředí, vyhodnoťte privátní koncové body, řízení přístupu k síti, monitorování a požadavky vaší organizace na zabezpečení.

Odkaz na modul z main.bicep

Šablona hello-azd definuje rg skupinu prostředků , locationtags, a resourceToken hodnoty v infra/main.bicep. Tuto úpravu můžete udělat ručně nebo zobrazit výzvu asistentovi AI, aby ho přidal. Za deklaraci prostředku rg přidejte následující modul:

module translator './translator.bicep' = {
  name: 'translator'
  scope: rg
  params: {
    name: 'translator-${resourceToken}'
    location: location
    tags: tags
  }
}

Vlastnost scope nasadí modul do skupiny prostředků, kterou šablona vytvoří. Stávající hodnota resourceToken zajišťuje, že název prostředku Translator je pro každé prostředí odlišný.

Export výstupů translatoru

Na konec infra/main.biceppříkazu přidejte následující výstupy:

output AZURE_TRANSLATOR_NAME string = translator.outputs.name
output AZURE_TRANSLATOR_ENDPOINT string = translator.outputs.endpoint

Po nasazení azd zaznamená tyto neutajené výstupy v aktivním prostředí. Pozdější změna kódu aplikace může tyto hodnoty použít k vyhledání prostředku Translator.

Zřízení a ověření infrastruktury

Zřiďte infrastrukturu šablony bez nasazení kódu aplikace:

azd provision

Spusťte a potvrďte azd env get-values , že výstup obsahuje AZURE_TRANSLATOR_NAME a AZURE_TRANSLATOR_ENDPOINT. Na portálu Azure ověřte, že skupina prostředků obsahuje prostředek Azure Translator.

V tuto chvíli šablona zřídí službu AI, ale nepřipojí k ní ukázkovou aplikaci. Pokud chcete tuto integraci dokončit, nakonfigurujte přístup s nejnižšími oprávněními pro spravovanou identitu aplikace, předejte do aplikace koncový bod a přidejte do kódu aplikace klienta Translator. Další informace najdete v Azure Translator dokumentaci.

Vyčistěte zdroje

Pokud už prostředky nepotřebujete, odstraňte je, abyste se vyhnuli průběžným poplatkům:

azd down --purge

Požádat o pomoc

Informace o tom, jak nahlásit chybu, požádat o pomoc nebo navrhnout novou funkci pro rozhraní příkazového řádku vývojářů Azure, najdete na stránce řešení problémů a podpora.