Integrieren von Azure Function
Einführung
Dieses Tutorial enthält ausführliche Anleitungen zum Einrichten einer Azure-Funktion zum Empfangen benutzerbezogener Informationen. Das Einrichten einer Azure-Funktion wird dringend empfohlen. Es hilft, hartcodierte Anwendungsparameter in der Contoso-App (z. B. Benutzer-ID und Benutzertoken) zu vermeiden. Diese Informationen sind streng vertraulich. Noch wichtiger ist, dass wir Benutzertoken regelmäßig im Back-End aktualisieren. Bei Hartcodierung der Kombination aus Benutzer-ID und Token muss der Wert nach jeder Aktualisierung bearbeitet werden.
Voraussetzungen
Führen Sie die folgenden Schritte aus, bevor Sie beginnen:
- Erstellen Sie ein Azure-Konto mit einem aktiven Abonnement. Details finden Sie auf der Seite zum Erstellen eines kostenloses Azure-Kontos.
- Installieren Sie Visual Studio Code.
Einrichten von Funktionen
- Installieren Sie die Azure Function-Erweiterung in Visual Studio Code. Sie können sie über den Plug-In-Browser von Visual Studio Code oder über diesen Link installieren.
- Richten Sie eine lokale Azure Function-App ein, indem Sie diesem Link folgen. Wir müssen eine lokale Funktion mithilfe der HTTP-Triggervorlage in JavaScript erstellen.
- Installieren von Azure Communication Services-Bibliotheken. Wir verwenden die Identitätsbibliothek, um Benutzerzugriffstoken zu generieren. Führen Sie den Befehl „npm install“ in Ihrem lokalen Azure Function-App-Verzeichnis aus, um das Azure Communication Services Identity SDK für JavaScript zu installieren.
npm install @azure/communication-identity --save
- Ändern Sie die
index.js
-Datei, sodass sie wie der unten abgebildete Code aussieht:
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
}
};
}
Erläuterung zum Code oben: Die erste Zeile importiert die Schnittstelle für CommunicationIdentityClient
. Die Verbindungszeichenfolge in der zweiten Zeile finden Sie in Ihrer Azure Communication Services-Ressource im Azure-Portal. Die ACSEndpoint
ist die URL der ACS-Ressource (Azure Communication Services), die erstellt wurde.
- Öffnen Sie den lokalen Azure Function-Ordner in Visual Studio Code. Öffnen Sie die Datei
index.js
, und führen Sie die lokale Azure-Funktion aus. Ein lokaler Azure Function-Endpunkt wird erstellt und im Terminal ausgegeben. Die ausgegebene Nachricht sieht wie folgt aus:
Functions:
HttpTrigger1: [GET,POST] http://localhost:7071/api/HttpTrigger1
Öffnen Sie den Link in einem Browser. Das Ergebnis sieht etwa wie in diesem Beispiel aus:
{
"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"
}
Stellen Sie die lokale Funktion in der Cloud bereit. Weitere Informationen finden Sie in dieser Dokumentation.
Testen Sie die bereitgestellte Azure-Funktion. Suchen Sie zunächst Ihre Azure-Funktion im Azure-Portal. Verwenden Sie dann die Schaltfläche „Funktions-URL abrufen“, um den Azure Function-Endpunkt abzurufen. Das angezeigte Ergebnis sollte dem in Schritt 5 dargestellten ähnlich sein. Der Azure Function-Endpunkt wird in der App zum Initialisieren von Anwendungsparametern verwendet.
Implementieren Sie den Benutzertokenclient (
UserTokenClient
), der verwendet wird, um die Azure Functions-Zielressource aufzurufen und den Azure Communication Services-Endpunkt, die Benutzer-ID und das Benutzertoken aus dem zurückgegebenen JSON-Objekt abzurufen. Informationen zur Verwendung finden Sie in der Beispiel-App.
Handbuch zur Problembehandlung
- Wenn die Azure-Funktionserweiterung die lokale Funktion nicht in der Azure-Cloud bereitstellen konnte, liegt dies wahrscheinlich daran, dass die verwendete Version von Visual Studio Code und der Azure Function-Erweiterung einen Fehler aufweisen. Für diese Versionskombination wurde die Funktion erfolgreich getestet: Visual Studio Code, Version
1.68.1
, und Azure Function-Erweiterung, Version1.2.1
. - Der Ort zum Initialisieren von Anwendungskonstanten ist schwierig, aber wichtig. Überprüfen Sie den Chat-Schnellstart für Android. Insbesondere den hervorgehobenen Hinweis im Abschnitt „Einrichten von Anwendungskonstanten“, und vergleichen Sie mit der Beispiel-App der Version, die Sie nutzen.
(Optional) Schützen des Azure Function-Endpunkts
Zu Demonstrationszwecken wird in diesem Beispiel standardmäßig ein öffentlich zugänglicher Endpunkt verwendet, um ein Azure Communication Services-Token abzurufen. Für Produktionsszenarien empfehlen wir, für die Bereitstellung eigener Token Ihren eigenen geschützten Endpunkt zu verwenden.
Wenn weitere Konfigurationsschritte ausgeführt werden, wird für dieses Beispiel auch die Herstellung einer Verbindung mit einem per Microsoft Entra geschützten Endpunkt unterstützt. Damit kann für die App die Benutzerprotokollierung beim Abrufen eines Azure Communication Services-Tokens erzwungen werden. Der Benutzer muss sich mit einem Microsoft-Konto anmelden, um auf die App zuzugreifen. Durch dieses Setup wird die Sicherheitsstufe erhöht, während Benutzer sich anmelden müssen. Entscheiden Sie auf der Grundlage der Anwendungsfälle, ob sie aktiviert werden soll.
Beachten Sie, dass Microsoft Entra ID derzeit nicht in Beispielcode unterstützt wird. Folgen Sie den Links unten, um es in Ihrer App und Azure Function zu aktivieren:
Registrieren Ihrer App unter Microsoft Entra ID (über die Einstellungen der Android-Plattform).