Integrera Azure-funktion

Introduktion

Den här självstudien innehåller detaljerad vägledning om hur du konfigurerar en Azure-funktion för att ta emot användarrelaterad information. Det rekommenderas starkt att du konfigurerar en Azure-funktion. Det hjälper till att undvika hårdkodade programparametrar i Contoso-appen (till exempel användar-ID och användartoken). Den här informationen är mycket konfidentiell. Ännu viktigare är att vi uppdaterar användartoken regelbundet på serverdelen. Hårdkodning av användar-ID och tokenkombination kräver att värdet redigeras efter varje uppdatering.

Förutsättningar

Innan du kommer igång måste du:

Konfigurera funktioner

  1. Installera Azure-funktionstillägget i Visual Studio Code. Du kan installera det från Visual Studio Code-plugin-webbläsaren eller genom att följa den här länken
  2. Konfigurera en lokal Azure-funktionsapp genom att följa den här länken. Vi måste skapa en lokal funktion med hjälp av HTTP-utlösarmallen i JavaScript.
  3. Installera Azure Communication Services-bibliotek. Vi använder identitetsbiblioteket för att generera användaråtkomsttoken. Kör kommandot npm install i din lokala Azure Function-appkatalog för att installera Azure Communication Services Identity SDK för JavaScript.
    npm install @azure/communication-identity --save
  1. index.js Ändra filen så att den ser ut som koden nedan:
    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
            }
        };
    }

Förklaring till koden ovan: Den första raden importerar gränssnittet för CommunicationIdentityClient. Den anslutningssträng på den andra raden finns i din Azure Communication Services-resurs i Azure-portalen. ACSEndpoint är URL:en för Azure Communication Services-resursen som skapades.

  1. Öppna den lokala Azure-funktionsmappen i Visual Studio Code. index.js Öppna och kör den lokala Azure-funktionen. En lokal Azure-funktionsslutpunkt skapas och skrivs ut i terminalen. Det utskrivna meddelandet ser ut ungefär så här:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1

Öppna länken i en webbläsare. Resultatet kommer att likna det här exemplet:

    {
      "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. Distribuera den lokala funktionen till molnet. Mer information finns i den här dokumentationen.

  2. Testa den distribuerade Azure-funktionen. Leta först upp din Azure-funktion i Azure-portalen. Använd sedan knappen Hämta funktions-URL för att hämta Azure Function-slutpunkten. Resultatet du ser bör likna det som visades i steg 5. Azure Function-slutpunkten används i appen för att initiera programparametrar.

  3. Implementera UserTokenClient, som används för att anropa azure-målfunktionsresursen och hämta Azure Communication Services-slutpunkten, användar-ID och användartoken från det returnerade JSON-objektet. Se exempelappen för användning.

Felsökningsguide

  1. Om Azure-funktionstillägget inte kunde distribuera den lokala funktionen till Azure-molnet beror det sannolikt på att versionen av Visual Studio Code och Azure-funktionstillägget används med en bugg. Den här versionskombinationen har testats för att fungera: Visual Studio Code-version 1.68.1 och Azure Function-tilläggsversion 1.2.1.
  2. Det är svårt men viktigt att initiera programkonstanter. Dubbelkolla snabbstarten för chatten med Android. Mer specifikt markerar du anteckningen i avsnittet "Konfigurera programkonstanter" och jämför med exempelappen för den version som du använder.

(Valfritt) skydda Azure-funktionsslutpunkten

I demonstrationssyfte använder det här exemplet en offentligt tillgänglig slutpunkt som standard för att hämta en Azure Communication Services-token. För produktionsscenarier är ett alternativ att använda din egen skyddade slutpunkt för att etablera egna token.

Med extra konfiguration stöder det här exemplet anslutning till en Microsoft Entra-skyddad slutpunkt så att användarloggen krävs för att appen ska kunna hämta en Azure Communication Services-token. Användaren måste logga in med Microsoft-kontot för att få åtkomst till appen. Den här konfigurationen ökar säkerhetsnivån medan användarna måste logga in. Bestäm om du vill aktivera det baserat på användningsfallen.

Observera att vi för närvarande inte stöder Microsoft Entra-ID i exempelkod. Följ länkarna nedan för att aktivera den i din app och Azure-funktion:

Registrera din app under Microsoft Entra-ID (med androidplattformsinställningar).

Konfigurera din App Service- eller Azure Functions-app så att den använder Microsoft Entra-ID-inloggning.