Rychlý start: Vytvoření a nasazení prostředků Azure Functions pomocí Bicep
V tomto článku použijete Azure Functions s Bicep k vytvoření aplikace funkcí a souvisejících prostředků v Azure. Aplikace funkcí poskytuje kontext spuštění pro provádění kódu funkce.
Při dokončení tohoto rychlého zprovoznění vzniknou ve vašem účtu Azure náklady ve výši několika centů USD (nebo menší).
Bicep je jazyk specifický pro doménu (DSL), který k nasazování prostředků Azure používá deklarativní syntaxi. Poskytuje stručnou syntaxi, spolehlivou bezpečnost typů a podporu pro opakované použití kódu. Bicep nabízí nejlepší prostředí pro vytváření obsahu pro řešení infrastruktury jako kódu v Azure.
Po vytvoření aplikace funkcí můžete do této aplikace nasadit kód projektu Azure Functions.
Požadavky
Účet Azure
Než začnete, musíte mít účet Azure s aktivním předplatným. Vytvoření účtu zdarma
Kontrola souboru Bicep
Soubor Bicep použitý v tomto rychlém startu pochází ze šablon Azure Pro rychlý start.
@description('The name of the function app that you wish to create.')
param appName string = 'fnapp${uniqueString(resourceGroup().id)}'
@description('Storage Account type')
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_RAGRS'
])
param storageAccountType string = 'Standard_LRS'
@description('Location for all resources.')
param location string = resourceGroup().location
@description('Location for Application Insights')
param appInsightsLocation string
@description('The language worker runtime to load in the function app.')
@allowed([
'node'
'dotnet'
'java'
])
param runtime string = 'node'
var functionAppName = appName
var hostingPlanName = appName
var applicationInsightsName = appName
var storageAccountName = '${uniqueString(resourceGroup().id)}azfunctions'
var functionWorkerRuntime = runtime
resource storageAccount 'Microsoft.Storage/storageAccounts@2022-05-01' = {
name: storageAccountName
location: location
sku: {
name: storageAccountType
}
kind: 'Storage'
properties: {
supportsHttpsTrafficOnly: true
defaultToOAuthAuthentication: true
}
}
resource hostingPlan 'Microsoft.Web/serverfarms@2021-03-01' = {
name: hostingPlanName
location: location
sku: {
name: 'Y1'
tier: 'Dynamic'
}
properties: {}
}
resource functionApp 'Microsoft.Web/sites@2021-03-01' = {
name: functionAppName
location: location
kind: 'functionapp'
identity: {
type: 'SystemAssigned'
}
properties: {
serverFarmId: hostingPlan.id
siteConfig: {
appSettings: [
{
name: 'AzureWebJobsStorage'
value: 'DefaultEndpointsProtocol=https;AccountName=${storageAccountName};EndpointSuffix=${environment().suffixes.storage};AccountKey=${storageAccount.listKeys().keys[0].value}'
}
{
name: 'WEBSITE_CONTENTAZUREFILECONNECTIONSTRING'
value: 'DefaultEndpointsProtocol=https;AccountName=${storageAccountName};EndpointSuffix=${environment().suffixes.storage};AccountKey=${storageAccount.listKeys().keys[0].value}'
}
{
name: 'WEBSITE_CONTENTSHARE'
value: toLower(functionAppName)
}
{
name: 'FUNCTIONS_EXTENSION_VERSION'
value: '~4'
}
{
name: 'WEBSITE_NODE_DEFAULT_VERSION'
value: '~14'
}
{
name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
value: applicationInsights.properties.InstrumentationKey
}
{
name: 'FUNCTIONS_WORKER_RUNTIME'
value: functionWorkerRuntime
}
]
ftpsState: 'FtpsOnly'
minTlsVersion: '1.2'
}
httpsOnly: true
}
}
resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = {
name: applicationInsightsName
location: appInsightsLocation
kind: 'web'
properties: {
Application_Type: 'web'
Request_Source: 'rest'
}
}
Tento soubor Bicep vytvoří následující čtyři prostředky Azure:
- Microsoft.Storage/storageAccounts: Vytvořte účet Azure Storage, který vyžaduje služba Functions.
- Microsoft.Web/serverfarms: Vytvořte plán hostování bez serveru pro aplikaci funkcí.
- Microsoft.Web/sites: Vytvořte aplikaci funkcí.
- microsoft.insights/components: Vytvořte instanci Application Insights pro monitorování.
Důležité
Účet úložiště slouží k ukládání důležitých dat aplikace, někdy včetně samotného kódu aplikace. Přístup z jiných aplikací a uživatelů byste měli omezit na účet úložiště.
Nasazení souboru Bicep
Uložte soubor Bicep jako main.bicep do místního počítače.
Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShellu.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters appInsightsLocation=<app-location>
Poznámka:
Umístění aplikace> nahraďte <oblastí pro Application Insights, která je obvykle stejná jako skupina prostředků.
Po dokončení nasazení by se měla zobrazit zpráva, že nasazení bylo úspěšné.
Ověření nasazení
K ověření nasazení použijte Azure CLI nebo Azure PowerShell.
az resource list --resource-group exampleRG
Úvodní stránka aplikace funkcí
Pomocí výstupu z předchozího kroku ověření načtěte jedinečný název vytvořený pro vaši aplikaci funkcí.
Otevřete prohlížeč a zadejte následující adresu URL: <https://< appName.azurewebsites.net>. Nezapomeňte nahradit <\appName> jedinečným názvem vytvořeným pro vaši aplikaci funkcí.
Když navštívíte adresu URL, měla by se zobrazit stránka podobná této:
Vyčištění prostředků
Pokud budete pokračovat k dalšímu kroku a přidáte výstupní vazbu fronty Azure Storage, ponechte všechny prostředky na místě, protože budete vycházet z toho, co jste už udělali.
Pokud už prostředky nepotřebujete, odstraňte skupinu prostředků a její prostředky pomocí Azure CLI, PowerShellu nebo webu Azure Portal.
az group delete --name exampleRG
Další kroky
Teď, když jste vytvořili prostředky aplikace funkcí v Azure, můžete svůj kód nasadit do existující aplikace pomocí jednoho z následujících nástrojů: