Sdílet prostřednictvím


Příručka pro vývojáře Azure Functions

Ve Azure Functions všechny funkce sdílejí některé základní technické koncepty a komponenty bez ohledu na preferovaný jazyk nebo vývojové prostředí. Tento článek je specifický pro jazyk. V horní části článku zvolte preferovaný jazyk.

Tento článek předpokládá, že už jste si přečetli přehled Azure Functions.

Pokud chcete rovnou začít, můžete absolvovat rychlý úvodní kurz pomocí Visual Studio, Visual Studio Code nebo z příkazové výzvy.

Pokud chcete rovnou začít, můžete absolvovat rychlý úvodní kurz pomocí Maven (příkazový řádek), Eclipse, IntelliJ IDEA, Gradle, Quarkus, Spring Cloud, nebo Visual Studio Code.

Pokud chcete rovnou začít, můžete absolvovat rychlý úvodní kurz pomocí Visual Studio Code nebo z příkazové výzvy.

Pokud chcete rovnou začít, můžete absolvovat rychlý úvodní kurz pomocí Visual Studio Code nebo z příkazové výzvy.

Pokud chcete rovnou začít, můžete absolvovat rychlý úvodní kurz pomocí Visual Studio Code nebo z příkazové výzvy.

Pokud chcete rovnou začít, můžete absolvovat rychlý úvodní kurz pomocí Visual Studio Code nebo z příkazové výzvy.

Projekt kódu

Jádrem Azure Functions je projekt kódu specifický pro jazyk, který implementuje jednu nebo více jednotek provádění kódu, které se nazývají functions. Funkce jsou jednoduše metody, které běží v cloudu Azure na základě událostí, v reakci na požadavky HTTP nebo podle plánu. Projekt kódu Azure Functions si můžete představit jako mechanismus pro uspořádání, nasazování a souhrnnou správu jednotlivých funkcí v projektu, když běží v Azure. Další informace najdete v tématu Uspořádání funkcí.

Způsob, jakým rozložíte projekt kódu a jak určíte, které metody v projektu jsou funkcemi, závisí na vývojovém jazyce projektu. Podrobné pokyny pro konkrétní jazyk najdete v příručce pro vývojáře v jazyce C#.

Způsob, jakým rozložíte projekt kódu a jak určíte, které metody v projektu jsou funkcemi, závisí na vývojovém jazyce projektu. Pokyny pro konkrétní jazyk najdete v příručce pro vývojáře Java.

Způsob, jakým rozložíte projekt kódu a jak určíte, které metody v projektu jsou funkcemi, závisí na vývojovém jazyce projektu. Pokyny pro konkrétní jazyk najdete v průvodci Node.js vývojáři.

Způsob, jakým rozložíte projekt kódu a jak určíte, které metody v projektu jsou funkcemi, závisí na vývojovém jazyce projektu. Pokyny pro konkrétní jazyk najdete v příručce pro vývojáře PowerShellu.

Způsob, jakým rozložíte projekt kódu a jak určíte, které metody v projektu jsou funkcemi, závisí na vývojovém jazyce projektu. Pokyny pro konkrétní jazyk najdete v příručce pro vývojáře Python.

Všechny funkce musí mít aktivační událost, která definuje, jak se funkce spustí, a může funkci poskytnout vstup. Funkce můžou volitelně definovat vstupní a výstupní vazby. Tyto vazby zjednodušují připojení k jiným službám, aniž byste museli pracovat s klientskými sadami SDK. Další informace najdete v tématu Azure Functions koncepty triggerů a vazeb.

Azure Functions poskytuje sadu šablon projektů a funkcí specifických pro jazyk, které usnadňují vytváření nových projektů kódu a přidávání funkcí do projektu. K vygenerování nových aplikací a funkcí pomocí těchto šablon můžete použít kterýkoli z nástrojů, které podporují vývoj Azure Functions.

Vývojářské nástroje

Následující nástroje poskytují integrované prostředí pro vývoj a publikování pro Azure Functions ve vašem upřednostňovaném jazyce:

Tyto nástroje se integrují s nástroji Azure Functions Core Tools, abyste mohli spouštět a ladit na místním počítači pomocí modulu runtime služby Functions. Další informace najdete v tématu Code a místní testování Azure Functions.

Na portálu Azure je také editor, který umožňuje aktualizovat kód a definiční soubor function.json přímo na portálu. Tento editor byste měli použít pouze pro malé změny nebo vytváření funkcí pro testování konceptu. Pokud je to možné, měli byste vždy vyvíjet funkce místně. Další informace najdete v tématu Vytvoření první funkce na portálu Azure.

Úpravy portálu se podporují jenom pro Node.js verze 3, která používá soubor function.json.

Nasazení

Při publikování projektu kódu do Azure v podstatě nasazujete projekt do existujícího prostředku aplikace funkcí. Aplikace funkcí poskytuje kontext spuštění v Azure, ve kterém vaše funkce běží. Proto se jedná o jednotku nasazení a správy vašich funkcí. Z pohledu Azure Prostředek je aplikace funkcí ekvivalentní prostředku webu (Microsoft.Web/sites) v Azure App Service, což odpovídá webové aplikaci.

Aplikace funkcí se skládá z jedné nebo několika samostatných funkcí, které se spravují, nasazují a škálují společně. Všechny funkce v aplikaci funkcí sdílejí stejný cenový plán, metodu nasazení a verzi modulu runtime. Další informace najdete v tématu Správa aplikace funkcí.

Pokud aplikace funkcí a všechny další požadované prostředky v Azure ještě neexistují, musíte tyto prostředky nejprve vytvořit, abyste mohli nasadit soubory projektu. Tyto prostředky můžete vytvořit jedním z těchto způsobů:

Kromě publikování založeného na nástrojích podporuje Functions další technologie pro nasazení zdrojového kódu do existující aplikace funkcí. Další informace najdete v tématu Odployment technologie v Azure Functions.

Připojení ke službám

Hlavním požadavkem jakékoli cloudové výpočetní služby je čtení dat z jiných cloudových služeb a zápis dat do jiných cloudových služeb. Funkce poskytují rozsáhlou sadu vazeb, které usnadňují připojení ke službám bez nutnosti pracovat s klientskými sadami SDK.

Bez ohledu na to, jestli používáte rozšíření vazeb poskytovaná functions nebo pracujete přímo se sadami SDK klienta, bezpečně ukládáte data připojení a nezahrnujte je do kódu. Další informace najdete v tématu Připojení.

Vazby

Functions poskytuje vazby pro mnoho služeb Azure a několik služeb třetích stran, které jsou implementované jako rozšíření. Další informace najdete v úplném seznamu podporovaných vazeb.

Rozšíření vazeb můžou podporovat vstupy i výstupy a mnoho triggerů také funguje jako vstupní vazby. Vazby umožňují nakonfigurovat připojení ke službám, aby hostitel služby Functions mohl zpracovávat přístup k datům za vás. Další informace najdete v tématu Azure Functions koncepty triggerů a vazeb.

Pokud máte problémy s chybami pocházejícími z vazeb, přečtěte si dokumentaci k Azure Functions kódy chyb vazby.

Klientské sady SDK

Zatímco Functions poskytuje vazby pro zjednodušení přístupu k datům v kódu funkce, stále můžete v projektu použít klientskou sadu SDK pro přímý přístup k dané službě, pokud chcete. Klientské sady SDK možná budete muset používat přímo v případě, že vaše funkce vyžadují funkci podkladové sady SDK, která není podporována rozšířením vazby.

Při použití klientských sad SDK byste měli použít stejný postup pro ukládání a přístup k připojovací řetězec používanými rozšířeními vazeb.

Když ve svých funkcích vytvoříte instanci klientské sady SDK, měli byste získat informace o připojení vyžadované klientem z proměnných prostředí.

Když ve svých funkcích vytvoříte instanci klientské sady SDK, měli byste získat informace o připojení vyžadované klientem z proměnných prostředí.

Když ve svých funkcích vytvoříte instanci klientské sady SDK, měli byste získat informace o připojení vyžadované klientem z proměnných prostředí.

Když ve svých funkcích vytvoříte instanci klientské sady SDK, měli byste získat informace o připojení vyžadované klientem z proměnných prostředí.

Když ve svých funkcích vytvoříte instanci klientské sady SDK, měli byste získat informace o připojení vyžadované klientem z proměnných prostředí.

Propojení

Osvědčeným postupem zabezpečení je, že Azure Functions využívá funkce nastavení aplikace Azure App Service, které vám pomůžou bezpečně ukládat řetězce, klíče a další tokeny potřebné pro připojení k jiným službám. Nastavení aplikace v Azure jsou uložena zašifrovaná a aplikace je může za běhu přistupovat jako proměnná prostředí namevalue páry. U triggerů a vazeb, které vyžadují vlastnost připojení, nastavíte název nastavení aplikace místo skutečného connection string. Vazbu nemůžete nakonfigurovat přímo pomocí connection string nebo klíče.

Představte si například definici triggeru connection , která má vlastnost. Místo connection string nastavíte connection na název proměnné prostředí, která obsahuje connection string. Díky této strategii přístupu k tajným kódům jsou vaše aplikace bezpečnější a usnadní vám změny připojení v různých prostředích. Pro ještě větší zabezpečení můžete použít připojení založená na identitách.

Výchozí zprostředkovatel konfigurace používá proměnné prostředí. Tyto proměnné se definují v nastavení aplikace při spuštění v Azure a v souboru nastavení local settings při místním vývoji.

Hodnoty připojení

Když se název připojení přeloží na jednu přesnou hodnotu, modul runtime identifikuje hodnotu jako connection string, která obvykle obsahuje tajný kód. Podrobnosti o connection string závisí na službě, ke které se připojujete.

Název připojení ale může také odkazovat na kolekci více položek konfigurace, které jsou užitečné pro konfiguraci připojení založených na identitě. Proměnné prostředí lze považovat za kolekci pomocí sdílené předpony __, která končí dvojitým podtržítkem . Na skupinu pak můžete odkazovat nastavením názvu připojení na tuto předponu.

Například vlastnost connection pro definici triggeru objektu blob Azure může být Storage1. Pokud není žádná hodnota řetězce nastavena pomocí proměnné prostředí pojmenované Storage1, proměnná prostředí pojmenovaná Storage1__blobServiceUri může být použita k informování vlastnosti připojení blobServiceUri. Vlastnosti připojení se pro každou službu liší. Projděte si dokumentaci ke komponentě, která připojení používá.

Poznámka:

Při použití Azure App Configuration nebo Key Vault k poskytnutí nastavení pro připojení spravované identity by názvy nastavení měly používat platný oddělovač klíčů, například : nebo / místo __, aby se názvy správně přeložily.

Například: Storage1:blobServiceUri.

Konfigurace připojení založeného na identitě

Některá připojení v Azure Functions je možné nakonfigurovat tak, aby používala identitu místo tajného klíče. Podpora závisí na verzi modulu runtime a rozšíření pomocí připojení. V některých případech může být ve službě Functions stále potřeba connection string, i když služba, ke které se připojujete, podporuje připojení založená na identitě. Kurz konfigurace aplikací funkcí se spravovanými identitami najdete v kurzu vytvoření aplikace funkcí s připojeními založenými na identitách.

Poznámka:

Při spuštění v plánu Consumption nebo Elastic Premium používá vaše aplikace nastavení WEBSITE_AZUREFILESCONNECTIONSTRING a WEBSITE_CONTENTSHARE při připojování k Azure Files v účtu úložiště používaném vaší aplikací funkcí. Azure Files nepodporuje použití spravované identity při přístupu ke sdílené složce. Další informace najdete v tématu Azure Files podporované scénáře ověřování

Připojení založená na identitě jsou podporována pouze ve službě Functions 4.x, pokud používáte verzi 1.x, musíte nejprve migrovat na verzi 4.x.

Následující komponenty podporují připojení založená na identitách:

Zdroj připojení Podporované plány Další informace
triggery a vazby objektů blob Azure Všechny Azure rozšíření Objektů blob verze 5.0.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Azure triggery a vazby front Všechny rozšíření front Azure verze 5.0.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Azure tabulky (při použití Azure Storage) Všechny rozšíření tabulky Azure verze 1.0.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Azure SQL Database Všechny Popojte aplikaci funkcí k Azure SQL pomocí spravovaných identit a vazeb SQL
Azure Event Hubs triggery a vazby Všechny Azure Event Hubs rozšíření verze 5.0.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Azure Service Bus triggery a vazby Všechny Azure Service Bus rozšíření verze 5.0.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Azure Event Grid výstupní vazby Všechny Azure Event Grid rozšíření verze 3.3.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Azure Cosmos DB triggery a vazby Všechny Azure Cosmos DB rozšíření verze 4.0.0 nebo novější,
Sada rozšíření 4.0.2 nebo novější
triggery a vazby služby SignalR Azure Všechny Azure rozšíření SignalR verze 1.7.0 nebo novější
Sada rozšíření 3.6.1 nebo novější
triggery a vazby Azure Web PubSub Všechny rozšíření Azure Web PubSub verze 1.10.0 nebo novější
Sada rozšíření 3.6.1 nebo novější
poskytovatel úložiště Durable Functions (Azure Storage) Všechny Durable Functions verze 2.7.0 nebo novější,
Sada rozšíření 3.3.0 nebo novější
Úložiště vyžadované hostitelem (AzureWebJobsStorage) Všechny Připojení k hostitelskému úložišti pomocí identity

Při hostování ve službě Azure Functions používají připojení založená na identitách managed identity. Identita přiřazená systémem se používá ve výchozím nastavení, ale je možné určit uživatelskou identitu pomocí vlastností credential a clientID. Všimněte si, že konfigurace identity přiřazené uživatelem s ID prostředku se nepodporuje . Při spuštění v jiných kontextech, jako je místní vývoj, se místo toho použije vaše identita vývojáře, i když je možné ji přizpůsobit. Viz také Místní vývoj s připojeními podle identit.

Udělení oprávnění identitě

Jakákoli identita, kterou používáte, musí mít oprávnění k provedení zamýšlených akcí. U většiny Azure služeb to znamená, že potřebujete assignovat roli v Azure RBAC pomocí předdefinovaných nebo vlastních rolí, které tato oprávnění poskytují.

Důležité

Cílová služba může zpřístupnit některá oprávnění, která nejsou nutná pro všechny kontexty. Pokud je to možné, dodržujte zásadu nejnižšího oprávnění a udělte identitě pouze požadovaná oprávnění. Pokud například aplikace potřebuje jen číst ze zdroje dat, použijte roli, která má oprávnění jen ke čtení. Přiřazení role, která také umožňuje zápis do této služby, by bylo nevhodné, protože by to bylo nadměrné oprávnění pro operaci čtení. Podobně byste chtěli zajistit, aby přiřazení role bylo vymezeno pouze nad prostředky, které je potřeba číst.

Zvolte jednu z těchto karet a seznamte se s oprávněními pro každou komponentu:

Musíte vytvořit přiřazení role, které poskytuje přístup k kontejneru objektů blob za běhu. Manažerské role jako vlastník nejsou dostatečné. Následující tabulka uvádí předdefinované role, které se doporučují při použití rozšíření Blob Storage v normálním provozu. Vaše aplikace může vyžadovat další oprávnění na základě kódu, který napíšete.

Typ vazby Příklad předdefinovaných rolí
Spouštěč Vlastníkdat objektů blob služby Storage aPřispěvateldat fronty úložiště 1

Navíc musí být udělena také připojení AzureWebJobsStorage.2
Vstupní vazba Čtenář dat služby Blob Storage
Výstupní vazba Vlastník dat služby Storage Blob

1 Trigger objektu blob zpracovává selhání napříč několika opakováními tím, že zapíše otrávené objekty blob do fronty v účtu úložiště určeném připojením.

2 Připojení AzureWebJobsStorage se používá interně pro objekty blob a fronty, které aktivují trigger. Pokud je nakonfigurované tak, aby používalo připojení založené na identitě, potřebuje další oprávnění nad rámec výchozího požadavku. Požadovaná oprávnění jsou pokryta rolemi Vlastník dat objektů blob služby Storage, Přispěvatel dat fronty úložiště a Přispěvatel účtů úložiště. Další informace najdete v tématu Připojení k hostitelskému úložišti pomocí identity.

Běžné vlastnosti pro připojení založená na identitě

Připojení založené na identitě pro službu Azure přijímá následující společné vlastnosti, kde <CONNECTION_NAME_PREFIX> je hodnota vlastnosti connection v definici triggeru nebo vazby:

Vlastnost Šablona proměnné prostředí Popis
Přihlašovací údaje tokenu <CONNECTION_NAME_PREFIX>__credential Tato vlastnost určuje způsob získání tokenu pro připojení. Vlastnost by ve scénářích lokálního vývoje neměla být nastavena. Pokud chcete použít ověřování spravované identity, nastavte tuto vlastnost na managedidentity. Pokud se chcete připojit k prostředku v jiném tenantovi, místo toho použijte managedidentityasfederatedidentity.
ID klienta <CONNECTION_NAME_PREFIX>__clientId Pokud credential je nastavena managedidentityna hodnotu , lze tuto vlastnost nastavit tak, aby určila identitu přiřazenou uživatelem, která se má použít při získávání tokenu. Vlastnost přijímá ID klienta odpovídající identitě přiřazené uživatelem přiřazené aplikaci. Není platné zadat ID prostředku i ID klienta. Pokud není zadána žádná, použije se identita přiřazená systémem.

Tato vlastnost se ve scénářích mezi tenanty používá odlišně. Prohlédněte si část Scénáře napříč tenanty.

Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena.
ID zdroje <CONNECTION_NAME_PREFIX>__managedIdentityResourceId Pokud credential je nastavena managedidentityna hodnotu , lze tuto vlastnost nastavit tak, aby určila identitu přiřazenou uživatelem, která se má použít při získávání tokenu. Vlastnost přijímá identifikátor prostředku odpovídající uživatelské identitě přiřazené aplikaci. Není platné zadat ID prostředku i ID klienta. Pokud není zadána žádná, použije se identita přiřazená systémem.

U daného typu připojení mohou být podporovány další možnosti. Projděte si dokumentaci k komponentě, která vytváří připojení.

proměnné prostředí Azure SDK

Upozornění

Použití proměnných prostředí Azure SDK EnvironmentCredential se nedoporučuje kvůli potenciálně neúmyslnému dopadu na jiná připojení. Nejsou také plně podporovány při nasazení do Azure Functions.

Proměnné prostředí přidružené k EnvironmentCredential Azure SDK je také možné nastavit, ale služba Functions je nezpracovává pro škálování v plánech Consumption. Tyto proměnné prostředí nejsou specifické pro žádné jedno připojení a použijí se jako výchozí, pokud pro dané připojení není nastavena odpovídající vlastnost. Pokud AZURE_CLIENT_ID je například nastaveno, použije se to, jako by <CONNECTION_NAME_PREFIX>__clientId bylo nakonfigurováno. Explicitní nastavení by toto výchozí nastavení <CONNECTION_NAME_PREFIX>__clientId přepsalo.

Místní vývoj s využitím připojení založených na identitách

Poznámka:

Místní vývoj s připojeními založenými na identitách vyžaduje verzi 4.0.3904Azure Functions Core Tools nebo novější verzi.

Při místním spuštění projektu funkce vám výše uvedená konfigurace řekne modulu runtime, aby používal vaši místní identitu vývojáře. Připojení se pokusí získat token z následujících umístění v pořadí:

  • Místní mezipaměť sdílená mezi aplikacemi Microsoftu
  • Kontext aktuálního uživatele v Visual Studio
  • Kontext aktuálního uživatele v Visual Studio Code
  • Kontext aktuálního uživatele v Azure CLI

Pokud žádná z těchto možností není úspěšná, dojde k chybě.

Vaše identita už může mít určitá přiřazení rolí k prostředkům Azure používaným pro vývoj, ale tyto role nemusí poskytovat potřebný přístup k datům. Manažerské role jako vlastník nejsou dostatečné. Pečlivě zkontrolujte, jaká oprávnění jsou potřebná pro připojení pro každou komponentu, a ujistěte se, že jste je přiřadili sami sobě.

V některých případech můžete chtít zadat použití jiné identity. Můžete přidat vlastnosti konfigurace pro připojení, které odkazují na alternativní identitu na základě ID klienta a tajného klíče klienta pro Microsoft Entra instanční objekt. Tato možnost konfigurace není podporována při hostování ve službě Azure Functions. Pokud chcete na místním počítači použít ID a tajný klíč, definujte připojení s následujícími dodatečnými vlastnostmi:

Vlastnost Šablona proměnné prostředí Popis
ID tenanta <CONNECTION_NAME_PREFIX>__tenantId ID tenanta (adresáře) Microsoft Entra.
ID klienta <CONNECTION_NAME_PREFIX>__clientId ID klienta (aplikace) registrace aplikace v tenantovi.
Tajný klíč klienta <CONNECTION_NAME_PREFIX>__clientSecret Tajný klíč klienta vygenerovaný pro registraci aplikace.

Tady je příklad vlastností local.settings.json vyžadovaných pro připojení založené na identitě k objektům blob Azure:

{
  "IsEncrypted": false,
  "Values": {
    "<CONNECTION_NAME_PREFIX>__blobServiceUri": "<blobServiceUri>",
    "<CONNECTION_NAME_PREFIX>__queueServiceUri": "<queueServiceUri>",
    "<CONNECTION_NAME_PREFIX>__tenantId": "<tenantId>",
    "<CONNECTION_NAME_PREFIX>__clientId": "<clientId>",
    "<CONNECTION_NAME_PREFIX>__clientSecret": "<clientSecret>"
  }
}

Připojení k hostitelskému úložišti pomocí identity

Hostitel Azure Functions používá připojení k úložišti nastavené v AzureWebJobsStorage k povolení základního chování, jako je koordinace jednotonového spouštění triggerů časovače a výchozího úložiště klíčů aplikace. Toto připojení lze také nakonfigurovat tak, aby používalo identitu.

Upozornění

Ostatní komponenty ve službě Functions se spoléhají na AzureWebJobsStorage výchozí chování. Pokud používáte starší verze rozšíření, které nepodporují tento typ připojení, včetně triggerů a vazeb pro objekty blob Azure, Event Hubs a Durable Functions, neměli byste ho přesunout do připojení založeného na identitě. AzureWebJobsStorage Podobně se používá pro artefakty nasazení při použití sestavení na straně serveru ve spotřebě Linuxu a pokud to povolíte, budete muset nasadit prostřednictvím externího balíčku pro nasazení.

Vaše aplikace funkcí navíc může opakovaně používat AzureWebJobsStorage jiná připojení k úložišti ve svých triggerech, vazbách a kódu funkce. Před změnou tohoto připojení z connection string se ujistěte, že všechna použití AzureWebJobsStorage mohou používat formát připojení založený na identitě.

Pokud chcete použít připojení založené na identitě, AzureWebJobsStoragenakonfigurujte následující nastavení aplikace:

Nastavení Popis Příklad hodnoty
AzureWebJobsStorage__blobServiceUri Identifikátor URI roviny dat služby blob účtu úložiště pomocí schématu HTTPS. <https://storage_account_name.blob.core.windows.net>
AzureWebJobsStorage__queueServiceUri Identifikátor URI roviny dat služby fronty účtu úložiště pomocí schématu HTTPS. <https://storage_account_name.queue.core.windows.net>
AzureWebJobsStorage__tableServiceUri Identifikátor URI roviny dat tabulkové služby účtu úložiště pomocí schématu HTTPS. <https:// storage_account_name.table.core.windows.net>

Je také možné nastavit běžné vlastnosti pro připojení založená na identitách.

Pokud konfigurujete AzureWebJobsStorage pomocí účtu úložiště, který používá výchozí příponu DNS a název služby pro globální Azure, za formátem https://<accountName>.[blob|queue|file|table].core.windows.net můžete místo toho nastavit AzureWebJobsStorage__accountName na název účtu úložiště. Koncové body pro každou službu úložiště se odvozují pro tento účet. To nefunguje, když je účet úložiště v suverénním cloudu nebo má vlastní DNS.

Nastavení Popis Příklad hodnoty
AzureWebJobsStorage__accountName Název účtu úložiště, platný jenom v případě, že účet není v suverénním cloudu a nemá vlastní DNS. Tato syntaxe je jedinečná pro AzureWebJobsStorage a nelze ji použít pro jiná připojení založená na identitách. <název_úložiště>

Musíte vytvořit přiřazení role, které poskytuje přístup k účtu úložiště pro AzureWebJobsStorage za běhu. Manažerské role jako vlastník nejsou dostatečné. Role Vlastník dat objektů blob služby Storage pokrývá základní potřeby úložiště hostitele služby Functions – modul runtime potřebuje přístup ke čtení i zápisu k objektům blob a možnost vytvářet kontejnery. Toto připojení používá několik rozšíření jako výchozí umístění pro objekty blob, fronty a tabulky a tato použití mohou přidávat požadavky, jak je uvedeno v následující tabulce. Pokud pro jakékoli jiné účely použijete AzureWebJobsStorage, budete možná potřebovat i další oprávnění.

Rozšíření Požadované role Vysvětlení
Žádné rozšíření (jenom hostitel) Vlastník dat služby Storage Blob Funkce používá úložiště objektů blob k obecné koordinaci a jako výchozí úložiště klíčů.

Tento scénář představuje minimální sadu oprávnění pro normální provoz, ale nezahrnuje podporu diagnostických událostí1.
No extension (host only), with support for diagnostic events1 Žádné rozšíření (pouze hostitel) s podporou diagnostických událostí1 Vlastník dat objektů blob služby Storage
Přispěvatel dat tabulky úložiště
Diagnostické události se uchovávají v úložišti tabulek pomocí připojení AzureWebJobsStorage.
Azure objekty blob (pouze trigger) Všechny položky z:
Přispěvatel účtu úložiště,
Vlastník dat objektů blob služby Storage
Přispěvatel dat fronty služby Storage
Trigger objektu blob interně používá fronty Azure a zapisuje blob účtenky. Pro tyto účely používá připojení AzureWebJobsStorage bez ohledu na připojení nakonfigurované pro trigger.
Azure Event Hubs (jenom trigger) (žádná změna z výchozího požadavku)
Vlastník dat služby Storage Blob
Kontrolní body se uchovávají v objektech blob pomocí připojení AzureWebJobsStorage.
Trigger časovače (žádná změna z výchozího požadavku)
Vlastník dat služby Storage Blob
Aby se zajistilo jedno spuštění na událost, zamykají se s objekty blob pomocí připojení AzureWebJobsStorage.
Durable Functions Všechny položky z:
Přispěvatel dat objektů blob služby Storage
Přispěvatel dat fronty služby Storage
Přispěvatel dat tabulky úložiště
Durable Functions používá objekty blob, fronty a tabulky ke koordinaci funkcí aktivit a udržování stavu orchestrace. Ve výchozím nastavení používá připojení AzureWebJobsStorage, ale v konfiguraci rozšíření Durable Functions můžete zadat jiné připojení.

1 U některých typů problémů může Azure Functions vyvolat diagnostickou událost, která může pomoct s řešením potíží, i když problém brání spuštění aplikace funkcí. Pokud přispěvatel dat tabulky úložiště není přiřazený, může se v protokolech zobrazit upozornění týkající se nemožnosti zapsat tyto události.

Připojení k prostředku v jiném tenantovi

Pokud se vaše funkce potřebuje připojit k prostředku v jiném tenantovi Microsoft Entra, připojení musí používat přihlašovací údaje federované identity. To vyžaduje spravovanou identitu přiřazenou uživatelem a registraci aplikace Entra ID s více tenanty. Spravovanou identitu přiřazenou systémem nelze použít pro připojení mezi tenanty.

Důležité

Když nakonfigurujete trigger pro připojení mezi tenanty v typech plánů Consumption nebo Flex Consumption, platforma už nebude škálovat aplikaci funkcí na základě tohoto triggeru.

Pokud chcete nakonfigurovat připojení založené na identitách mezi tenanty, musíte nejprve nastavit infrastrukturu pomocí následujícího postupu:

  1. V tenantovi, ve kterém je vaše aplikace funkcí nasazená, vytvořte novou uživatelem přiřazenou spravovanou identitu.
  2. Přiřaďte danou identitu k aplikaci funkcí.
  3. Ve stejném tenantovi vytvořte registraci víceklientských aplikací Entra , která představuje prostředek mezi tenanty, ke kterému chcete získat přístup.
  4. Přidejte spravovanou identitu jako přihlašovací údaje federované identity pro registraci aplikace.
  5. V tenantovi, ve kterém je prostředek nasazený, vytvořte podnikovou aplikaci pro registraci aplikace.
  6. Přiřaďte oprávnění pro podnikovou aplikaci pro přístup k prostředku.

Připojení založené na identitách mezi tenanty používá následující vlastnosti, kde <CONNECTION_NAME_PREFIX> je hodnota vaší connection vlastnosti v definici triggeru nebo vazby:

Vlastnost Šablona proměnné prostředí Popis
Přihlašovací údaje tokenu <CONNECTION_NAME_PREFIX>__credential Povinné. Při připojování k prostředku v jiném tenant nastavte tuto vlastnost na managedidentityasfederatedidentity.
Azure Cloud <CONNECTION_NAME_PREFIX>__azureCloud Povinné. Tato vlastnost určuje Azure cloudové prostředí. Povolené hodnoty jsou "veřejné" pro Azure veřejný cloud, "usgov" pro Azure US Government Cloud a "china" pro Azure provozované společností 21Vianet.
ID klienta <CONNECTION_NAME_PREFIX>__clientId Povinné. Pokud credential je tato vlastnost nastavená na managedidentityasfederatedidentity, nastavte tuto vlastnost na ID klienta (ID aplikace) registrace aplikace.

Tato vlastnost se v připojeních na bázi identity s jedním tenantem používá odlišně. Viz část společné vlastnosti .

Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena.
ID tenanta <CONNECTION_NAME_PREFIX>__tenantId Povinné. Pokud je credential nastavena na managedidentityasfederatedidentity, nastavte tuto vlastnost na ID tenanta prostředku.

Tato vlastnost se v místních vývojových scénářích používá odlišně, pokud credential by neměla být nastavena.
ID klienta spravované identity <CONNECTION_NAME_PREFIX>__managedIdentityClientId Pokud credential je tato vlastnost nastavená na managedidentityasfederatedidentity, určuje identitu přiřazenou uživatelem, kterou jste nakonfigurovali jako přihlašovací údaje federované identity a přiřadili aplikaci.1 Vlastnost přijímá ID klienta odpovídající této identitě přiřazené uživatelem.
ID objektu spravované identity <CONNECTION_NAME_PREFIX>__managedIdentityObjectId Pokud je credential nastaveno na managedidentityasfederatedidentity, tato vlastnost určuje uživatelem přiřazenou identitu, kterou jste nakonfigurovali jako přihlašovací údaje federované identity a přiřadili aplikaci.1 Vlastnost přijímá ID objektu (hlavní ID) odpovídající této uživatelem přiřazené identitě.
ID prostředku spravované identity <CONNECTION_NAME_PREFIX>__managedIdentityResourceId Když je credential nastaveno na managedidentityasfederatedidentity, tato vlastnost určuje uživatelem přiřazenou identitu, kterou jste nakonfigurovali jako přihlašovací údaj federované identity a přiřadili aplikaci.1 Vlastnost přijímá identifikátor prostředku, který odpovídá této uživatelsky přiřazené identitě.

1 Je-li credential nastavena na managedidentityasfederatedidentity, vaše připojení musí určit přesně jeden z managedIdentityClientId, managedIdentityObjectId nebo managedIdentityResourceId.

To je také documented by Azure SDK ve formátu JSON.

Hlášení problémů

Položka Popis Odkaz
Šablona běhového prostředí Hostitel skriptů, aktivační události a vazby, podpora jazyka Soubor problém
Šablony Problémy s kódem při vytváření šablony Soubor problém

Open source úložiště

Kód pro Azure Functions je open source a klíčové komponenty najdete v těchto úložištích GitHub:

Další kroky

Další informace naleznete v následujících zdrojích: