Spuštění Azure Functions ze souboru balíčku

V Azure můžete funkce spouštět přímo ze souboru balíčku pro nasazení v aplikaci funkcí. Druhou možností je nasadit soubory do adresáře d:\home\site\wwwroot vaší aplikace funkcí.

Tento článek popisuje výhody spouštění funkcí z balíčku. Také ukazuje, jak tuto funkci povolit v aplikaci funkcí.

Výhody spuštění souboru balíčku

Spuštění souboru balíčku má několik výhod:

  • Snižuje riziko problémů se zamykáním kopírování souborů.
  • Je možné nasadit do produkční aplikace (s restartováním).
  • Můžete si být jistí, které soubory jsou ve vaší aplikaci spuštěné.
  • Vylepšuje výkon Azure Resource Manager nasazení.
  • Může zkrátit dobu studeného startu, zejména u funkcí JavaScriptu s velkými stromy balíčků npm.

Další informace najdete v tomto oznámení.

Povolení spouštění funkcí z balíčku

Pokud chcete aplikaci funkcí povolit spouštění z balíčku, stačí do nastavení aplikace WEBSITE_RUN_FROM_PACKAGE funkcí přidat nastavení. Nastavení WEBSITE_RUN_FROM_PACKAGE může mít jednu z následujících hodnot:

Hodnota Popis
1 Doporučeno pro aplikace funkcí spuštěné na Windows. Spusťte příkaz ze souboru balíčku ve d:\home\data\SitePackages složce vaší aplikace funkcí. Pokud se nenasazovat pomocí souboru zip deploy, tato možnost vyžaduje, aby složka také měl soubor s názvem packagename.txt . Tento soubor obsahuje pouze název souboru balíčku ve složce bez mezer.
<URL> Umístění konkrétního souboru balíčku, který chcete spustit. Když zadáte adresu URL, musíte také synchronizovat triggery po publikování aktualizovaného balíčku.
Při použití úložiště objektů blob byste obvykle neměli používat veřejný objekt blob. Místo toho použijte privátní kontejner se sdíleným přístupový podpisem (SAS) nebo použijte spravovanou identitu, abyste modulu runtime služby Functions umožnili přístup k balíčku. K nahrání souborů Průzkumník služby Azure Storage do účtu úložiště objektů blob můžete použít následující soubor.

Upozornění

Při spuštění aplikace funkcí v Windows, výsledkem možnosti externí adresy URL je horší výkon studeného startu. Při nasazování aplikace funkcí do Windows byste měli nastavit a WEBSITE_RUN_FROM_PACKAGE 1 publikovat s nasazením souboru ZIP.

Následující příklad ukazuje aplikaci funkcí nakonfigurovanou ke spuštění z .zip hostovaného ve službě Azure Blob Storage:

WEBSITE_RUN_FROM_ZIP nastavení aplikace

Poznámka

V současné době se .zip soubory balíčků.

Načtení balíčku z azure blob Storage s využitím spravované identity

Službu Azure Blob Storage nakonfigurovat tak, aby autorizuje požadavky pomocí Azure AD. To znamená, že místo generování klíče SAS s vypršením platnosti se můžete spoléhat na spravovanou identitu aplikace. Ve výchozím nastavení se použije identita přiřazená systémem aplikace. Pokud chcete zadat identitu přiřazenou uživatelem, můžete nastavit nastavení aplikace WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID na ID prostředku této identity. Nastavení může také jako hodnotu přijmout "SystemAssigned", i když je to stejné jako vynechání nastavení úplně.

Povolení načtení balíčku pomocí identity:

  1. Ujistěte se, že je objekt blob nakonfigurovaný pro privátní přístup.

  2. Udělte identitě roli čtenáře Storage objektů blob s oborem nad objektem blob balíčku. Podrobnosti o vytvoření přiřazení role najdete v tématu Přiřazení role Azure pro přístup k datům objektů blob.

  3. Nastavte WEBSITE_RUN_FROM_PACKAGE aplikaci na adresu URL objektu blob balíčku. Bude to pravděpodobně ve tvaru "https://{název-účtu-úložiště}.blob.core.windows.net/{název-kontejneru}/{cesta k balíčku}" nebo podobné.

Integrace s nasazením souboru ZIP

Nasazení souboru ZIP je funkce Azure App Service která umožňuje nasadit projekt aplikace funkcí do wwwroot adresáře. Projekt je zabalený jako soubor .zip nasazení. K nasazení balíčku do složky je možné použít stejná d:\home\data\SitePackages rozhraní API. S hodnotou nastavení aplikace rozhraní API pro nasazení souboru ZIP zkopírují váš balíček do složky místo WEBSITE_RUN_FROM_PACKAGE 1 d:\home\data\SitePackages extrahování souborů do d:\home\site\wwwroot . Vytvoří také packagename.txt soubor . Po restartování se balíček připojí jako systém souborů wwwroot jen pro čtení. Další informace o nasazení souboru ZIP najdete v tématu Nasazení souboru ZIP pro Azure Functions.

Poznámka

Když dojde k nasazení, aktivuje se restartování aplikace funkcí. Před restartováním je možné dokončit všechna existující spuštění funkce nebo časový limit. Další informace najdete v tématu Chování nasazení.

Přidání nastavení WEBSITE_RUN_FROM_PACKAGE

Existuje několik způsobů, jak můžete přidat, aktualizovat a odstranit nastavení aplikace Function App:

Změny nastavení aplikace Function App vyžadují restart aplikace Function App.

Příklad pracovního postupu pro ruční nahrání balíčku hostovaného v Azure Storage

Pokud chcete nasadit komprimovaný balíček při použití možnosti adresy URL, musíte vytvořit .zip komprimovaný balíček pro nasazení a nahrát ho do cíle. Tento příklad používá objekt blob Storage kontejneru.

  1. Vytvořte .zip pro svůj projekt pomocí nástroje podle vašeho výběru.

  2. V Azure Portalvyhledejte název svého účtu úložiště nebo ho vyhledejte v účtech úložiště.

  3. V účtu úložiště v části Úložiště dat vyberte Kontejnery.

  4. Vyberte + Kontejner a vytvořte nový kontejner Storage blob ve vašem účtu.

  5. Na stránce Nový kontejner zadejte Název (například Nasazení), ujistěte se, že úroveň veřejného přístupu je Privátní, a vyberte Vytvořit.

  6. Vyberte kontejner, který jste vytvořili, Upload, přejděte do umístění souboru .zip, který jste vytvořili s projektem, a vyberte Upload.

  7. Po dokončení nahrávání zvolte nahraný soubor objektu blob a zkopírujte adresu URL. Pokud identitu nepotřebujete, možná budete muset vygenerovat adresu URL SAS.

  8. Vyhledejte svou aplikaci funkcí nebo ji vyhledejte na stránce Aplikace funkcí.

  9. V aplikaci funkcí vyberte v části Nastavení.

  10. Na kartě Nastavení aplikace vyberte Nové nastavení aplikace.

  11. Zadejte hodnotu pro Název a vložte adresu URL vašeho balíčku do pole Blob WEBSITE_RUN_FROM_PACKAGE Storage jako hodnotu.

  12. Vyberte OK. Potom výběrem > možnosti Uložit pokračovat uložte nastavení a restartujte aplikaci.

Teď můžete funkci spustit v Azure a ověřit, že nasazení proběhlo úspěšně, pomocí balíčku pro nasazení .zip souboru.

Řešení potíží

  • Možnost Spustit z balíčku je jen pro čtení, takže při zápisu souborů do tohoto adresáře se wwwroot zobrazí chyba.
  • Formáty Tar a gzip se nepodporují.
  • Soubor ZIP může mít až 1 GB.
  • Tato funkce není součástí místní mezipaměti.
  • Pokud chcete zvýšit výkon studeného startu, použijte místní možnost Zip ( WEBSITE_RUN_FROM_PACKAGE =1).
  • Spuštění z balíčku je nekompatibilní s možností přizpůsobení nasazení ( ), krok sestavení bude během nasazování SCM_DO_BUILD_DURING_DEPLOYMENT=true ignorován.

Další kroky