Hızlı Başlangıç: Bicep kullanarak Azure İşlevleri kaynakları oluşturma ve dağıtma
Bu makalede, Azure'da bir işlev uygulaması ve ilgili kaynaklar oluşturmak için Bicep ile Azure İşlevleri kullanacaksınız. İşlev uygulaması, işlev kodu yürütmeleriniz için bir yürütme bağlamı sağlar.
Bu hızlı başlangıcı tamamladığınızda Azure hesabınıza birkaç sentlik (ABD doları cinsinden) veya daha düşük bir ücret yansıtılır.
Bicep, Azure kaynaklarını dağıtmak için bildirim temelli söz dizimi kullanan, etki alanına özgü bir dildir (DSL). Kısa sözdizimi, güvenilir tür güvenliği ve kod yeniden kullanımı için destek sağlar. Bicep, Azure'daki kod olarak altyapı çözümleriniz için en iyi yazma deneyimini sunar.
İşlev uygulamasını oluşturduktan sonra, Azure İşlevleri proje kodunu bu uygulamaya dağıtabilirsiniz.
Önkoşullar
Azure hesabı
Başlamadan önce etkin aboneliği olan bir Azure hesabınız olmalıdır. Ücretsiz hesap oluşturun.
Bicep dosyasını gözden geçirme
Bu hızlı başlangıçta kullanılan Bicep dosyası Azure Hızlı Başlangıç Şablonları'ndan alınmıştı.
@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'
}
}
Bu Bicep dosyası tarafından aşağıdaki dört Azure kaynağı oluşturulur:
- Microsoft.Storage/storageAccounts: İşlevler tarafından gerekli kılınan bir Azure Depolama hesabı oluşturun.
- Microsoft.Web/serverfarms: İşlev uygulaması için sunucusuz tüketim barındırma planı oluşturun.
- Microsoft.Web/sites: bir işlev uygulaması oluşturun.
- microsoft.insights/components: İzleme için bir Application Insights örneği oluşturun.
Önemli
Depolama hesabı, bazen uygulama kodunun kendisi de dahil olmak üzere önemli uygulama verilerini depolamak için kullanılır. Diğer uygulama ve kullanıcılardan depolama hesabına erişimi sınırlamanız gerekir.
Bicep dosyasını dağıtma
Bicep dosyasını main.bicep olarak yerel bilgisayarınıza kaydedin.
Azure CLI veya Azure PowerShell kullanarak Bicep dosyasını dağıtın.
az group create --name exampleRG --location eastus az deployment group create --resource-group exampleRG --template-file main.bicep --parameters appInsightsLocation=<app-location>
Not
Uygulama konumunu>, genellikle kaynak grubuyla aynı olan Application Insights bölgesiyle değiştirin<.
Dağıtım tamamlandığında, dağıtımın başarılı olduğunu belirten bir ileti görmeniz gerekir.
Dağıtımı doğrulama
Dağıtımı doğrulamak için Azure CLI veya Azure PowerShell kullanın.
az resource list --resource-group exampleRG
İşlev uygulaması karşılama sayfasını ziyaret edin
İşlev uygulamanız için oluşturulan benzersiz adı almak için önceki doğrulama adımının çıktısını kullanın.
Bir tarayıcı açın ve şu URL'yi girin: <https://< appName.azurewebsites.net>. \appName> değerini işlev uygulamanız için oluşturulan benzersiz adla değiştirdiğinden <emin olun.
URL'yi ziyaret ettiğinizde aşağıdakine benzer bir sayfa görmeniz gerekir:
Kaynakları temizleme
Bir sonraki adıma devam edip bir Azure Depolama kuyruğu çıkış bağlaması eklerseniz, daha önce yaptıklarınızı derleyeceğiniz gibi tüm kaynaklarınızı yerinde tutun.
Aksi takdirde, kaynaklara artık ihtiyacınız yoksa kaynak grubunu ve kaynaklarını silmek için Azure CLI, PowerShell veya Azure portalını kullanın.
az group delete --name exampleRG
Sonraki adımlar
İşlev uygulaması kaynaklarınızı Azure'da oluşturduğunuza göre, aşağıdaki araçlardan birini kullanarak kodunuzu mevcut uygulamaya dağıtabilirsiniz: