Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogy a Azure Functions támogatja az Azure Container Apps környezetben futó tárolóalapú függvényalkalmazásokat. További információért lásd az Azure Functions Azure Container Apps általi üzemeltetését.
Important
Most már elérhető egy új üzemeltetési módszer az Azure Functions közvetlen futtatásához az Azure Container Apps-ben. Lásd: Natív Azure Functions támogatás az Azure Container Apps-ben. Ez az integráció lehetővé teszi a Azure Container Apps teljes funkcióinak és képességeinek használatát. Emellett kihasználhatja a függvények programozási modelljét és az automatikus skálázás Azure Functions által biztosított egyszerűségét is.
Ezt a megközelítést a legtöbb új számítási feladat esetében javasoljuk. További információért tekintse meg a következőt: Azure Functions az Azure Container Apps szolgáltatásban.
Ez a cikk bemutatja, hogy a Azure Functions támogatja a Linux-tárolókban futó függvényalkalmazásokat.
Válassza ki a tárolóalapú függvényalkalmazás üzemeltetési környezetét a cikk tetején.
Ha azonnal be szeretne lépni, az alábbi cikk bemutatja, hogyan hozhatja létre első függvényét egy Linux-konténerben, és hogyan helyezheti üzembe a lemezképet egy konténer-rezisztérből egy támogatott Azure tárhelyszolgáltatásba.
Első tárolóalapú Azure Functions létrehozása az Azure Container Apps-on
A Azure Container Apps üzembe helyezésével kapcsolatos további információkért lásd: Azure Container Apps a Azure Functions üzemeltetése.
Az első tárolóalapú Azure Functions
Important
Ez a cikk jelenleg bemutatja, hogyan csatlakozhat az alapértelmezett storage fiókhoz egy connection string használatával. A legjobb biztonság érdekében inkább hozzon létre egy felügyelt identitásalapú kapcsolatot Azure Storage Microsoft Entra-hitelesítéssel. További információ: Kapcsolatok.
Tárolóalapú függvényalkalmazások létrehozása
A Functions megkönnyíti a függvényalkalmazások Linux-tárolóként való üzembe helyezését és futtatását, amelyeket Ön hoz létre és tart karban. A Functions olyan nyelvspecifikus alaprendszerképeket tart fenn, amelyeket tárolóalapú függvényalkalmazások létrehozásakor használhat.
Important
Saját tárolók létrehozásakor frissíteni kell a tároló alaprendszerképét a legújabb támogatott alaprendszerképre. A Azure Functions támogatott alaprendszerképei nyelvspecifikusak. Tekintse meg az Azure Functions alaprendszerképek tárolóit.
A Functions csapata elkötelezett amellett, hogy havi frissítéseket közzétesz ezekhez az alapképekhez. A rendszeres frissítések közé tartoznak a legújabb alverziófrissítések és biztonsági javítások mind a Functions-futtatókörnyezethez, mind a nyelvekhez. 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át. További információkért lásd: Egyéni tárolók karbantartása.
A helyi tárolóalapú függvényalkalmazás parancssorból való létrehozásának és a lemezkép tárolóregisztrációs adatbázisban való közzétételének teljes példáját lásd: Függvényalkalmazás létrehozása helyi Linux-tárolóban.
A Dockerfile létrehozása
A Functions eszközkészlet egy Docker-opciót biztosít, amely létrehoz egy Dockerfile-t a függvénykód projekted számára. Ezzel a fájllal a Dockerrel létrehozhatja a függvényeket egy olyan tárolóban, amely a megfelelő alaprendszerképből származik, amely tartalmazza a nyelvet és a verziót.
A Dockerfile létrehozásának módja a project létrehozásának módjától függ.
Ha Azure Functions Core Tools használatával hoz létre függvényprojektet, a
--dockerparancs futtatásakor adja meg azfunc initopciót, ahogyan az alábbi példában is látható:func init --dockerÖn egy Dockerfile-t is hozzáadhat egy meglévő projekthez a
--docker-onlyopció használatával, amikor afunc initparancsot futtatja egy meglévő projekt mappájában, az alábbi példában látható módon:func init --docker-only
Teljes példáért lásd: Függvényalkalmazás létrehozása helyi Linux-tárolóban.
Egyéni Dockerfile létrehozása
A létrehozott Dockerfile használata helyett manuálisan is létrehozhat egyet, ha nagyobb vezérlésre van szüksége a tárolólemezkép felett. Az adattár egyéni tárolómappája a azure-functions-docker következő sablonokat tartalmazza az első lépésekhez:
| Template | Description |
|---|---|
| template.Dockerfile | Megjegyzéssel ellátott, részletes útmutató egyéni tároló létrehozásához. Útmutatást tartalmaz több nyelvi futtatókörnyezethez (Java, .NET izolált, Node.js, PowerShell, Python), opcionális hitelesítésszolgáltatói tanúsítvány telepítéséhez, nem gyökérfelhasználóként való futtatáshoz és az SSH kudu-hibakereséshez való engedélyezéséhez. |
| sample.Dockerfile | Egy használatra kész példa a sablonból, amely létrehoz egy Java-alapú Azure Functions-tárolót, amelyen engedélyezve van az SSH a Kudu hibakereséséhez. |
Hozza létre a függvényalkalmazását egy tárolóban
Ha a kódprojektben van egy Functions által generált Docker-fájl, a Dockerrel létrehozhatja a konténerizált függvényalkalmazást a helyi számítógépen. A következő docker build parancs létrehoz egy képet a projektben található konténerizált függvényekről a helyi könyvtárban.
docker build --tag <DOCKER_ID>/<IMAGE_NAME>:v1.0.0 .
A tároló létrehozásának módjáról a tároló lemezképének összeállítása és helyi ellenőrzése című témakörben talál példát.
Rendszerkép frissítése a beállításjegyzékben
Ha módosítja a függvénykód-projektet, vagy frissítenie kell a legújabb alaprendszerképet, építse újra a konténert helyileg. Tegye közzé újra a frissített lemezképet a kiválasztott tárolóregisztrációs adatbázisba. Az alábbi parancs újraépíti a rendszerképet a gyökérmappából egy frissített verziószámmal, és leküldi a beállításjegyzékbe:
az acr build --registry <REGISTRY_NAME> --image <LOGIN_SERVER>/azurefunctionsimage:v1.0.1 .
A <REGISTRY_NAME>-t cserélje le a Container Registry-példányra és a <LOGIN_SERVER>-t a bejelentkezési kiszolgáló nevére.
Frissítsen egy meglévő üzembe helyezést az új rendszerkép használatához. A függvényalkalmazást frissítheti az új rendszerkép használatára a Azure CLI vagy a
az functionapp config container set --image <IMAGE_NAME> --registry-password <SECURE_PASSWORD>--registry-username <USER_NAME> --name <APP_NAME> --resource-group <RESOURCE_GROUP>
Ebben a példában <IMAGE_NAME> az új képfájl teljes neve a verzióval együtt. A magánregisztrációs adatbázisokhoz felhasználónevet és jelszót kell megadnia. Ezeket a hitelesítő adatokat biztonságosan tárolja.
Érdemes megfontolnia a folyamatos üzembe helyezés engedélyezését is.
Konténerizált függvényalkalmazás létrehozása az Azure portálon
Amikor függvényalkalmazást hoz létre a Azure portal, a függvényalkalmazást egy tárolóregisztrációs adatbázisban lévő rendszerképből telepítheti. A tárolóalapú függvényalkalmazások tárolóregisztrációs adatbázisban való létrehozásáról a függvényalkalmazás tárolóban való létrehozása című témakörben olvashat.
Az alábbi lépések létrehoznak és üzembe helyeznek egy meglévő tárolóalapú függvényalkalmazást egy tárolóregisztrációs adatbázisból.
A Azure portal menüben vagy a Home lapon válassza az Erőforrás létrehozása lehetőséget.
Az Új lapon válassza a Web>Functions alkalmazás lehetőséget.
A Select a hosting option (Tárhely kiválasztása) területen válassza a Functions PremiumSelect (Prémium >szintű funkciók kiválasztása) lehetőséget.
Ez a művelet létrehoz egy Azure Functions által üzemeltetett függvényalkalmazást a Premium tervben, amely támogatja a dinamikus skálázást. Dönthet úgy is, hogy App Service tervben futtat, de ebben a dedikált csomagban a függvényalkalmazás scalingját kell kezelnie.
Az Alapok lapon használja a függvényalkalmazás beállításait az alábbi táblázatban megadott módon:
Setting Ajánlott érték Description Subscription Az Ön előfizetése Az előfizetés, amelyben a függvényalkalmazást létrehozza. Forráscsoport myResourceGroup Annak az új erőforráscsoportnak a neve, amelyben a függvényalkalmazást létrehozza. Létre kell hoznia egy erőforráscsoportot, mert a meglévő erőforráscsoportban lévő új függvényalkalmazások létrehozásakor ismert korlátozások vannak érvényben. Függvényalkalmazás neve Egy alkalmazás neve Az új függvényalkalmazást azonosító név. Az érvényes karakterek az a-z(kis- és nagybetűk megkülönböztetése nélkül)0-9és az-.Biztonságos egyedi alapértelmezett hosztnév Enabled Engedélyezze ezt a funkciót, hogy ne kelljen aggódnia a tartománynév ütközései miatt, függetlenül az alkalmazás nevétől. Kódot vagy tárolórendszerképet szeretne üzembe helyezni? Konténer kép Tárolóba helyezett függvényalkalmazás üzembe helyezése egy regisztrárból. Ha függvényalkalmazást szeretne létrehozni a beállításjegyzékben, olvassa el a Függvényalkalmazás létrehozása helyi Linux-tárolóban című témakört. Region Előnyben részesített régió Válasszon ki egy régiót, amely az Ön közelében van, vagy olyan szolgáltatások közelében, amelyeket a függvények elérhetnek. Linux-terv Új csomag (alapértelmezett) Létrehoz egy új Prémium csomagot az alkalmazás üzemeltetéséhez. Választhat egy meglévő prémium csomagot is. Tarifacsomag Elastic Prémium EP1 EP1a legkedvezőbb csomag. Igény szerint nagyobb csomagot is választhat.Zóna redundancia Disabled Nincs szüksége erre a funkcióra egy nem gyártási alkalmazásban. Fogadja el az új storage fiók létrehozásának alapértelmezett beállításait a Storage lapon, valamint egy új Application Insight-példányt a Monitoring lapon. Választhat egy meglévő storage-fiókot vagy Application Insights-példányt is.
Válassza a Review + létrehozás lehetőséget az alkalmazáskonfiguráció kiválasztásának áttekintéséhez.
A Véleményezés + létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget a függvényalkalmazás alapértelmezett alaprendszerkép használatával történő kiépítéséhez.
A függvényalkalmazás-erőforrás létrehozása után válassza az Ugrás az erőforrásra lehetőséget. A függvényalkalmazás lapján válassza az Üzembe helyezési központ lehetőséget.
Az Üzembe helyezési központban csatlakoztathatja a tárolóregisztrációs adatbázist a rendszerkép forrásaként. A GitHub Actions vagy az Azure Pipelines is engedélyezhető a tároló frissítéseinek robusztusabb folyamatos telepítésére a regisztrárban.
Konténerizált függvényalkalmazás létrehozása az Azure portálon
Amikor létrehoz egy Container Apps által üzemeltetett függvényalkalmazást a Azure portal, beállíthatja, hogy a függvényalkalmazást egy tárolóregisztrációs adatbázisban lévő rendszerképből telepítse. A tárolóalapú függvényalkalmazások tárolóregisztrációs adatbázisban való létrehozásáról a függvényalkalmazás tárolóban való létrehozása című témakörben olvashat.
Az alábbi lépések létrehoznak és üzembe helyeznek egy meglévő tárolóalapú függvényalkalmazást egy tárolóregisztrációs adatbázisból.
A Azure portal menüben vagy a Home lapon válassza az Erőforrás létrehozása lehetőséget.
Az Új lapon válassza a Web>Functions alkalmazás lehetőséget.
A Tárhely opció kiválasztása alatt válassza a Tárolóalkalmazások környezete lehetőséget, majd kattintson a > gombra.
Az Alapok lapon használja a függvényalkalmazás beállításait az alábbi táblázatban megadott módon:
Setting Ajánlott érték Description Subscription Az Ön előfizetése Az előfizetés, amelyben a függvényalkalmazást létrehozza. Forráscsoport myResourceGroup Annak az új erőforráscsoportnak a neve, amelyben a függvényalkalmazást létrehozza. Létre kell hoznia egy erőforráscsoportot, mert a meglévő erőforráscsoportban lévő új függvényalkalmazások létrehozásakor ismert korlátozások vannak érvényben. Függvényalkalmazás neve Egyedi név* Az új függvényalkalmazást azonosító név. Az érvényes karakterek az a-z(kis- és nagybetűk megkülönböztetése nélkül)0-9és az-.Region Előnyben részesített régió Válasszon ki egy régiót, amely az Ön közelében van, vagy olyan szolgáltatások közelében, amelyeket a függvények elérhetnek. *Az alkalmazás nevének egyedinek kell lennie a Azure Container Apps környezetben.
Továbbra is a Basics lapon fogadja el a javasolt új környezetet Azure Container Apps környezethez. A költségek minimalizálása érdekében az új alapértelmezett környezet a Használat + Dedikált-ban jön létre, alapértelmezett számítási feladatprofillal és zónaredundancia nélkül. További információért lásd az Azure Functions Azure Container Apps általi üzemeltetését.
Egy meglévő Container Apps-környezetet is használhat. Egyéni környezet létrehozásához válassza az Új létrehozása lehetőséget. A Container Apps-környezet létrehozása lapon hozzáadhat nem megbízható számítási feladatprofilokat, vagy engedélyezheti a zónaredundanciát. A környezetekről a Azure Container Apps környezetek című témakörben olvashat.
Válassza a Tároló fület, és törölje a Gyorsindítási kép használata opciót. Ellenkező esetben a függvényalkalmazás a függvényalkalmazás nyelvének alaprendszerképéből lesz üzembe helyezve.
Válassza ki a nyilvános vagy privát képtípust. Válassza a Private lehetőséget, ha Azure Container Registry vagy más privát beállításjegyzéket használ. Adja meg a rendszerkép nevét, beleértve a regisztrációs adatbázis előtagját is. Ha privát regisztrációs adattárat használ, adja meg a képadattár hitelesítő adatait. A Public beállítás csak a Docker Hub nyilvánosan tárolt képeket támogatja.
A Tárolóerőforrás-kiosztás területen válassza ki a kívánt processzormagok számát és a rendelkezésre álló memóriát. Ha a környezethez más számításiprofilok is hozzáadva vannak, választhat egy nem megfelelő számítási feladatprofilt. Az ezen a lapon szereplő lehetőségek hatással vannak az alkalmazás üzemeltetésének költségeire. A lehetséges költségek becsléséhez tekintse meg a Container Apps díjszabási oldalát.
Válassza a Review + létrehozás lehetőséget az alkalmazáskonfiguráció kiválasztásának áttekintéséhez.
A Véleményezés + létrehozás lapon tekintse át a beállításokat, majd válassza a Létrehozás lehetőséget a függvényalkalmazás kiépítéséhez és a tárolólemezkép beállításjegyzékből való üzembe helyezéséhez.
Képek kezelése az Azure Functions-ben
Amikor a függvényalkalmazás tárolója egy beállításjegyzékből van üzembe helyezve, a Functions megőrzi a forráslemezkép adatait.
Az alábbi parancsokkal adatokat kérhet le a rendszerképről, vagy módosíthatja a használt központi telepítési lemezképet:
az functionapp config container show: az üzembe helyezéshez használt rendszerkép adatait adja vissza.az functionapp config container set: módosítsa a beállításjegyzék beállításait, vagy frissítse az üzembe helyezéshez használt rendszerképet az előző példában látható módon.
A Container Apps számítási feladatprofiljainak használata
A számítási feladatok profiljai a Container Apps funkciói, amelyekkel jobban szabályozhatja az üzembehelyezési erőforrásokat. Az Azure Functions az Azure Container Appsben is támogatja a számítási feladatprofilokat. További információért lásd: Az Azure Container Apps terhelési profiljai.
Az alkalmazáshoz lefoglalt processzor- és memóriaerőforrások mennyiségét is beállíthatja.
A számítási feladatprofilokat és az erőforrás-foglalásokat a Azure CLI vagy a Azure portal használatával is létrehozhatja és kezelheti.
A tárolóalkalmazás-környezet létrehozásakor engedélyezheti a számítási feladatok profiljait. Példa: Tárolóalkalmazás létrehozása profilban.
Profilokat adhat hozzá, szerkeszthet és törölhet a környezetében. Példa: Profilok hozzáadása.
Amikor olyan környezetben hoz létre tárolóalapú függvényalkalmazást, amelyben engedélyezve vannak a számítási feladatok profiljai, meg kell adnia azt a profilt is, amelyben futtatni szeretné. Adja meg a profilt a --workload-profile-name parancs az functionapp create paraméterével, az alábbi példához hasonlóan:
az functionapp create --name <APP_NAME> --storage-account <STORAGE_NAME> --environment MyContainerappEnvironment --resource-group AzureFunctionsContainers-rg --functions-version 4 --runtime <LANGUAGE_STACK> --image <IMAGE_URI> --workload-profile-name <PROFILE_NAME> --cpu <CPU_COUNT> --memory <MEMORY_SIZE>
A az functionapp create parancsban a --environment paraméter határozza meg a Container Apps környezetet, a --image paraméter pedig a függvényalkalmazáshoz használni kívánt képet. Ebben a példában cserélje le a <STORAGE_NAME> a storage-fiók előző szakaszában használt névre. A környezetben cserélje le a <APP_NAME>-t egy olyan névre, amely az Ön számára megfelelő és egyedi.
Az alkalmazáshoz lefoglalt erőforrások beállításához cserélje le <CPU_COUNT> a kívánt virtuális CPU-k számát, legalább 0,5-ös értékre a profil által megengedett maximális értékig. Ehhez <MEMORY_SIZE>válasszon egy dedikált memóriamennyiséget 1 GB-tól a profil által megengedett maximális értékig.
A az functionapp container set paranccsal kezelheti a lefoglalt erőforrásokat és az alkalmazás által használt számítási feladatprofilt.
az functionapp container set --name <APP_NAME> --resource-group AzureFunctionsContainers-rg --workload-profile-name <PROFILE_NAME> --cpu <CPU_COUNT> --memory <MEMORY_SIZE>
Alkalmazásbeállítások használata
Azure Functions lehetővé teszi a tárolóalapú függvényalkalmazások alkalmazásbeállításainak szabványos módon történő alkalmazását. További információ: Az alkalmazásbeállítások használata.
Tip
Alapértelmezés szerint egy tárolóalapú függvényalkalmazás figyeli a 80-at a bejövő kérések esetében. Ha az alkalmazásnak másik portot kell használnia, az WEBSITES_PORT alkalmazásbeállítással módosítsa ezt a portot.
Az Azure platformon történő folyamatos telepítés engedélyezése
Ha a tárolóalapú függvényalkalmazást Azure Container Apps üzemelteti, kétféleképpen állíthat be folyamatos üzembe helyezést egy forráskódtárból:
Jelenleg nem tudja folyamatosan üzembe helyezni a tárolókat a tárolóregisztrációs adatbázisban lévő rendszerképváltozások alapján. Ehelyett ezeket a forráskódalapú folyamatos üzembe helyezési pipelines kell használnia.
Az Azure platformon történő folyamatos telepítés engedélyezése
Important
A Webhook-alapú üzembe helyezés jelenleg nem támogatott, ha rugalmas prémium csomagban futtatja a tárolót. Ha az ebben a szakaszban ismertetett folyamatos üzembe helyezési módszert kell használnia, helyezze üzembe a tárolót egy App Service csomagban. Rugalmas Premium Planban futó alkalmazásnál manuálisan kell újraindítania az alkalmazást, valahányszor frissítéseket végez a konténeren az adattárban.
A forráskódtárból való folyamatos üzembe helyezést Azure Pipelines vagy GitHub Actions használatával is konfigurálhatja.
Engedélyezheti, hogy az Azure Functions automatikusan frissítse egy kép központi telepítését, amikor frissíti a képet a regisztrációs adatbázisban.
- A folyamatos üzembe helyezés engedélyezéséhez és a webhook URL-címének lekéréséhez használja a következő parancsot:
az functionapp deployment container config --enable-cd --query CI_CD_URL --output tsv --name <APP_NAME> --resource-group AzureFunctionsContainers-rg
A az functionapp deployment container config parancs lehetővé teszi a folyamatos üzembe helyezést, és visszaadja az üzembehelyezési webhook URL-címét. Ezt az URL-címet bármikor lekérheti a az functionapp deployment container show-cd-url paranccsal.
A korábbiakhoz hasonlóan cserélje le <APP_NAME> a függvényalkalmazás nevét.
Másolja az üzembehelyezési webhook URL-címét a vágólapra.
Nyissa meg Docker Hub, jelentkezzen be, és válassza a navigációs sávon a Repositories lehetőséget. Keresse meg és jelölje ki a képet, válassza a Webhookok lapot, adjon meg egy webhooknevet, illessze be az URL-címet a Webhook URL-címbe, majd válassza a Létrehozás lehetőséget.
A képernyőkép, amely megmutatja, hogyan lehet a webhookot hozzáadni a Docker Hub ablakban.
A webhook beállításával az Azure Functions újra telepíti a képet, valahányszor frissíti a Docker Hub.
SSH-kapcsolatok engedélyezése
Az SSH lehetővé teszi a tároló és az ügyfél közötti biztonságos kommunikációt. Ha az SSH engedélyezve van, az App Service speciális eszközeivel (Kudu) csatlakozhat a tárolóhoz. A tárolóval való egyszerű SSH-kapcsolat érdekében Azure Functions egy olyan alaprendszerképet biztosít, amelyen már engedélyezve van az SSH. Csak szerkesztenie kell a Dockerfile-t, majd újra kell építenie és újra kell üzembe helyeznie a képet. Ezután a Speciális eszközök (Kudu) segítségével csatlakozhat a tárolóhoz.
A Dockerfile-ban csatolja a karakterláncot
-appservicea kiinduló képhez azFROMutasításban, ahogyan az alábbi példában látható.FROM mcr.microsoft.com/azure-functions/node:4-node18-appserviceEz a példa a Node.js 18-es verziójú alaprendszerkép SSH-kompatibilis verzióját használja. Keresse fel a Azure Functions alaprendszerkép repóját, hogy ellenőrizze, az SSH-vel engedélyezett alaprendszerkép legújabb verzióját használja-e.
A
docker buildparanccsal újraépítheti a képet, cserélje le a<DOCKER_ID>a Docker Hub fiókazonosítójára, ahogyan az alábbi példában is látható.docker build --tag <DOCKER_ID>/azurefunctionsimage:v1.0.0 .A frissített kép leküldése Docker Hub, ami jelentősen kevesebb időt vesz igénybe, mint az első leküldés. Most csak a kép frissített szegmenseit kell feltölteni.
docker push <DOCKER_ID>/azurefunctionsimage:v1.0.0Azure Functions automatikusan újratelepíti a képfájlt a függvényalkalmazásodban. A folyamat kevesebb mint egy perc alatt zajlik le.
A Azure portal keresse meg a függvényalkalmazást. A bal oldali menüben válassza a Development Tools>SSH lehetőséget. Válassza az Indít elemet. A csatlakozás eltarthat néhány percig, ha Azure még frissíti a tárolórendszerképet.
Miután létrejött a kapcsolat a tárolóval, futtassa a
topparancsot az aktuálisan futó folyamatok megtekintéséhez.
Kapcsolódó tartalom
Az alábbi cikkek további információt nyújtanak a tárolók üzembe helyezéséről és kezeléséről:
Azure Functions üzemeltetése az Azure Container Apps-ban - Azure Functions az Azure Container Apps-ban: áttekintés
- Használja az Azure Functions-t az Azure Container Apps-ben
- Azure Functions üzemeltetési lehetőségek
- Azure Functions Kubernetes alatt