Sdílet prostřednictvím


Používání vlastních funkcí ve službě Azure Static Web Apps

Azure Static Web Apps poskytuje integraci rozhraní API, která umožňují vytvářet front-endové webové aplikace, které závisí na back-endových rozhraních API pro data a služby. Dvě možnosti integrace rozhraní API jsou: spravované funkce a používání vlastních back-endů. Další informace o rozdílech mezi těmito možnostmi najdete v přehledu.

Tento článek ukazuje, jak propojit existující aplikaci Azure Functions s prostředkem Azure Static Web Apps.

Poznámka:

Integrace se službou Azure Functions vyžaduje plán Static Web Apps Standard.

Integrace back-endu není podporována v prostředích statických žádostí o přijetí změn Web Apps.

Předpoklady

Pokud chcete propojit aplikaci funkcí se statickou webovou aplikací, musíte mít existující prostředek Azure Functions a statickou webovou aplikaci.

Prostředek Popis
Azure Functions Pokud ho ještě nemáte, postupujte podle pokynů v průvodci Začínáme se službou Azure Functions .
Existující statická webová aplikace Pokud ho ještě nemáte, vytvořte statickou webovou aplikaci No Framework podle pokynů v úvodní příručce.

Příklad

Představte si existující aplikaci Azure Functions, která zveřejňuje koncový bod prostřednictvím následujícího umístění.

https://my-functions-app.azurewebsites.net/api/getProducts

Po propojení můžete ke stejnému api koncovému bodu přistupovat přes cestu z vaší statické webové aplikace, jak je znázorněno v této ukázkové adrese URL.

https://red-sea-123.azurestaticapps.net/api/getProducts

Obě adresy URL koncového bodu odkazují na stejnou funkci. Koncový bod v aplikaci funkcí musí mít předponu /api , protože Static Web Apps odpovídá žádostem provedeným na /api propojeném prostředku a proxy server.

Odebrání spravovaných funkcí z prostředku Static Web Apps (pokud je k dispozici)

Než přidružíte existující aplikaci Functions, musíte nejprve upravit konfiguraci statické webové aplikace, aby se odebraly spravované funkce, pokud nějaké máte.

  1. Nastavte api_location hodnotu na prázdný řetězec ("") v konfiguračním souboru pracovního postupu.
  1. Otevřete instanci Static Web Apps na webu Azure Portal.

  2. V nabídce Nastavení vyberte rozhraní API.

  3. V řádku Production (Produkční) vyberte Odkaz a otevřete okno Propojit nový back-end.

    Zadejte následující nastavení.

    Nastavení Hodnota
    Typ back-endového prostředku Vyberte aplikaci funkcí.
    Předplatné Vyberte název předplatného Azure.
    Název prostředku Vyberte název aplikace Azure Functions.
    Back-endový slot Vyberte název slotu pro funkci Azure Functions.
  4. Vyberte odkaz.

Aplikace Azure Functions je teď namapovaná na trasu /api vaší statické webové aplikace.

Důležité

Před propojením existující aplikace Functions nezapomeňte hodnotu nastavit api_location na prázdný řetězec ("") v konfiguračním souboru pracovního postupu. Volání také předpokládají, že externí aplikace funkcí zachovává výchozí api předponu trasy. Mnoho aplikací odebere tuto předponu v souboru host.json. Ujistěte se, že je předpona v konfiguraci, jinak volání selže.

Nasazení

Zodpovídáte za nastavení pracovního postupu nasazení pro vaši aplikaci Azure Functions.

Pokud chcete zrušit propojení aplikace funkcí se statickou webovou aplikací, postupujte takto:

  1. Na webu Azure Portal přejděte do statické webové aplikace.

  2. V navigační nabídce vyberte rozhraní API .

  3. Vyhledejte prostředí, které chcete odpojit, a vyberte název aplikace funkcí.

  4. Vyberte Zrušit propojení.

Po dokončení procesu zrušení propojení se požadavky na trasy začínající na /api trasu už nepřesouvají do aplikace Azure Functions.

Poznámka:

Aby se zabránilo náhodnému zveřejnění vaší aplikace funkcí anonymnímu provozu, zprostředkovatel identity vytvořený procesem propojení se automaticky neodstraní. Z nastavení ověřování aplikace funkcí můžete odstranit zprostředkovatele identity s názvem Azure Static Web Apps (propojené ).

Odebrání ověřování z prostředku Azure Functions

Pokud chcete aplikaci Azure Functions povolit příjem anonymního provozu, odeberte zprostředkovatele identity následujícím postupem:

  1. Na webu Azure Portal přejděte k prostředku Azure Functions.

  2. V navigační nabídce vyberte Ověřování .

  3. Ze seznamu zprostředkovatelů identity odstraňte zprostředkovatele identity související s prostředkem Static Web Apps.

  4. Výběrem možnosti Odebrat ověřování odeberete ověřování a povolíte anonymní provoz do vašeho prostředku Azure Functions.

Vaše aplikace funkcí teď může přijímat anonymní provoz.

Omezení zabezpečení

  • Ověřování a autorizace: Pokud ještě ve stávající aplikaci Functions nejsou nastavené zásady ověřování a autorizace, má statická webová aplikace výhradní přístup k rozhraní API. Pokud chcete aplikaci Functions zpřístupnit pro jiné aplikace, přidejte dalšího zprostředkovatele identity nebo změňte nastavení zabezpečení tak, aby povolovala neověřený přístup.

    Poznámka:

    Pokud v propojené aplikaci Functions povolíte ověřování a autorizaci, musí používat Aplikace Azure ověřování služby a zprostředkovatele autorizace verze 2.

  • Požadovaná veřejná přístupnost: Existující aplikace Functions nemusí používat následující konfigurace zabezpečení.

    • Omezení IP adresy aplikace Functions
    • Omezení provozu prostřednictvím privátního propojení nebo koncových bodů služby
  • Přístupové klíče funkce: Pokud vaše funkce vyžaduje přístupový klíč, musíte klíč poskytnout volání ze statické aplikace do rozhraní API.

Omezení

  • Pro jednu statickou webovou aplikaci je dostupná jenom jedna aplikace Azure Functions.
  • Hodnota api_location v konfiguraci pracovního postupu musí být nastavena na prázdný řetězec.
  • Nepodporuje se v prostředích statických žádostí o přijetí změn Web Apps.
  • I když vaše aplikace Azure Functions může reagovat na různé triggery, může statická webová aplikace přistupovat pouze k funkcím prostřednictvím koncových bodů HTTP.

Další kroky