Schnellstart: Erstellen und Bereitstellen von Azure Functions-Ressourcen mit Bicep
In diesem Artikel verwenden Sie Azure Functions mit Bicep, um eine Funktions-App und zugehörige Ressourcen in Azure zu erstellen. Die Funktions-App bietet einen Ausführungskontext für Ausführungen Ihres Funktionscodes.
Im Rahmen dieser Schnellstartanleitung fallen in Ihrem Azure-Konto ggf. geringfügige Kosten im Centbereich an.
Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie bietet eine präzise Syntax, zuverlässige Typsicherheit und Unterstützung für die Wiederverwendung von Code. Bicep bietet die beste Form der Erstellung für Ihre Infrastructure-as-Code-Lösungen in Azure.
Nachdem Sie die Funktions-App erstellt haben, können Sie den Azure Functions-Projektcode für diese App bereitstellen.
Voraussetzungen
Azure-Konto
Bevor Sie beginnen, müssen Sie über ein Azure-Konto mit einem aktiven Abonnement verfügen. Sie können kostenlos ein Konto erstellen.
Überprüfen der Bicep-Datei
Die in dieser Schnellstartanleitung verwendete Bicep-Datei stammt aus den Azure-Schnellstartvorlagen.
@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'
}
}
Die folgenden vier Azure-Ressourcen werden von dieser Bicep-Datei erstellt:
- Microsoft.Storage/storageAccounts: Erstellen eines für Functions erforderlichen Azure Storage-Kontos.
- Microsoft.Web/serverfarms: Erstellen eines serverlosen Verbrauchshostingplans für die Funktions-App.
- Microsoft.Web/sites: Erstellen einer Funktions-App.
- microsoft.insights/components: Erstellen einer Application Insights-Instanz für die Überwachung.
Wichtig
Das Speicherkonto wird verwendet, um wichtige App-Daten zu speichern, manchmal einschließlich des Anwendungscodes. Sie sollten den Zugriff von anderen Anwendungen und Benutzern auf das Speicherkonto beschränken.
Bereitstellen der Bicep-Datei
Speichern Sie die Bicep-Datei als main.bicep auf Ihrem lokalen Computer.
Stellen Sie die Bicep-Datei entweder mit Azure CLI oder mit Azure PowerShell bereit.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters appInsightsLocation=<app-location>
Hinweis
Ersetzen Sie <app-location> durch die Region für Application Insights, die in der Regel mit der Region der Ressourcengruppe übereinstimmt.
Nach Abschluss der Bereitstellung sollte eine Meldung mit dem Hinweis angezeigt werden, dass die Bereitstellung erfolgreich war.
Überprüfen der Bereitstellung
Verwenden Sie die Azure CLI oder Azure PowerShell, um die Bereitstellung zu überprüfen.
az resource list --resource-group exampleRG
Aufrufen der Willkommensseite der Funktions-App
Verwenden Sie die Ausgabe aus dem vorherigen Überprüfungsschritt, um den eindeutigen Namen abzurufen, der für Ihre Funktions-App erstellt wurde.
Öffnen Sie einen Browser, und geben Sie die folgende URL ein: <https://< appName.azurewebsites.net>. Stellen Sie sicher, dass <\appName> durch den eindeutigen Namen ersetzt wird, der für Ihre Funktions-App erstellt wurde.
Wenn Sie die URL aufrufen, sollte eine Seite wie die Folgende angezeigt werden:
Bereinigen von Ressourcen
Gehen Sie wie folgt vor, falls Sie mit dem nächsten Schritt fortfahren möchten: Fügen Sie eine Ausgabebindung für die Azure Storage-Warteschlange hinzu, und behalten Sie alle Ressourcen bei, weil der nächste Schritt auf der bisherigen Arbeit aufbaut.
Wenn Sie die Ressourcen andernfalls nicht mehr benötigen, verwenden Sie die Azure CLI, PowerShell oder das Azure-Portal, um die Ressourcengruppe und deren Ressourcen zu löschen.
az group delete --name exampleRG
Nächste Schritte
Nachdem Sie ihre Funktions-App-Ressourcen in Azure erstellt haben, können Sie Ihren Code mithilfe eines der folgenden Tools für die vorhandene App bereitstellen: