Megosztás a következőn keresztül:


Függvényalkalmazások létrehozása és kezelése a Rugalmas használat csomagban

Ez a cikk bemutatja, hogyan hozhat létre függvényalkalmazásokat az Azure Functions Flex Consumption csomagjában . Azt is bemutatja, hogyan kezelheti a Flex Consumption-csomag által üzemeltetett alkalmazások bizonyos funkcióit.

A függvényalkalmazás erőforrásai langauge-specifikusak. A cikk elején mindenképpen válassza ki az előnyben részesített kódfejlesztési nyelvet.

Fontos

A Rugalmas használat csomag jelenleg előzetes verzióban érhető el.

Előfeltételek

Rugalmas használatú alkalmazás létrehozása

Ez a szakasz bemutatja, hogyan hozhat létre függvényalkalmazást a Flex Consumption csomagban az Azure CLI, az Azure Portal vagy a Visual Studio Code használatával. Ha egy alkalmazást Bicep/ARM-sablonokkal hoz létre egy Flex Consumption-csomagban, tekintse meg a Flex Consumption adattárat.

Ezt a szakaszt kihagyhatja, ha ehelyett a Maven használatával hozza létre és telepítse az alkalmazást.

A függvénykód támogatásához három erőforrást kell létrehoznia:

  • Egy erőforráscsoport, amely a kapcsolódó erőforrások logikai tárolója.
  • Storage-fiók, amely az állapot és a függvényekkel kapcsolatos egyéb információk fenntartására szolgál.
  • Egy függvényalkalmazás a Flex Consumption csomagban, amely a függvénykód végrehajtásához biztosítja a környezetet. A függvényalkalmazások leképezik a helyi függvényprojektet, és lehetővé teszi a függvények logikai egységként való csoportosítását a Rugalmas kihasználtság csomagban található erőforrások egyszerűbb kezelése, üzembe helyezése és megosztása érdekében.
  1. Ha még nem tette meg, jelentkezzen be az Azure-ba:

    az login
    

    A az login parancs bejelentkezik az Azure-fiókjába.

  2. az functionapp list-flexconsumption-locations A parancs segítségével áttekintheti a Rugalmas használatot jelenleg támogató régiók listáját.

    az functionapp list-flexconsumption-locations --output table
    
  1. Hozzon létre egy erőforráscsoportot az egyik jelenleg támogatott régióban:

    az group create --name <RESOURCE_GROUP> --location <REGION>
    

    A fenti parancsban cserélje le <RESOURCE_GROUP> az előfizetésében egyedi értéket és <REGION> az egyik jelenleg támogatott régiót. Az az group create parancs létrehoz egy erőforráscsoportot.

  2. Hozzon létre egy általános célú tárfiókot az erőforráscsoportban és a régióban:

    az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group <RESOURCE_GROUP> --sku Standard_LRS --allow-blob-public-access false
    

    Az előző példában cserélje le <STORAGE_NAME> az Ön számára megfelelő és az Azure Storage-ban egyedi nevet. A neveknek csak három-24 karakterből álló számokat és kisbetűket kell tartalmazniuk. Standard_LRS egy általános célú fiókot határoz meg, amelyet a Functions támogat. Az az storage account create parancs létrehozza a tárfiókot.

    Fontos

    A tárfiók fontos alkalmazásadatok tárolására szolgál, néha magában az alkalmazáskódban is. Korlátoznia kell a hozzáférést más alkalmazásoktól és felhasználóktól a tárfiókhoz.

  3. A függvényalkalmazás létrehozása az Azure-ban:

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0 
    

    A folyamatban futó C#-alkalmazások jelenleg nem támogatottak Flex Consumption-csomagban való futtatáskor.

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime java --runtime-version 17 
    

    Java-alkalmazások esetén a Java 11 jelenleg is támogatott.

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime node --runtime-version 20 
    
    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime python --runtime-version 3.11 
    

    Python-alkalmazások esetén a Python 3.10 jelenleg is támogatott.

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime powershell --runtime-version 7.4 
    

    Ebben a példában cserélje le mind <RESOURCE_GROUP><STORAGE_NAME> az erőforráscsoportot, mind az előző lépésben használt fiók nevét. Cserélje le <APP_NAME> az Ön számára megfelelő globálisan egyedi nevet is. A <APP_NAME> függvényalkalmazás alapértelmezett tartománynév-kiszolgálói (DNS-) tartománya is. A az functionapp create parancs létrehozza a függvényalkalmazást az Azure-ban.

    Ez a parancs létrehoz egy függvényalkalmazást, amely a Flex Consumption csomagban fut. A használt nyelvi futtatókörnyezeti verzió az előzetes verzióban jelenleg támogatott verzió.

    Mivel az alkalmazást a mindig kész példányok megadása nélkül hozta létre, az alkalmazás csak a függvények aktív végrehajtásakor jár költségekkel. A parancs egy társított Azure-alkalmazás Insights-példányt is létrehoz ugyanabban az erőforráscsoportban, amellyel figyelheti a függvényalkalmazást, és megtekintheti a naplókat. További információ: Az Azure Functions monitorozása.

    
    

A kódprojekt üzembe helyezése

Ezt a szakaszt kihagyhatja, ha ehelyett a Maven használatával hozza létre és telepítse az alkalmazást.

A projektkódot különböző eszközökkel helyezheti üzembe egy meglévő függvényalkalmazásban:

Fontos

A meglévő függvényalkalmazásban való üzembe helyezés mindig felülírja az alkalmazás tartalmát az Azure-ban.

  1. A parancskatalógusban keresse meg és futtassa a parancsot Azure Functions: Deploy to Function App....

  2. Válassza ki az imént létrehozott függvényalkalmazást. Amikor a rendszer kéri a korábbi üzemelő példányok felülírását, válassza az Üzembe helyezés lehetőséget a függvénykód új függvényalkalmazás-erőforrásban való üzembe helyezéséhez.

  3. Az üzembe helyezés befejezése után válassza a Kimenet megtekintése lehetőséget a létrehozási és üzembe helyezési eredmények megtekintéséhez, beleértve a létrehozott Azure-erőforrásokat is. Ha nem jelenik meg az értesítés, a jobb alsó sarokban lévő harang ikont választva ismét láthatja.

    Képernyőkép a Kimenet megtekintése ablakról.

Az alkalmazás létrehozása és üzembe helyezése a Maven használatával

A Pom.xml fájl módosításával a Maven használatával létrehozhat egy Flex Consumption által üzemeltetett függvényalkalmazást és a szükséges erőforrásokat az üzembe helyezés során.

  1. Hozzon létre egy Java-kódprojektet az alábbi rövid útmutatók első részének kitöltésével:

  2. A Java-kódprojektben nyissa meg a pom.xml fájlt, és végezze el ezeket a módosításokat a függvényalkalmazás rugalmas használatú csomagban való létrehozásához:

    • Módosítsa a következő értékre <properties>.<azure.functions.maven.plugin.version> : 1.34.0.

    • <plugin>.<configuration> A szakaszában azure-functions-maven-pluginadja hozzá vagy törölje az elemet az <pricingTier> alábbiak szerint:

      <pricingTier>Flex Consumption</pricingTier>
      
  3. (Nem kötelező) Szabja testre a Flex Consumption csomagot a Maven-üzemelő példányban a következő elemeket is beleszámítva a <plugin>.<configuration> szakaszba: .

    • <instanceSize> - beállítja a függvényalkalmazás példánymemória-méretét . Az alapértelmezett érték 2048.
    • <maximumInstances> - a függvényalkalmazás maximális példányszámának legmagasabb értékét állítja be.
    • <alwaysReadyInstances>- beállítja a mindig kész példányok számát a HTTP-triggercsoportok (), a Durable Functions-csoportok (<http><durable>) és más konkrét eseményindítók (<my_function>) gyermekelemeivel. Ha nullánál nagyobb példányszámot állít be, akkor ezekért a példányokért díjat számítunk fel, függetlenül attól, hogy a függvények futnak-e vagy sem. További információ: Számlázás.
  4. Az üzembe helyezés előtt jelentkezzen be az Azure-előfizetésbe az Azure CLI használatával.

    az login
    

    A az login parancs bejelentkezik az Azure-fiókjába.

  5. A következő paranccsal üzembe helyezheti a kódprojektet egy új függvényalkalmazásban a Flex Consumptionben.

    mvn azure-functions:deploy
    

    A Maven a pom.xml sablon beállításaival hozza létre a függvényalkalmazást egy Rugalmas használatú csomagban az Azure-ban, a többi szükséges erőforrással együtt. Ha ezek az erőforrások már léteznek, a kód üzembe lesz helyezve a függvényalkalmazásban, felülírva a meglévő kódot.

Virtuális hálózati integráció engedélyezése

Az alkalmazás virtuális hálózati integrációját rugalmas használatú csomagban engedélyezheti. Az ebben a szakaszban szereplő példák feltételezik, hogy már létrehozott egy virtuális hálózatot alhálózattal a fiókjában. Az alkalmazás létrehozásakor vagy később engedélyezheti a virtuális hálózati integrációt.

A virtuális hálózatkezelés engedélyezése az alkalmazás létrehozásakor:

A virtuális hálózat integrációját a az functionapp create parancs futtatásával és a --vnet--subnet paraméterekkel is engedélyezheti.

  1. Ha még nem tette meg, hozza létre a virtuális hálózatot és az alhálózatot.

  2. Hajtsa végre az 1–4. lépést a Rugalmas használatú alkalmazás létrehozása területen az alkalmazás által igényelt erőforrások létrehozásához.

  3. Futtassa a az functionapp create parancsot, beleértve a --vnet paramétereket is --subnet , ahogy ebben a példában látható:

    az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime <RUNTIME_NAME> --runtime-version <RUNTIME_VERSION> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>
    

    Az <VNET_RESOURCE_ID> érték a virtuális hálózat erőforrás-azonosítója, amelynek formátuma: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCER_GROUP>/providers/Microsoft.Network/virtualNetworks/<VNET_NAME>. Ezzel a paranccsal lekérheti a virtuális hálózati azonosítók listáját a következő szerint <RESOURCE_GROUP>szűrve: az network vnet list --resource-group <RESOURCE_GROUP> --output tsv --query "[]".id.

A rugalmas használatú alkalmazások virtuális hálózati integrációval történő létrehozására vonatkozó teljes körű példákért tekintse meg az alábbi erőforrásokat:

Virtuális hálózati integráció módosítása vagy törlése meglévő alkalmazásban:

A parancs használatával engedélyezheti a az functionapp vnet-integration add virtuális hálózati integrációt egy meglévő függvényalkalmazásba:

az functionapp vnet-integration add --resource-group <RESOURCE_GROUP> --name <APP_NAME> --vnet <VNET_RESOURCE_ID> --subnet <SUBNET_NAME>

A parancs használatával tiltsa le a az functionapp vnet-integration remove virtuális hálózati integrációt az alkalmazásban:

az functionapp vnet-integration remove --resource-group <RESOURCE_GROUP> --name <APP_NAME>

az functionapp vnet-integration list A paranccsal listázhatja az alkalmazás aktuális virtuális hálózati integrációját:

az functionapp vnet-integration list --resource-group <RESOURCE_GROUP> --name <APP_NAME>

Alhálózat kiválasztásakor az alábbi szempontokat kell figyelembe venni:

  • A választott alhálózat már nem használható más célokra, például privát végpontokkal vagy szolgáltatásvégpontokkal, vagy delegálható bármely más üzemeltetési csomagba vagy szolgáltatásba.
  • Ugyanazt az alhálózatot több, Flex Consumption-csomagban futó alkalmazással is megoszthatja. Mivel a hálózati erőforrások minden alkalmazásban meg vannak osztva, az egyik függvényalkalmazás hatással lehet mások teljesítményére ugyanazon az alhálózaton.
  • A Rugalmas kihasználtságú csomagban egyetlen függvényalkalmazás akár 40 IP-címet is használhat, még akkor is, ha az alkalmazás 40-et meghaladó méretű. Bár ez a hüvelykujjszabály hasznos a szükséges alhálózat méretének becsléséhez, ez nem szigorúan érvényes.

Központi telepítési beállítások konfigurálása

A Flex Consumption csomagban az alkalmazás kódját tartalmazó üzembehelyezési csomag egy Azure Blob Storage-tárolóban van fenntartva. Alapértelmezés szerint az üzemelő példányok ugyanazt a tárfiókot (AzureWebJobsStorage) és kapcsolati sztring értéket használják, amelyet a Functions-futtatókörnyezet használ az alkalmazás karbantartásához. A kapcsolati sztring az DEPLOYMENT_STORAGE_CONNECTION_STRING alkalmazásbeállítás tárolja. Ehelyett azonban kijelölhet egy blobtárolót egy külön tárfiókban a kód központi telepítési forrásaként. A tároló eléréséhez használt hitelesítési módszert is módosíthatja.

A testreszabott központi telepítési forrásnak meg kell felelnie a következő feltételeknek:

  • A tárfióknak már léteznie kell.
  • Az üzembe helyezéshez használandó tárolónak is léteznie kell.
  • Ha egynél több alkalmazás ugyanazt a tárfiókot használja, mindegyiknek saját üzembehelyezési tárolóval kell rendelkeznie. Az egyes alkalmazások egyedi tárolójának használata megakadályozza az üzembehelyezési csomagok felülírását, ami akkor fordul elő, ha az alkalmazások ugyanazt a tárolót használják.

Az üzembehelyezési tárhitelesítés konfigurálásakor tartsa szem előtt az alábbi szempontokat:

  • Ha egy kapcsolati sztring használ az üzembehelyezési tárfiókhoz való csatlakozáshoz, a kapcsolati sztring tartalmazó alkalmazásbeállításnak már léteznie kell.
  • Ha felhasználó által hozzárendelt felügyelt identitást használ, a megadott identitás a függvényalkalmazáshoz lesz csatolva. Az Storage Blob Data Contributor üzembehelyezési tárfiókra vonatkozó szerepkör is hozzá lesz rendelve az identitáshoz.
  • Rendszer által hozzárendelt felügyelt identitás használatakor identitás jön létre, ha egy érvényes rendszer által hozzárendelt identitás még nem létezik az alkalmazásban. Ha létezik rendszer által hozzárendelt identitás, az Storage Blob Data Contributor üzembehelyezési tárfiók hatókörébe tartozó szerepkör is hozzá lesz rendelve az identitáshoz.

Az üzembehelyezési beállítások konfigurálása a függvényalkalmazás Flex-használat csomagban való létrehozásakor:

Használja a az functionapp create parancsot, és adja meg ezeket a további beállításokat, amelyek testre szabják az üzembehelyezési tárolót:

Paraméter Leírás
--deployment-storage-name Az üzembehelyezési tárfiók neve.
--deployment-storage-container-name Annak a fióknak a neve, amely az alkalmazás üzembehelyezési csomagját tartalmazza.
--deployment-storage-auth-type Az üzembehelyezési tárfiókhoz való csatlakozáshoz használandó hitelesítési típus. Az elfogadott értékek közé tartozik a StorageAccountConnectionString, UserAssignedIdentityés SystemAssignedIdentitya .
--deployment-storage-auth-value Használata esetén StorageAccountConnectionStringez a paraméter annak az alkalmazásbeállításnak a nevére van beállítva, amely az üzembehelyezési tárfiók kapcsolati sztring tartalmazza. Használata esetén UserAssignedIdentityez a paraméter a használni kívánt identitás erőforrás-azonosítójának nevére van állítva.

Ez a példa egy függvényalkalmazást hoz létre a Flex Consumption csomagban egy külön üzembehelyezési tárfiókkal és egy felhasználó által hozzárendelt identitással:

az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime dotnet-isolated --runtime-version 8.0 --flexconsumption-location "<REGION>" --deployment-storage-name <DEPLOYMENT_ACCCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME> --deployment-storage-auth-type UserAssignedIdentity --deployment-storage-auth-value <MI_RESOURCE_ID>

Egy meglévő alkalmazás üzembehelyezési tárolási konfigurációját is módosíthatja.

az functionapp deployment config set A parancs használatával módosítsa az üzembehelyezési tár konfigurációját:

az functionapp deployment config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --deployment-storage-name <DEPLOYMENT_ACCCOUNT_NAME> --deployment-storage-container-name <DEPLOYMENT_CONTAINER_NAME>

Példánymemória konfigurálása

A Flex Consumption-csomag által használt példánymemória mérete explicit módon beállítható az alkalmazás létrehozásakor. A támogatott méretekkel kapcsolatos további információkért lásd : Példánymemória.

Az alkalmazás létrehozásakor az alapértelmezetttől eltérő példány memóriaméretének beállítása:

Adja meg a paramétert --instance-memory a az functionapp create parancsban. Ez a példa létrehoz egy C#-alkalmazást a következő példánymérettel 4096:

az functionapp create --instance-memory 4096 --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage-account <STORAGE_NAME> --flexconsumption-location <REGION> --runtime dotnet-isolated --runtime-version 8.0

Bármikor módosíthatja az alkalmazás által használt példány memóriaméret-beállítását.

Ez a példa a az functionapp scale config set parancs használatával módosítja a példány memóriaméretének beállítását 4096 MB-ra:

az functionapp scale config set --resource-group <resourceGroup> --name <APP_NAME> --instance-memory 4096

Mindig kész példányok számának beállítása

Ha rugalmas használatú csomagban hoz létre alkalmazást, beállíthatja az adott csoportok (HTTP- vagy Durable-eseményindítók) és eseményindítók mindig kész példányszámát. Az egyes függvények esetében használja a formátumot function:<FUNCTION_NAME>=n.

--always-ready-instances A paraméterrel a az functionapp create paranccsal definiálhat egy vagy több mindig kész példányjelölést. Ez a példa az összes HTTP által aktivált függvény mindig kész példányszámát a következőre 5állítja:

az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances http=10

Ez a példa az összes Durable triggerfüggvény mindig kész példányszámát 3 állítja be, és beállítja a mindig kész példányok számát 2 egy service bus által aktivált, a következő nevű function5függvényhez:

az functionapp create --resource-group <RESOURCE_GROUP> --name <APP_NAME> --storage <STORAGE_NAME> --runtime <LANGUAGE_RUNTIME> --runtime-version <RUNTIME_VERSION> --flexconsumption-location <REGION> --always-ready-instances durable=3 function:function5=2

A mindig kész példányokat egy meglévő alkalmazáson is módosíthatja a példányok megjelölésének hozzáadásával vagy eltávolításával, vagy a meglévő példányok megjelöléseinek számának módosításával.

Ez a példa a az functionapp scale config always-ready set parancs használatával módosítja a HTTP-eseményindítók csoport mindig kész példányainak számát a következőre 10:

az functionapp scale config always-ready set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --settings http=10

A mindig kész példányok eltávolításához használja a parancsot, mint ebben a az functionapp scale config always-ready delete példában, amely eltávolítja az összes mindig kész példányt a HTTP-eseményindítók csoportból és egy függvényt hello_worldis:

az functionapp scale config always-ready delete --resource-group <RESOURCE_GROUP> --name <APP_NAME> --setting-names http hello_world

HTTP egyidejűségi korlátok beállítása

Ha nem állít be meghatározott korlátokat, a Rugalmas használatú csomag alkalmazásainak HTTP-egyidejűségi alapértelmezett beállításai a példányméret-beállítás alapján lesznek meghatározva. További információ: HTTP-eseményindító egyidejűsége.

Az alábbiak szerint állíthat be HTTP-egyidejűségi korlátokat egy meglévő alkalmazáshoz:

az functionapp scale config set A parancs használatával meghatározott HTTP-egyidejűségi korlátokat állíthat be az alkalmazás számára, a példány méretétől függetlenül.

az functionapp scale config set --resource-group <RESOURCE_GROUP> --name <APP_NAME> --trigger-type http --trigger-settings perInstanceConcurrency=10

Ez a példa a HTTP-eseményindító egyidejűségi szintjét állítja be .10 Miután konkrétan beállított egy HTTP-egyidejűségi értéket, a rendszer az alkalmazás példányméret-beállításának bármilyen módosítása ellenére is megtartja ezt az értéket.

Jelenleg támogatott régiók megtekintése

Az előzetes verzióban csak a kijelölt régiókban futtathatja a Rugalmas kihasználtság csomagot. A Rugalmas kihasználtságú csomagokat jelenleg támogató régiók listájának megtekintése:

  1. Ha még nem tette meg, jelentkezzen be az Azure-ba:

    az login
    

    A az login parancs bejelentkezik az Azure-fiókjába.

  2. az functionapp list-flexconsumption-locations A parancs segítségével áttekintheti a Rugalmas használatot jelenleg támogató régiók listáját.

    az functionapp list-flexconsumption-locations --output table
    

Ha az Azure Portalon vagy a Visual Studio Code használatával hoz létre alkalmazást, a jelenleg nem támogatott régiók ki lesznek szűrve a régiólistából.