Sdílet prostřednictvím


Rychlý start: Vytvoření a nasazení Azure Functions prostředků 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í kódu funkce.

Dokončením tohoto rychlého startu se na vašem účtu Azure účtují malé náklady ve výši několika centů nebo méně.

Bicep je jazyk specifický pro doménu (DSL), který k nasazení prostředků Azure používá deklarativní syntaxi. Poskytuje stručnou syntaxi, spolehlivou bezpečnost typů a podporu opětovného použití kódu. Bicep nabízí nejlepší prostředí pro vytváření obsahu pro vaše řešení infrastruktury jako kódu v Azure.

Po vytvoření aplikace funkcí můžete do této aplikace nasadit Azure Functions kód projektu.

Požadavky

Účet Azure

Než začnete, musíte mít účet Azure s aktivním předplatným. Vytvořte si zdarma účet.

Kontrola souboru Bicep

Soubor Bicep použitý v tomto rychlém startu je 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:

Důležité

Účet úložiště se používá k ukládání důležitých dat aplikace, někdy včetně samotného kódu aplikace. Přístup k účtu úložiště byste měli omezit z jiných aplikací a uživatelů.

Nasazení souboru Bicep

  1. Uložte soubor Bicep jako main.bicep do místního počítače.

  2. Nasaďte soubor Bicep pomocí Azure CLI nebo Azure PowerShell.

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters appInsightsLocation=<app-location>
    

    Poznámka

    Nahraďte <app-location> oblastí pro Application Insights, která je obvykle stejná jako skupina prostředků.

    Po dokončení nasazení by se měla zobrazit zpráva oznamující, ž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

Navštívit úvodní stránku aplikace funkcí

  1. Pomocí výstupu z předchozího kroku ověření načtěte jedinečný název vytvořený pro vaši aplikaci funkcí.

  2. 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:

    Úvodní stránka aplikace funkcí

Vyčištění prostředků

Pokud budete pokračovat dalším krokem a přidáte výstupní vazbu fronty Azure Storage, zachovejte všechny prostředky na svém místě, protože budete stavět na tom, co jste už udělali.

Pokud už prostředky nepotřebujete, použijte k odstranění skupiny prostředků a jejích prostředků Azure CLI, PowerShellu nebo Azure Portal.

az group delete --name exampleRG

Další kroky

Teď, když jste vytvořili prostředky aplikace funkcí v Azure, můžete nasadit kód do existující aplikace pomocí jednoho z následujících nástrojů: