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 azt ismerteti, hogyan helyezheti üzembe a függvényalkalmazás projektfájljait az Azure-ban egy .zip (tömörített) fájlból. Megtudhatja, hogyan hajthat végre leküldéses üzembe helyezést az Azure CLI és a REST API-k használatával. Az Azure Functions Core Tools ezeket az üzembehelyezési API-kat is használja egy helyi projekt Azure-ban való közzétételekor.
A zip-telepítéssel egyszerűen futtathatja a függvényeket egy csomagfájlból az Azure-ban. Ez az alapértelmezett üzembehelyezési technológia a Consumption, Elastic Premium és Dedikált (App Service) üzemeltetési csomagokban. A Rugalmas használat csomag nem támogatja a zip-alapú üzembe helyezést.
Az Azure Functions a Azure-alkalmazás Szolgáltatás által biztosított folyamatos üzembe helyezési és integrációs lehetőségek teljes skáláját kínálja. További információ: Folyamatos üzembe helyezés az Azure Functionsben.
A fejlesztés felgyorsítása érdekében egyszerűbben helyezheti üzembe a függvényalkalmazás projektfájljait közvetlenül egy .zip fájlból. A .zip üzembehelyezési API egy .zip fájl tartalmát veszi át, és kinyeri a tartalmat a wwwroot függvényalkalmazás mappájába. Ez a .zip fájltelepítés ugyanazt a Kudu szolgáltatást használja, amely a folyamatos integráción alapuló központi telepítéseket működteti, beleértve a következőket:
- A korábbi üzemelő példányokból hátrahagyott fájlok törlése.
- Az üzembe helyezés testreszabása, beleértve az üzembehelyezési szkriptek futtatását is.
- Üzembehelyezési naplók.
- A függvény eseményindítóinak szinkronizálása egy Használati terv függvényalkalmazásban.
További információ: .zip üzembe helyezési referencia.
Fontos
Ha .zip csomag telepítést használ, az előző üzembe helyezésből származó fájlok törlődnek vagy frissülnek a funkcióalkalmazás későbbi telepítése során. A függvényalkalmazás egyéb fájljai és könyvtárai is megmaradnak, amelyek nem tartoztak az előző üzembe helyezéshez.
Üzembe helyezési .zip fájlkövetelmények
Az üzembe helyezendő zip-archívumnak tartalmaznia kell a függvényalkalmazás futtatásához szükséges összes fájlt. A Functions-projektmappák tartalmából manuálisan is létrehozhat zip-archívumot beépített .zip tömörítési funkcióval vagy nem Microsoft-eszközökkel.
Az archívumnak tartalmaznia kell a kibontott mappa gyökerében található host.json fájlt. A függvényalkalmazáshoz kijelölt nyelvi verem más követelményeket is létrehoz:
- .NET (izolált feldolgozói modell)
- .NET (folyamatban lévő modell)
- Jáva
- JavaScript
- TypeScript
- PowerShell
- Piton
Fontos
Azon nyelvek esetén, amelyek fordított kimenetet hoznak létre üzembe helyezés céljából, ügyeljen arra, hogy a közzétenni tervezett kimeneti mappa tartalmát tömörítse, és ne az egész projektmappát. Amikor a Functions kinyeri a zip archívum tartalmát, a host.json fájlnak a csomag gyökerében kell lennie.
A zip üzembe helyezési folyamat kinyeri a zip archívum fájljait és mappáit a wwwroot címtárban. Ha az archívum létrehozásakor a szülőkönyvtárat is belefoglalja, a rendszer nem fogja megtalálni a várt fájlokat.wwwroot
Üzembe helyezés az Azure CLI-vel
Az Azure CLI-vel push telepítést indíthat el. Telepítsen egy .zip fájlt a függvényalkalmazásába az az functionapp deployment source config-zip parancs használatával. A parancs használatához az Azure CLI 2.0.21-es vagy újabb verzióját kell használnia. A parancs használatával az --version megtekintheti, hogy milyen Azure CLI-verziót használ.
Az alábbi parancsban cserélje le a <zip_file_path> helyőrzőt a .zip fájl helyének elérési útjára. Cserélje le <app_name> a függvényalkalmazás egyedi nevére is, és cserélje le <resource_group> az erőforráscsoport nevére.
az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>
Ez a parancs a letöltött .zip fájlból telepíti a projektfájlokat az Azure-beli függvényalkalmazásba. Ezután újraindítja az alkalmazást. A függvényalkalmazás üzemelő példányainak listájának megtekintéséhez a REST API-kat kell használnia.
Ha az Azure CLI-t használja a helyi számítógépen, <zip_file_path> a számítógépen található .zip fájl elérési útja. Az Azure CLI-t az Azure Cloud Shellben is futtathatja. A Cloud Shell használatakor először fel kell töltenie az üzembe helyezési .zip fájlt a Cloud Shellhez társított Azure Files-fiókba. Ebben az esetben <zip_file_path> a Cloud Shell-fiók által használt tárolási hely. További információ: Fájlok megőrzése az Azure Cloud Shellben.
ZIP-fájl üzembe helyezése REST API-kkal
Az üzembehelyezési szolgáltatás REST API-kkal üzembe helyezheti a .zip fájlt az azure-beli alkalmazásában. Az üzembe helyezéshez küldjön egy POST-kérést a címre https://<app_name>.scm.azurewebsites.net/api/zipdeploy. A POST-kérelemnek tartalmaznia kell az üzenet törzsében található .zip fájlt. Az alkalmazás üzembehelyezési hitelesítő adatai a kérelemben alapszintű HTTP-hitelesítéssel vannak megadva. További információért lásd: .zip push telepítési referencia.
A HTTP BASIC hitelesítéshez az App Service üzembehelyezési hitelesítő adataira van szüksége. Az üzembehelyezési hitelesítő adatok beállításáról a felhasználói szintű hitelesítő adatok beállítása és alaphelyzetbe állítása című témakörben olvashat.
A cURL használatával
Az alábbi példa a cURL eszközt használja egy .zip-fájl üzembe helyezéséhez. Cserélje le a helyőrzőket <deployment_user>, <zip_file_path>és <app_name>. Amikor a cURL kéri, írja be a jelszót.
curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy
Ez a kérés leküldéses telepítést indít el a feltöltött .zip fájlból. Megtekintheti az aktuális és korábbi telepítéseket a https://<app_name>.scm.azurewebsites.net/api/deployments végpont használatával, ahogyan az az alábbi cURL-példában látható. Cserélje le ismét a <app_name> helyét az alkalmazás nevére és a <deployment_user> helyét az üzembehelyezési hitelesítő adatok felhasználónevére.
curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments
Aszinkron zip-telepítés
A szinkron üzembe helyezés során előfordulhat, hogy a kapcsolat időtúllépésével kapcsolatos hibák jelentkeznek. Adja hozzá ?isAsync=true az URL-címet az aszinkron üzembe helyezéshez. Miután a zip-fájlt feltöltötte, kap egy válasz, amely Location fejlécet tartalmaz, ami a lekérdezhető üzembehelyezési állapot URL-címére mutat. A fejlécben Location megadott URL-cím lekérdezésekor HTTP 202 (elfogadva) választ kap, amíg a folyamat folyamatban van, és egy HTTP 200 (OK) választ kap az archívum kibontása és az üzembe helyezés sikeres befejezése után.
Microsoft Entra hitelesítés
A HTTP BASIC-hitelesítés zip-telepítéshez való használatának alternatíva a Microsoft Entra-identitás használata. A Microsoft Entra-identitásra akkor lehet szükség, ha az SCM-webhely HTTP BASIC-hitelesítése le van tiltva.
Érvényes Microsoft Entra hozzáférési jogkivonatra van szükség az üzembe helyezést végrehajtó felhasználó vagy szolgáltatásnév számára. A hozzáférési jogkivonat az Azure CLI parancsával az account get-access-token kérhető le. A hozzáférési jogkivonat a HTTP POST-kérelem hitelesítési fejlécében használatos.
curl -X POST \
--data-binary "@<zip_file_path>" \
-H "Authorization: Bearer <access_token>" \
"https://<app_name>.scm.azurewebsites.net/api/zipdeploy"
PowerShell-lel
Az alábbi példa a Publish-AzWebappot használja a .zip fájl feltöltésére. Cserélje le a helyőrzőket <group-name>, <app-name>és <zip-file-path>.
Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>
Ez a kérés leküldéses telepítést indít el a feltöltött .zip fájlból.
Az aktuális és a korábbi telepítések áttekintéséhez futtassa az alábbi parancsokat. Cserélje le ismét a <deployment-user>, <deployment-password> és <app-name> helyőrzőket.
$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET
Üzembe helyezés ARM-sablonnal
A ZipDeploy ARM-sablonbővítménnyel leküldheti a .zip fájlt a függvényalkalmazásba.
Például a ZipDeploy ARM-sablon
Ez a sablon tartalmaz egy éles és egy tesztelési környezetet, és üzembe helyezhető valamelyikben. Általában ezzel a sablonnal telepítheti az előkészítési ponton, majd felcserélheti az új zip-csomagot az éles ponton.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"appServiceName": {
"type": "string"
},
"deployToProduction": {
"type": "bool",
"defaultValue": false
},
"slot": {
"type": "string",
"defaultValue": "staging"
},
"packageUri": {
"type": "secureString"
}
},
"resources": [
{
"condition": "[parameters('deployToProduction')]",
"type": "Microsoft.Web/sites/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
},
{
"condition": "[not(parameters('deployToProduction'))]",
"type": "Microsoft.Web/sites/slots/extensions",
"apiVersion": "2021-02-01",
"name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
"properties": {
"packageUri": "[parameters('packageUri')]",
"appOffline": true
}
}
]
}
A kezdeti üzembe helyezéshez közvetlenül az éles ponton kell üzembe helyeznie. További információ: Ponttelepítések.
Függvények futtatása az üzembehelyezési csomagból
A függvényeket közvetlenül az üzembehelyezési csomagfájlból is futtathatja. Ez a módszer kihagyja a fájlok csomagból wwwroot a függvényalkalmazás könyvtárába való másolásának üzembe helyezési lépését. Ehelyett a Functions-futtatókörnyezet csatolja a csomagfájlt, így a wwwroot könyvtár tartalma írásvédetté válik.
A Zip üzembe helyezése ezzel a funkcióval integrálható, amelyet a függvényalkalmazás értékének WEBSITE_RUN_FROM_PACKAGE1beállításával engedélyezheti. További információ: A függvények futtatása üzembehelyezési csomagfájlból.
Üzembe helyezés testreszabása
Az üzembe helyezési folyamat feltételezi, hogy a leküldéses .zip fájl egy használatra kész alkalmazást tartalmaz. Alapértelmezés szerint nem futnak testreszabások. A folyamatos integrációval rendelkező buildfolyamatok engedélyezéséhez adja hozzá az alábbiakat az alkalmazásbeállításokhoz:
SCM_DO_BUILD_DURING_DEPLOYMENT=true
Ha .zip leküldéses üzembe helyezést használ, ez a beállítás alapértelmezés szerint hamis . Az alapértelmezett érték igaz a folyamatos integrációs üzembe helyezések esetén. Ha igazra van állítva, a rendszer az üzembe helyezéshez kapcsolódó beállításokat használja. Ezeket a beállításokat alkalmazásbeállításokként vagy a .zip fájl gyökerében található .deployment konfigurációs fájlban konfigurálhatja. További információ: Adattár és üzembe helyezéssel kapcsolatos beállítások az üzembe helyezési referenciaban.
A függvényalkalmazás fájljainak letöltése
Ha a függvényeket az Azure Portal szerkesztőjével hozta létre, a meglévő függvényalkalmazás-projektet az alábbi módokon töltheti le .zip fájlként:
Az Azure portálon:
Jelentkezzen be az Azure Portalra, majd nyissa meg a függvényalkalmazást.
Az Áttekintés lapon válassza az Alkalmazástartalom letöltése lehetőséget. Válassza ki a letöltési beállításokat, majd válassza a Letöltés lehetőséget.
A letöltött .zip fájl a megfelelő formátumban van, amelyet újra közzé kell tenni a függvényalkalmazásban .zip leküldéses üzembe helyezés használatával. A portál letöltése a függvényalkalmazás közvetlenül a Visual Studióban való megnyitásához szükséges fájlokat is hozzáadhatja.
REST API-k használata:
A következő üzembe helyezési GET API-val töltse le a fájlokat a
<function_app>projektből:https://<function_app>.scm.azurewebsites.net/api/zip/site/wwwroot/Annak biztosítása érdekében, hogy a zip-fájl csak a függvényalkalmazás projektfájljait tartalmazza, ne pedig az egész webhelyet, vegye bele a
/site/wwwroot/elemet. Ha még nem jelentkezett be az Azure-ba, a rendszer erre kéri.
Egy .zip fájlt is letölthet egy GitHub-adattárból. Amikor letölt egy GitHub-adattárat .zip fájlként, a GitHub hozzáad egy további mappaszintet az ághoz. Ez az extra mappaszint azt jelenti, hogy nem helyezheti üzembe közvetlenül a .zip fájlt, amikor letöltötte a GitHubról. Ha GitHub-adattárat használ a függvényalkalmazás karbantartásához, az alkalmazás üzembe helyezéséhez folyamatos integrációt kell használnia.