Függvényalkalmazás létrehozása helyi Linux-tárolóban

Ez a cikk bemutatja, hogyan hozhatja létre az első függvényt egy Linux-tárolóban a helyi számítógépen az Azure Functions Core-eszközökkel, hogyan ellenőrizheti helyileg a függvényt, majd közzéteheti a tárolóalapú függvényt egy tárolóregisztrációs adatbázisban. A tárolóregisztrációs adatbázisból egyszerűen üzembe helyezheti a tárolóalapú függvényeket az Azure-ban.

A tárolóalapú függvények Azure-ban történő üzembe helyezésére vonatkozó teljes példáért, amely tartalmazza a cikkben szereplő lépéseket, tekintse meg az alábbi cikkek egyikét:

Az Azure Portalon egy meglévő tárolóalapú függvényalkalmazás használatával is létrehozhat függvényalkalmazást egy tárolóregisztrációs adatbázisból. További információkért tekintse meg az Azure Portal tárolók használatával történő létrehozását ismertető témakört.

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:

If you don't have an Azure subscription, create an Azure free account before you begin.

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:

Adatkérés Value Description
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" --authlevel anonymous

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 létrehoz egy, a function.json nevű konfigurációs fájlt tartalmazó függvénynévnek megfelelő almappát.

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

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.

További lépések