Sdílet prostřednictvím


Integrace funkce Azure Functions

Úvod

Tento kurz obsahuje podrobné pokyny k nastavení funkce Azure Functions pro příjem informací souvisejících s uživatelem. Nastavení funkce Azure Functions se důrazně doporučuje. Pomáhá vyhnout se pevně kódovacím parametrům aplikace v aplikaci Contoso (například ID uživatele a tokenu uživatele). Tyto informace jsou vysoce důvěrné. Důležitější je, že uživatelské tokeny pravidelně aktualizujeme na back-endu. Pevné kódování id uživatele a kombinace tokenů vyžaduje úpravu hodnoty po každé aktualizaci.

Požadavky

Než začnete, nezapomeňte:

  • Vytvořte účet Azure s aktivním předplatným. Podrobnosti najdete v tématu Vytvoření účtu zdarma.
  • Nainstalujte editor Visual Studio Code.

Nastavení funkcí

  1. Nainstalujte rozšíření Azure Function v editoru Visual Studio Code. Můžete ho nainstalovat z prohlížeče plug-in editoru Visual Studio Code nebo pomocí tohoto odkazu.
  2. Pomocí tohoto odkazu nastavte místní aplikaci Funkcí Azure. Potřebujeme vytvořit místní funkci pomocí šablony triggeru HTTP v JavaScriptu.
  3. Nainstalujte knihovny Azure Communication Services. K vygenerování přístupových tokenů uživatele použijeme knihovnu Identita. Spuštěním příkazu npm install v místním adresáři aplikace Azure Function App nainstalujte sadu SDK identit služeb Azure Communication Services pro JavaScript.
    npm install @azure/communication-identity --save
  1. index.js Upravte soubor tak, aby vypadal jako následující kód:
    const { CommunicationIdentityClient } = require('@azure/communication-identity');
    const connectionString = '<your_connection_string>'
    const acsEndpoint = "<your_ACS_endpoint>"
    
    module.exports = async function (context, req) {
        let tokenClient = new CommunicationIdentityClient(connectionString);
    
        const userIDHolder = await tokenClient.createUser();
        const userId = userIDHolder.communicationUserId
    
        const userToken = await (await tokenClient.getToken(userIDHolder, ["chat"])).token;
    
        context.res = {
            body: {
                acsEndpoint,
                userId,
                userToken
            }
        };
    }

Vysvětlení výše uvedeného kódu: První řádek importuje rozhraní pro CommunicationIdentityClient. Připojovací řetězec na druhém řádku najdete v prostředku Azure Communication Services na webu Azure Portal. Jedná se ACSEndpoint o adresu URL prostředku Azure Communication Services, který byl vytvořen.

  1. Otevřete místní složku Funkce Azure v editoru Visual Studio Code. index.js Otevřete a spusťte místní funkci Azure Functions. V terminálu se vytvoří a vytiskne místní koncový bod funkce Azure Functions. Vytištěná zpráva vypadá nějak takto:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1

Otevřete odkaz v prohlížeči. Výsledek bude podobný tomuto příkladu:

    {
      "acsEndpoint": "<Azure Function endpoint>",
      "userId": "8:acs:a636364c-c565-435d-9818-95247f8a1471_00000014-f43f-b90f-9f3b-8e3a0d00c5d9",
      "userToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjEwNiIsIng1dCI6Im9QMWFxQnlfR3hZU3pSaXhuQ25zdE5PU2p2cyIsInR5cCI6IkpXVCJ9.eyJza3lwZWlkIjoiYWNzOmE2MzYzNjRjLWM1NjUtNDM1ZC05ODE4LTk1MjQ3ZjhhMTQ3MV8wMDAwMDAxNC1mNDNmLWI5MGYtOWYzYi04ZTNhMGQwMGM1ZDkiLCJzY3AiOjE3OTIsImNzaSI6IjE2Njc4NjI3NjIiLCJleHAiOjE2Njc5NDkxNjIsImFjc1Njb3BlIjoiY2hhdCIsInJlc291cmNlSWQiOiJhNjM2MzY0Yy1jNTY1LTQzNWQtOTgxOC05NTI0N2Y4YTE0NzEiLCJyZXNvdXJjZUxvY2F0aW9uIjoidW5pdGVkc3RhdGVzIiwiaWF0IjoxNjY3ODYyNzYyfQ.t-WpaUUmLJaD0V2vgn3M5EKdJUQ_JnR2jnBUZq3J0zMADTnFss6TNHMIQ-Zvsumwy14T1rpw-1FMjR-zz2icxo_mcTEM6hG77gHzEgMR4ClGuE1uRN7O4-326ql5MDixczFeIvIG8s9kAeJQl8N9YjulvRkGS_JZaqMs2T8Mu7qzdIOiXxxlmcl0HeplxLaW59ICF_M4VPgUYFb4PWMRqLXWjKyQ_WhiaDC3FvhpE_Bdb5U1eQXDw793V1_CRyx9jMuOB8Ao7DzqLBQEhgNN3A9jfEvIE3gdwafpBWlQEdw-Uuf2p1_xzvr0Akf3ziWUsVXb9pxNlQQCc19ztl3MIQ"
    }
  1. Nasaďte místní funkci do cloudu. Další podrobnosti najdete v této dokumentaci.

  2. Otestujte nasazenou funkci Azure Functions. Nejprve na webu Azure Portal najděte svou funkci Azure Functions. Pak pomocí tlačítka Získat adresu URL funkce získejte koncový bod funkce Azure Functions. Zobrazený výsledek by měl být podobný tomu, co se zobrazilo v kroku 5. Koncový bod funkce Azure Se použije v aplikaci k inicializaci parametrů aplikace.

  3. Implementujte UserTokenClient, který se používá k volání cílového prostředku funkce Azure Functions a získání koncového bodu služby Azure Communication Services, ID uživatele a tokenu uživatele z vráceného objektu JSON. Informace o využití najdete v ukázkové aplikaci.

Příručka pro řešení problémů

  1. Pokud se rozšíření Azure Functions nepovedlo nasadit místní funkci do cloudu Azure, je pravděpodobné, že příčinou je verze editoru Visual Studio Code a rozšíření Azure Functions, které se používá, s chybou. Tato kombinace verzí byla testována tak, aby fungovala: verze 1.68.1 editoru Visual Studio Code a verze 1.2.1rozšíření funkce Azure Functions .
  2. Místo pro inicializaci konstant aplikace je složité, ale důležité. Pečlivě zkontrolujte rychlý start chatu s Androidem. Konkrétnější poznámka ke zvýraznění v části "Nastavení konstant aplikace" a porovnání s ukázkovou aplikací verze, kterou používáte.

(Volitelné) zabezpečení koncového bodu funkce Azure Functions

Pro demonstrační účely tato ukázka ve výchozím nastavení používá veřejně přístupný koncový bod k načtení tokenu Azure Communication Services. V produkčních scénářích je jednou z možností použití vlastního zabezpečeného koncového bodu ke zřízení vlastních tokenů.

Tato ukázka navíc podporuje připojení ke koncovému bodu chráněnému Microsoft Entra, aby aplikace vyžadovala protokol uživatele k načtení tokenu Azure Communication Services. Uživatel se bude muset přihlásit pomocí účtu Microsoft pro přístup k aplikaci. Toto nastavení zvyšuje úroveň zabezpečení, zatímco se uživatelé musí přihlásit. Rozhodněte se, jestli se má povolit na základě případů použití.

Všimněte si, že v současné době nepodporujeme ID Microsoft Entra v ukázkovém kódu. Pomocí následujících odkazů ji povolte ve vaší aplikaci a ve funkci Azure Functions:

Zaregistrujte aplikaci v rámci Microsoft Entra ID (pomocí nastavení platformy Android).

Nakonfigurujte aplikaci App Service nebo Azure Functions tak, aby používala přihlášení k MICROSOFT Entra ID.