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 első tárolóalapú Azure Functions létrehozása az Azure Container Appsben
- Az első tárolóalapú Azure Functions létrehozása
- Az első tárolóalapú Azure Functions létrehozása az Azure Arcon (előzetes verzió)
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:
Telepítse a .NET 6 SDK-t.
Telepítse az Azure Functions Core Tools 4.0.5198-es vagy újabb verzióját.
- Telepítse az Azure Functions Core Tools 4.x-es verzióját.
- Telepítse az Azure Functions által támogatott Node.js-verziót.
- Telepítse az Azure Functions által támogatott Python-verziót.
- Telepítse a .NET 6 SDK-t.
Telepítse az Azure Functions által támogatott Java Developer Kit-verziót.
Telepítse az Apache Maven 3.0-s vagy újabb verzióját.
- Az Azure CLI 2.4-es vagy újabb verziója.
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 .venv
lé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 Functions
a 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/HttpExample
a 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=Functions
a 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.
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.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.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
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
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.