Udostępnij za pośrednictwem


Integrowanie funkcji platformy Azure

Wprowadzenie

Ten samouczek zawiera szczegółowe wskazówki dotyczące konfigurowania funkcji platformy Azure w celu otrzymywania informacji związanych z użytkownikiem. Zdecydowanie zaleca się skonfigurowanie funkcji platformy Azure. Pomaga to uniknąć twardych parametrów aplikacji kodowania w aplikacji Contoso (takich jak identyfikator użytkownika i token użytkownika). Te informacje są wysoce poufne. Co ważniejsze, okresowo odświeżamy tokeny użytkownika na zapleczu. Kodowanie na stałe identyfikatora użytkownika i kombinacji tokenu wymaga edytowania wartości po każdym odświeżeniu.

Wymagania wstępne

Przed rozpoczęciem upewnij się, że:

  • Utwórz konto platformy Azure z aktywną subskrypcją. Aby uzyskać szczegółowe informacje, zobacz Tworzenie bezpłatnego konta.
  • Zainstaluj program Visual Studio Code.

Konfigurowanie funkcji

  1. Zainstaluj rozszerzenie funkcji platformy Azure w programie Visual Studio Code. Możesz go zainstalować za pomocą przeglądarki wtyczki programu Visual Studio Code lub korzystając z tego linku
  2. Skonfiguruj lokalną aplikację funkcji platformy Azure, korzystając z tego linku. Musimy utworzyć funkcję lokalną przy użyciu szablonu wyzwalacza HTTP w języku JavaScript.
  3. Zainstaluj biblioteki usług Azure Communication Services. Użyjemy biblioteki tożsamości do wygenerowania tokenów dostępu użytkowników. Uruchom polecenie npm install w lokalnym katalogu aplikacji funkcji platformy Azure, aby zainstalować zestaw SDK tożsamości usług Azure Communication Services dla języka JavaScript.
    npm install @azure/communication-identity --save
  1. Zmodyfikuj plik tak index.js , aby wyglądał jak poniższy kod:
    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
            }
        };
    }

Wyjaśnienie powyższego kodu: pierwszy wiersz importuje interfejs dla elementu CommunicationIdentityClient. Parametry połączenia w drugim wierszu można znaleźć w zasobie usług Azure Communication Services w witrynie Azure Portal. Jest ACSEndpoint to adres URL utworzonego zasobu usług Azure Communication Services.

  1. Otwórz lokalny folder funkcji platformy Azure w programie Visual Studio Code. Otwórz plik index.js i uruchom lokalną funkcję platformy Azure. Lokalny punkt końcowy funkcji platformy Azure zostanie utworzony i wydrukowany w terminalu. Wydrukowany komunikat wygląda podobnie do następującego:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1

Otwórz link w przeglądarce. Wynik będzie podobny do tego przykładu:

    {
      "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. Wdróż funkcję lokalną w chmurze. Więcej szczegółów można znaleźć w tej dokumentacji.

  2. Przetestuj wdrożona funkcja platformy Azure. Najpierw znajdź funkcję platformy Azure w witrynie Azure Portal. Następnie użyj przycisku "Pobierz adres URL funkcji", aby uzyskać punkt końcowy funkcji platformy Azure. Widoczny wynik powinien być podobny do przedstawionego w kroku 5. Punkt końcowy funkcji platformy Azure będzie używany w aplikacji do inicjowania parametrów aplikacji.

  3. Zaimplementuj UserTokenClientelement , który służy do wywoływania docelowego zasobu funkcji platformy Azure i uzyskiwania punktu końcowego usług Azure Communication Services, identyfikatora użytkownika i tokenu użytkownika z zwróconego obiektu JSON. Zapoznaj się z przykładową aplikacją do użycia.

Przewodnik po rozwiązywaniu problemów

  1. Jeśli rozszerzenie funkcji platformy Azure nie może wdrożyć funkcji lokalnej w chmurze platformy Azure, prawdopodobnie jest to spowodowane usterką wersji programu Visual Studio Code i rozszerzenia funkcji platformy Azure. Ta kombinacja wersji została przetestowana pod kątem działania: wersja programu Visual Studio Code i wersja 1.68.11.2.1rozszerzenia funkcji platformy Azure.
  2. Miejsce inicjowania stałych aplikacji jest trudne, ale ważne. Dokładnie sprawdź czat z systemem Android — szybki start. Mówiąc dokładniej, wyróżniona uwaga w sekcji "Konfigurowanie stałych aplikacji" i porównanie z przykładową aplikacją używanej wersji.

(Opcjonalnie) Zabezpieczanie punktu końcowego funkcji platformy Azure

W celach demonstracyjnych ten przykład domyślnie używa publicznie dostępnego punktu końcowego do pobrania tokenu usług Azure Communication Services. W przypadku scenariuszy produkcyjnych jedną z opcji jest użycie własnego zabezpieczonego punktu końcowego do aprowizowania własnych tokenów.

W przypadku dodatkowej konfiguracji ten przykład obsługuje nawiązywanie połączenia z chronionym punktem końcowym firmy Microsoft Entra, dzięki czemu dziennik użytkownika jest wymagany do pobrania tokenu usług Azure Communication Services przez aplikację. Użytkownik będzie musiał zalogować się przy użyciu konta Microsoft w celu uzyskania dostępu do aplikacji. Ta konfiguracja zwiększa poziom zabezpieczeń, gdy użytkownicy muszą się zalogować. Zdecyduj, czy ma być włączona na podstawie przypadków użycia.

Pamiętaj, że obecnie nie obsługujemy identyfikatora Entra firmy Microsoft w przykładowym kodzie. Postępuj zgodnie z poniższymi linkami, aby włączyć ją w aplikacji i funkcji platformy Azure:

Zarejestruj aplikację w obszarze Identyfikator entra firmy Microsoft (przy użyciu ustawień platformy systemu Android).

Skonfiguruj aplikację App Service lub Azure Functions, aby korzystała z logowania identyfikatora Entra firmy Microsoft.