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


Az első tárolóalapú Azure Functions létrehozása

Ebben a cikkben egy Linux-tárolóban futó függvényalkalmazást hoz létre, és üzembe helyezi azt az Azure Functionsben.

A függvénykód tárolóban való üzembe helyezéséhez prémium szintű csomag vagy dedikált (App Service-) csomag üzemeltetése szükséges. A cikk elvégzése néhány amerikai dollárnyi költséget jelent az Azure-fiókjában, amelyet az erőforrások tisztításával minimalizálhat, ha végzett.

A függvényalkalmazás-tároló Azure-ban való üzembe helyezésének további lehetőségei a következők:

Fejlesztési nyelv kiválasztása

Először az Azure Functions-eszközökkel hozza létre a projektkódot függvényalkalmazásként egy Docker-tárolóban egy nyelvspecifikus Linux-alaprendszerkép használatával. Ügyeljen arra, hogy a cikk tetején válassza ki a választott nyelvet.

A Core Tools automatikusan létrehoz egy Docker-fájlt a projekthez, amely a függvénynyelvhez a megfelelő alaprendszerkép legfrissebb verzióját használja. Rendszeresen frissítenie kell a tárolót a legújabb alaprendszerképről, és újból üzembe kell helyeznie a tároló frissített verziójából. További információ: Tárolóalapú függvényalkalmazások létrehozása.

Előfeltételek

A kezdés előtt a következő követelményekkel kell rendelkeznie:

Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.

A tárolóregisztrációs adatbázisban létrehozott tárolóalapú függvényalkalmazás-rendszerkép közzétételéhez a helyi számítógépen futó Docker-azonosítóra és Dockerre van szükség. Ha nem rendelkezik Docker-azonosítóval, létrehozhat egy Docker-fiókot.

A beállításjegyzék-példány létrehozásához a Tárolóregisztrációs adatbázis gyorsútmutatójának Tárolóregisztrációs adatbázis létrehozása szakaszát is be kell fejeznie. Jegyezze fel a teljes bejelentkezési kiszolgáló nevét.

Virtuális környezet létrehozása és aktiválása

Egy megfelelő mappában futtassa az alábbi parancsokat egy virtuális környezet .venvlétrehozásához és aktiválásához. Mindenképpen használja az Azure Functions által támogatott Python-verziókat .

python -m venv .venv
source .venv/bin/activate

Ha a Python nem telepítette a venv-csomagot a Linux-disztribúcióra, futtassa a következő parancsot:

sudo apt-get install python3-venv

Ebben az aktivált virtuális környezetben minden további parancsot futtat.

A helyi függvényprojekt létrehozása és tesztelése

Egy terminálban vagy parancssorban futtassa a következő parancsot a választott nyelvhez egy függvényalkalmazás-projekt létrehozásához az aktuális mappában:

func init --worker-runtime dotnet-isolated --docker
func init --worker-runtime node --language javascript --docker
func init --worker-runtime powershell --docker
func init --worker-runtime python --docker
func init --worker-runtime node --language typescript --docker

Egy üres mappában futtassa a következő parancsot a Functions-projekt Maven-archetípusból való létrehozásához:

mvn archetype:generate -DarchetypeGroupId=com.microsoft.azure -DarchetypeArtifactId=azure-functions-archetype -DjavaVersion=8 -Ddocker

A -DjavaVersion paraméter közli a Functions futtatókörnyezetével, hogy melyik Java-verziót használja. Használja a -DjavaVersion=11 kapcsolót, ha a függvényeket Java 11-en szeretné futtatni. Ha nem adja meg -DjavaVersion, a Maven alapértelmezés szerint Java 8 lesz. További információ: Java-verziók.

Fontos

A JAVA_HOME cikk elvégzéséhez a környezeti változót a JDK megfelelő verziójának telepítési helyére kell állítani.

A Maven a projekt üzembe helyezéshez szükséges értékeit kéri. Kövesse az utasításokat, és adja meg a következő információkat:

Felszólítás Érték Leírás
groupId com.fabrikam Olyan érték, amely egyedileg azonosítja a projektet az összes projektben, a Java csomagelnevezési szabályait követve.
artifactId fabrikam-functions Olyan érték, amely a jar neve, verziószám nélkül.
Változat 1.0-SNAPSHOT Válassza ki az alapértelmezett értéket.
Csomag com.fabrikam.functions Egy érték, amely a létrehozott függvénykód Java-csomagja. Használja az alapértelmezettet.

Írja be Y vagy nyomja le az Enter billentyűt a megerősítéshez.

A Maven egy artifactId nevű új mappában hozza létre a projektfájlokat, amely ebben a példában az fabrikam-functions.

A --docker beállítás létrehoz egy Docker-fájlt a projekthez, amely egy megfelelő tárolót határoz meg az Azure Functionsben és a kiválasztott futtatókörnyezetben való használatra.

Navigáljon a projektmappába:

cd fabrikam-functions

Az alábbi paranccsal hozzáadhat egy függvényt a projekthez, ahol az --name argumentum a függvény egyedi neve, az --template argumentum pedig a függvény eseményindítóját határozza meg. func new C#-kódfájlt hoz létre a projektben.

func new --name HttpExample --template "HTTP trigger"

Az alábbi paranccsal hozzáadhat egy függvényt a projekthez, ahol az --name argumentum a függvény egyedi neve, az --template argumentum pedig a függvény eseményindítóját határozza meg. func newlétrehoz egy function.json nevű konfigurációs fájlt tartalmazó függvénynévnek megfelelő almappát.

func new --name HttpExample --template "HTTP trigger"

A függvény helyi teszteléséhez indítsa el a helyi Azure Functions futtatókörnyezet-gazdagépet a projektmappa gyökerében.

func start  
func start  
npm install
npm start
mvn clean package  
mvn azure-functions:run

Miután látta a HttpExample kimenetre írt végpontot, lépjen erre a végpontra. A válasz kimenetében egy üdvözlő üzenetnek kell megjelennie.

Miután látta a HttpExample kimenetre írt végpontot, lépjen a következőre http://localhost:7071/api/HttpExample?name=Functions: . A böngészőnek meg kell jelennie egy "hello" üzenetnek, amely visszaköszön Functionsa lekérdezési paraméterhez megadott értékre name .

A gazdagép leállításához nyomja le a Ctrl C billentyűkombinációt+(macOS rendszeren a C parancsot).+

A tárolólemezkép létrehozása és helyi ellenőrzése

(Nem kötelező) Vizsgálja meg a Dockerfile-t a projektmappa gyökerében. A Dockerfile leírja a függvényalkalmazás Linuxon való futtatásához szükséges környezetet. Az Azure Functions támogatott alaprendszerképeinek teljes listája az Azure Functions alaprendszerkép oldalán található.

A gyökérprojekt mappában futtassa a docker buildelési parancsot, adjon meg egy nevet azurefunctionsimage, és címkézze a következőt v1.0.0: . A <DOCKER_ID> helyére a Docker Hub-fiók azonosítóját írja. Ez a parancs létrehozza a tároló Docker-rendszerképét.

docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .

A parancs befejeződésekor helyileg futtathatja az új tárolót.

A build ellenőrzéséhez futtassa a lemezképet egy helyi tárolóban a Docker-futtatási paranccsal, cserélje le <DOCKER_ID> ismét a Docker Hub-fiók azonosítójára, és adja hozzá a portok argumentumát a következőként -p 8080:80:

docker run -p 8080:80 -it <DOCKER_ID>/azurefunctionsimage:v1.0.0

Miután a rendszerkép a helyi tárolóban kezdődött, keresse meg http://localhost:8080/api/HttpExamplea következőt, amelynek ugyanazt az üdvözlő üzenetet kell megjelenítenie, mint korábban. Mivel a létrehozott HTTP-aktivált függvény névtelen hitelesítést használ, meghívhatja a tárolóban futó függvényt anélkül, hogy hozzáférési kulcsot kellene beszereznie. További információ: engedélyezési kulcsok.

Miután a rendszerkép a helyi tárolóban kezdődött, keresse meg http://localhost:8080/api/HttpExample?name=Functionsa következőt, amelynek ugyanazt a "hello" üzenetet kell megjelenítenie, mint korábban. Mivel a létrehozott HTTP-aktivált függvény névtelen hitelesítést használ, meghívhatja a tárolóban futó függvényt anélkül, hogy hozzáférési kulcsot kellene beszereznie. További információ: engedélyezési kulcsok.

Miután ellenőrizte a függvényalkalmazást a tárolóban, a végrehajtás leállításához nyomja le a Ctrl C billentyűkombinációt+(macOS-en a C parancsot).+

A tárolólemezkép közzététele egy beállításjegyzékben

Ha elérhetővé szeretné tenni a tárolólemezképet egy üzemeltetési környezetben való üzembe helyezéshez, le kell küldenie egy tárolóregisztrációs adatbázisba.

Az Azure Container Registry egy privát beállításjegyzék-szolgáltatás a tárolólemezképek és a kapcsolódó összetevők létrehozásához, tárolásához és kezeléséhez. A tárolók Azure-szolgáltatásokban való közzétételéhez magánregisztrációs szolgáltatást kell használnia.

  1. A következő paranccsal jelentkezzen be a beállításjegyzék-példányba:

    az acr login --name <REGISTRY_NAME>
    

    Az előző parancsban cserélje le <REGISTRY_NAME> a Container Registry-példány nevét.

  2. A következő paranccsal címkézheti meg a rendszerképet a regisztrációs adatbázis bejelentkezési kiszolgálójának teljes nevével:

    docker tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 <LOGIN_SERVER>/azurefunctionsimage:v1.0.0 
    

    Cserélje le <LOGIN_SERVER> a regisztrációs adatbázis bejelentkezési kiszolgálójának teljes nevét és <DOCKER_ID> a Docker-azonosítóját.

  3. A következő paranccsal küldje le a tárolót a beállításjegyzék-példányra:

    docker push <LOGIN_SERVER>/azurefunctionsimage:v1.0.0
    
  4. A következő paranccsal engedélyezze a beépített rendszergazdai fiókot, hogy a Functions felhasználónévvel és jelszóval tudjon csatlakozni a beállításjegyzékhez:

    az acr update -n <REGISTRY_NAME> --admin-enabled true
    
  1. A következő paranccsal kérje le a rendszergazdai felhasználónevet és jelszót, amelyhez a Functionsnek csatlakoznia kell a beállításjegyzékhez:

    az acr credential show -n <REGISTRY_NAME> --query "[username, passwords[0].value]" -o tsv
    

    Fontos

    A rendszergazdai fiók felhasználóneve és jelszava fontos hitelesítő adatok. Ügyeljen arra, hogy biztonságosan tárolja őket, és soha ne legyen akadálymentes helyen, például nyilvános adattárban.

Támogató Azure-erőforrások létrehozása a függvényhez

Mielőtt üzembe helyezheti a tárolót az Azure-ban, 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, 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 az erőforrások egyszerűbb kezelése, üzembe helyezése és megosztása érdekében.

Ezeket az elemeket az alábbi parancsokkal hozhatja létre. Az Azure CLI és a PowerShell is támogatott. Az Azure-erőforrások Azure PowerShell-lel való létrehozásához szükség van az 5.9.0-s vagy újabb verziójú Az PowerShell-modulra is.

  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. Hozzon létre egy erőforráscsoportot AzureFunctionsContainers-rg a kiválasztott régióban.

    az group create --name AzureFunctionsContainers-rg --location <REGION>
    

    A az group create parancs létrehoz egy erőforráscsoportot. A fenti parancsban cserélje le <REGION> az Önhöz közeli régióra az az account list-locations parancsból visszaadott elérhető régiókódot.

  3. 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 AzureFunctionsContainers-rg --sku Standard_LRS
    

    A az storage account create parancs létrehozza a tárfiókot.

    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 tárneveknek csak 3–24 karakterből álló számokat és kisbetűket kell tartalmazniuk. Standard_LRSa Functions által támogatott általános célú fiókot határoz meg.

  4. A paranccsal prémium csomagot hozhat létre az Azure Functionshez myPremiumPlan az Elastic Premium 1 tarifacsomagban (--sku EP1), az Önben <REGION>és egy Linux-tárolóban (--is-linux).

    az functionapp plan create --resource-group AzureFunctionsContainers-rg --name myPremiumPlan --location <REGION> --number-of-workers 1 --sku EP1 --is-linux
    

    Itt a Prémium csomagot használjuk, amely igény szerint méretezhető. Az üzemeltetéssel kapcsolatos további információkért tekintse meg az Azure Functions üzemeltetési terveinek összehasonlítását. A költségek kiszámításáról további információt a Functions díjszabási oldalán talál.

    A parancs egy társított Azure-alkalmazás Elemzések-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 példány nem jár költségekkel, amíg nem aktiválja.

Függvényalkalmazás létrehozása és konfigurálása az Azure-ban a rendszerképpel

Az Azure-beli függvényalkalmazás felügyeli a függvények végrehajtását az Azure Functions üzemeltetési csomagjában. Ebben a szakaszban az előző szakasz Azure-erőforrásait használva létrehoz egy függvényalkalmazást egy tárolóregisztrációs adatbázis rendszerképéből, és konfigurálja egy kapcsolati sztring az Azure Storage-ba.

  1. A tárolóregisztrációs adatbázistól függően hozzon létre egy függvényalkalmazást a következő paranccsal:

    az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --resource-group AzureFunctionsContainers-rg --plan myPremiumPlan --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.0 --registry-username <USERNAME> --registry-password <SECURE_PASSWORD> 
    

    Ebben a példában cserélje le <STORAGE_NAME> a tárfiók előző szakaszában használt nevet. Cserélje le <APP_NAME> az Önnek <DOCKER_ID> megfelelő globálisan egyedi nevet, illetve <LOGIN_SERVER> a Docker Hub-fiókazonosítót vagy a Container Registry-kiszolgálót. Egyéni tárolóregisztrációs adatbázisból történő üzembe helyezéskor a rendszerkép neve a beállításjegyzék URL-címét jelzi.

    A függvényalkalmazás első létrehozásakor a rendszer lekéri a kezdeti képet a Docker Hubról. A tárolóregisztrációs adatbázisból is engedélyezheti a folyamatos üzembe helyezést az Azure-ban.

    Tipp.

    A host.json fájlban található beállítássalDisableColormegakadályozhatja, hogy az ANSI vezérlőkarakterek a tárolónaplókba legyenek írva.

  2. A következő paranccsal kérje le a létrehozott tárfiók kapcsolati sztring:

    az storage account show-connection-string --resource-group AzureFunctionsContainers-rg --name <STORAGE_NAME> --query connectionString --output tsv
    

    A tárfiók kapcsolati sztring a parancs használatával az storage account show-connection-string adja vissza.

    Cserélje le <STORAGE_NAME> a korábban létrehozott tárfiók nevére.

  3. A következő paranccsal adja hozzá a beállítást a függvényalkalmazáshoz:

    az functionapp config appsettings set --name <APP_NAME> --resource-group AzureFunctionsContainers-rg --settings AzureWebJobsStorage=<CONNECTION_STRING>
    

    A az functionapp config appsettings set parancs létrehozza a beállítást.

    Ebben a parancsban cserélje le <APP_NAME> a függvényalkalmazás nevére és <CONNECTION_STRING> az előző lépés kapcsolati sztring. A kapcsolatnak egy hosszú kódolt sztringnek kell lennie, amely a következővel DefaultEndpointProtocol=kezdődik: .

  4. A függvény most már használhatja ezt a kapcsolati sztring a tárfiók eléréséhez.

A függvények ellenőrzése az Azure-ban

Az Azure-ban a függvényalkalmazásban üzembe helyezett rendszerkép használatával mostantól HTTP-kérésekkel hívhatja meg a függvényt.

  1. Futtassa a következő az functionapp function show parancsot az új függvény URL-címének lekéréséhez:

    az functionapp function show --resource-group AzureFunctionsContainers-rg --name <APP_NAME> --function-name HttpExample --query invokeUrlTemplate 
    

    Cserélje le <APP_NAME> a függvényalkalmazás nevére.

  1. Használja az imént beszerzett URL-címet a HttpExample függvényvégpont meghívásához a lekérdezési sztring ?name=Functionshozzáfűzésével.
  1. Használja az imént beszerzett URL-címet a függvényvégpont meghívásához HttpExample .

Ha erre az URL-címre lép, a böngészőnek hasonló kimenetet kell megjelenítenie, mint a függvény helyi futtatásakor.

Az erőforrások eltávolítása

Ha továbbra is használni szeretné az Azure-függvényt a cikkben létrehozott erőforrások használatával, ezeket az erőforrásokat a helyén hagyhatja. Mivel prémium szintű csomagot hozott létre az Azure Functionshez, napi egy vagy két USD-t kell számolnia a folyamatos költségekkel.

A folyamatos költségek elkerülése érdekében törölje az erőforráscsoportot a AzureFunctionsContainers-rg csoport összes erőforrásának törléséhez:

az group delete --name AzureFunctionsContainers-rg

Következő lépések