Wir stellen die On-Premises API ein. Weitere Informationen und wie du auf unsere Cloud API der nächsten Generation migrieren kannst, findest du in unserem Dokument zur Einstellung der On-Premises API.
Hier erfährst du, wie du die WhatsApp Business API mit Amazon Web Services (AWS) verwendest. Der Prozess lässt sich in zwei Hauptschritte unterteilen:
Nach dem Setup kannst du ein Upgrade des Clients durchführen. Wenn du die Webapp und CoreApp einmal beide neu starten musst, führe diese Schritte aus.
In diesem Dokument werden die einzelnen Komponenten einer neuen AWS-Vorlage erläutert, die wir getestet haben, um einen höheren und stabileren Nachrichtendurchsatz zu erzielen. Informationen zur älteren AWS-Vorlage findest du im AWS-Archiv.
Bevor du beginnst, musst du die folgenden Schritte ausführen:
Du musst ein gültiges AWS-Konto einrichten und mit den Vorgängen in AWS vertraut sein. WhatsApp stellt CloudFormation-Vorlagen für die einfache Bereitstellung des WhatsApp Business API-Clients zur Verfügung. Mehr dazu erfährst du unter Erste Schritte mit dem AWS-Ressourcencenter.
Du musst ein neues Schlüsselpaar erstellen, um auf die EC2-Instanz zuzugreifen, die durch die WhatsApp Business API-Vorlage erstellt wurde. Du kannst auch ein zuvor erstelltes Schlüsselpaar verwenden. Informationen zum Erstellen und Verwenden von Schlüsselpaaren mit einer EC2-Instanz findest du in der Dokumentation zu Amazon EC2-Schlüsselpaaren.
Das Schlüsselpaar muss mit der Region erstellt werden, für die du die WhatsApp Business API bereitstellst.
Der WhatsApp Business API-Client verwendet ein CentOS 9-Image (in AWS Marketplace verfügbar). Die Nutzungsbedingungen sollten vor Verwendung der Vorlage überprüft und akzeptiert werden. Wenn du die Bedingungen nicht akzeptierst, führt dies beim Erstellen der Vorlage zu einem Fehler.
So überprüfst und akzeptierst du das CentOS 9 AMI-Image:
Die WhatsApp Business API-Vorlagen verwenden den Ressourcentyp EFS, der nicht in allen AWS-Regionen verfügbar ist. Daher werden derzeit nur die folgenden Regionen unterstützt:
Abhängig von der Erstprüfung wird WhatsApp festlegen, ob wir eine alternative Option anbieten können, die in allen Regionen verfügbar ist.
No, we don't support KOPS. We do support the AWS solution based on ECS. We also have a general Kubernetes minikube setup.
Das VPC-Netzwerk (Virtual Private Cloud) wird in der Regel erstellt, wenn du ein AWS-Konto registrierst. Darüber hinaus können mehrere Anpassungen und Zugriffsbeschränkungen erforderlich sein, die für ein bestimmtes Unternehmen spezifisch sind.
Wenn die VPC-Netzwerkinfrastruktur bereits erstellt wurde, kannst du diesen Schritt überspringen. Andernfalls kannst du anhand der folgenden Vorlage die Netzwerkinfrastruktur in AWS erstellen.
Die Netzwerkvorlage wird nur zu Referenzzwecken zur Verfügung gestellt. Du kannst sie an deine spezifischen Bedürfnisse anpassen.
Bereitstellen der Netzwerkvorlage:
Name | Beschreibung |
---|---|
| Erforderlich. Name des zu erstellenden Stacks |
Name | Beschreibung |
---|---|
| Erforderlich. Die Verfügbarkeitszonen zum Erstellen der VPC |
| Erforderlich. Die Anzahl der ausgewählten Verfügbarkeitszonen |
Name | Beschreibung |
---|---|
| Erforderlich. Der IP-Adressbereich (CIDR) für diese VPC |
| Erforderlich. Der VPC-Mandant |
Name | Beschreibung |
---|---|
| Erforderlich. Der IP-Adressbereich (CIDR) für öffentliche Subnetze |
| Erforderlich. Der IP-Adressbereich (CIDR) für öffentliche Subnetze |
| Optional. Erforderlich, wenn die Anzahl der Verfügbarkeitszonen größer als 2 ist. |
| Optional. Erforderlich, wenn die Anzahl der Verfügbarkeitszonen größer als 3 ist. |
Name | Beschreibung |
---|---|
| Erforderlich. Optionen: |
| Bedingt. Erforderlich, wenn die Erstellung von privaten Subnetzen auf |
| Bedingt. Erforderlich, wenn die Erstellung von privaten Subnetzen auf |
| Bedingt. Erforderlich, wenn die Erstellung von privaten Subnetzen auf |
| Bedingt. Erforderlich, wenn die Erstellung von privaten Subnetzen auf |
Bevor du den WhatsApp Business API-Stack auf AWS bereitstellst, musst du zuerst die Konfigurationsdateien referenzierter Substacks in einen S3-Bucket hochladen, auf den du Lesezugriff hast.
WhatsApp Enterprise ist die Hauptvorlage, mit der alle Ressourcen (außer dem Netzwerk) erstellt werden, die für den WhatsApp Business API-Client benötigt werden. Wie bereits erwähnt, kann bei Bedarf anhand dieser Vorlage auch eine Datenbank-Ressource erstellt werden.
Bereitstellen des WhatsApp Business API-Clients:
Name | Beschreibung |
---|---|
| Erforderlich. Der Name des zu erstellenden Stacks. Dar Stack-Name darf maximal 22 Zeichen enthalten. Hinweis: Für Bereitstellungen in den Regionen ap-southeast-1, ap-southeast-2, ap-northeast-1 und ap-northeast-2 darf der Stack-Name maximal 8 Zeichen haben. Wenn der |
Name | Beschreibung |
---|---|
| Optional. Aktiviert die Funktion für Hochverfügbarkeit. Standard: |
| Erforderlich. Anzahl der Nachrichten, die pro Sekunde gesendet werden sollen. Bei gemeinsamer Verwendung mit der Option |
| Erforderlich. Der Nachrichtentyp, den du überwiegend senden und empfangen möchtest. Bei gemeinsamer Verwendung mit der Option |
| Optional. Installiert Node-Exporter zu Zwecken der Instanzüberwachung auf jedem CoreApp-Host. Standard: |
Name | Beschreibung |
---|---|
| Erforderlich. Der Name des CloudFormation-Stacks im Netzwerk, der im Schritt „Netzwerk-Setup“ erstellt wurde. |
| Erforderlich. Die Anzahl der ausgewählten Subnetze. Derzeit werden nur 2 Subnetze für die Bereitstellung unterstützt, um die ECS-Aufgaben gleichmäßig auf allen Hosts zu verteilen. |
| Erforderlich. Derzeit werden nur mit dem Internet verbundene Load Balancer unterstützt, die öffentlich sichtbar sind. Ändere die Sicherheitsgruppen nach der Erstellung des API-Stacks, um nicht notwendige Zugriffe zu unterbinden. |
Name | Beschreibung |
---|---|
| Erforderlich. Das entsprechende Schlüsselpaar, um bei Bedarf auf die EC2-Instanz zuzugreifen. |
| Optional. Das soll den zukünftigen Support für experimentelle WhatsApp Business API-Clients sicherstellen. Der Standardwert sollte für die meisten Fälle geeignet sein. |
| Erforderlich. Es wird immer empfohlen, die neueste stabile Version zu verwenden (siehe Änderungsprotokoll). Die Version des WhatsApp Business API-Clients beginnt immer mit einem „v“, sofern nicht ausdrücklich anders angegeben. Die Verwendung einer falschen Version führt zu einem Fehler bei der Stackerstellung. |
| Erforderlich. Für Produktionslasten werden 32 GB oder mehr empfohlen. |
Name | Beschreibung |
---|---|
| Optional. Damit kannst du Konfigurationsinformationen in der Datenbank speichern. |
| Optional. Der Hostname der vorhandenen Datenbank. |
| Erforderlich. Der Administratorname für den Zugriff auf die Datenbank. |
| Erforderlich. Das Administratorpasswort für den Zugriff auf die Datenbank. Das Datenbankpasswort darf keines der folgenden Zeichen enthalten: ?{}&~!()^/"@ |
| Erforderlich. Portnummer für den Zugriff auf das Datenbank-Backend. |
| Optional. Gibt an, ob die Datenbankverbindung für Webcontainer persistent gemacht werden soll. Standard: |
| Optional. Gibt an, nach wie vielen Millisekunden die Datenbank inaktive Verbindungen schließt. |
Name | Beschreibung |
---|---|
| Optional. Der Protokollierungstreiber für die Containerprotokolle. |
| Optional. Die maximale Größe einer Container-Protokolldatei in MB, bevor sie rotiert wird. Zulässige Werte: 1 bis 250 (jeweils einschließlich). Standard: 50. |
| Optional. Die maximale Anzahl von Protokolldateien, die pro Container aufbewahrt werden müssen. Zulässige Werte: 1 bis 30 (jeweils einschließlich). Standard: 7. |
| Optional. Anzahl der Tage, für die Protokolle in CloudWatch aufbewahrt werden sollen. Standard: |
Name | Beschreibung |
---|---|
| Nicht verwendet. Lass diesen Parameter leer. |
Name | Beschreibung |
---|---|
| Optional. Standardmäßig wird der AWS-Dienstschlüssel (Option Default-Key) verwendet, um DB- und EFS-Daten im Ruhezustand zu verschlüsseln. Sonstige Optionen:
|
| Optional. Du kannst eine KMS-Schlüssel-ID angeben, die zur Verschlüsselung der Daten verwendet wird. Lass dieses Feld leer, wenn die Option User-Provided-Keynicht ausgewählt ist. |
| Optional. Standardmäßig werden Daten während der Übertragung zur Datenbank verschlüsselt. Das gilt derzeit nur für die Coreapp. Die Webapp-Verschlüsselung wird noch nicht unterstützt. Coreapp führt zudem dank einer neuen Datenbank-Engine eine Verschlüsselung durch, selbst wenn diese Option deaktiviert ist, jedoch ohne Überprüfung des Serverzertifikats (Identität). |
| Optional. Der Standardwert beinhaltet das RDS-Zertifikat-Bundle. Wird eine Nicht-RDS-Datenbank verwendet, kannst du das entsprechende CA-Zertifikat-Bundle angeben oder leer lassen. Der Standardwert aktiviert eine sichere Verbindung zur Datenbank. |
| Optional. Das Clientzertifikat für die Datenbankverbindung |
| Optional. Der Clientschlüssel für die Datenbankverbindung |
Diese Parameter sind für Grafana-Dashboards erforderlich, um Anwendungskennzahlen zu Überwachungszwecken abzurufen.
Name | Beschreibung |
---|---|
| Erforderlich. Gibt den Benutzernamen für die WhatsApp Business API an. |
| Erforderlich. Gibt das Passwort für |
Name | Beschreibung |
---|---|
| Erforderlich. Gibt das Passwort an, das bei der Stack-Erstellung als Anmeldepasswort für das Grafana-Dashboard verwendet wird. |
| Optional. Gibt an, ob SMTP zum Einrichten von E-Mail-Warnungen aktiviert ist. Gültige Werte: Standard: |
| Optional. Der in E-Mail-Warnungen verwendete SMTP-Host. Zum Beispiel smtp.gmail.com:465. |
| Optional. Gibt den in E-Mail-Warnungen verwendeten SMTP-Benutzernamen an. |
| Optional. Gibt das in E-Mail-Warnungen verwendete SMTP-Passwort an. |
Nach der erfolgreichen Erstellung der Vorlage werden die folgenden Parameter angezeigt:
Die vom Stack erstellten Sicherheitsregeln erlauben dem gesamten Traffic standardmäßig, die EC2-Instanzen über SSH, die API-Endpunkte und das Grafana-Dashboard über HTTPs sowie die Cadvisor- und Prometheus-Container zu erreichen. Aus Sicherheitsgründen wird dringend empfohlen, nicht notwendige Zugriffe zu unterbinden. In diesem Abschnitt werden als Beispiel die Schritte zur Aktualisierung der SSH-Sicherheitsregel beschrieben. Du solltest SSH-Zugriff immer ausschließlich auf Traffic beschränken, dem du vertraust.
"<stackName>-ms-xxx-EcsSecurityGroup"
enthält, um SSH-Zugriff für den Monitoring-Stack einzuschränken.
Nach erfolgreicher Bereitstellung des WhatsApp Business API-Clients muss dieser für die Inbetriebnahme konfiguriert werden.
Ausführlichere Informationen zur Registrierung von Telefonnummern findest du im Leitfaden zu Telefonnummern.
Lade das base64-codierte Zertifikat über deinen WhatsApp Account im Facebook Business Manager auf dem Tab Phone Numbers des WhatsApp Manager herunter.
Nachdem du die entsprechende Telefonnummer ausgewählt und das base64-codierte Zertifikat heruntergeladen hast, musst du den WhatsApp Business API-Client über den account
-Node registrieren. Weitere Informationen findest du in der Dokumentation zur Registrierung.
Wenn über die Telefonnummer SMS-Nachrichten empfangen werden können, rufe den Registrierungscode per SMS ab.
Wenn du den Registrierungscode von WhatsApp bereits erhalten hast, kannst du diesen Schritt überspringen.
Nach der Erstellung des Stacks musst du die Anzahl der aktiven Coreapp-Instanzen mit dem shards
-API-Aufruf erhöhen, um den gewünschten Durchsatz zu erzielen. Die Anzahl der Shards findest du im Ausgabeabschnitt des Stacks.
Die Konfiguration von Web-Rückrufen mit der WhatsApp Business API und anderen Parametern ist in der Dokumentation zu App-Einstellungen beschrieben. Zum Erzielen eines stabilen Durchsatzes werden die folgenden App-Einstellungen empfohlen.
{ "settings": { "application": { "callback_backoff_delay_ms": 3000, "callback_persist": true, "db_garbagecollector_enable": false, # change this to true when there are no ongoing messaging campaigns "heartbeat_interval": 5, "max_callback_backoff_delay_ms": 900000, "media": { "auto_download": [ "document", "image", "video", "voice", "sticker", "audio" ] }, "notify_user_change_number": true, "pass_through": false, "sent_status": true, "show_security_notifications": false, "skip_referral_media_download": false, "unhealthy_interval": 30, "wa_id": "12245552741", "webhooks": { "max_concurrent_requests": 24, "message": { "delivered": true, "read": true, "sent": true }, "url": "<YOUR_WEBHOOK_SERVER_URL>" } } }, "meta": { "api_status": "stable", "version": "2.41.3" } }
Beim Erstellen des WhatsApp Business API-Clients erstellt der Client standardmäßig ein selbstsigniertes Zertifikat. Das Zertifikat der Zertifizierungsstelle (Certification Authority, CA), mit dem das selbstsignierte Zertifikat erstellt wurde, wird unter Umständen benötigt, um den Endpunkt des WhatsApp Business API-Clients zu überprüfen und eine Sicherheitswarnung hinsichtlich der Vertraulichkeit des Zertifikats zu vermeiden.
Du kannst das CA-Zertifikat herunterladen und lokal speichern, um die Sicherheitswarnung hinsichtlich der Vertraulichkeit des Zertifikats zu umgehen. Alternativ kannst du ein eigenes Zertifikat hochladen. Weitere Informationen findest du in der Dokumentation zum certificate
-Node.
Bei AWS-Bereitstellungen wird das SSL-Zertifikat unter Verwendung des Load Balancer-Hostnamens erstellt. Wenn für den Zugriff eine IP-Adresse anstelle des Hostnamens verwendet wird, wird die Warnung trotzdem angezeigt.
WhatsApp wird die Konfiguration von SSL-Zertifikaten, die von Kunden bereitgestellt werden, in einer zukünftigen Version unterstützen.
Nach erfolgreichem Abschluss der Konfigurations- und Registrierungsschritte können Nachrichten gesendet und empfangen werden, um die Grundfunktionalität des WhatsApp Business API-Clients zu überprüfen. Eine ausführliche Beschreibung hierzu findest du in der Dokumentation zu Nachrichten.
Nach dem erfolgreichen Empfang einer Nachricht veröffentlicht der WhatsApp Business API-Client mithilfe von POST
den Nachrichtenstatus bzw. Details zum Webhook, der in Schritt 3 konfiguriert wurde.
Wenn deine Nachricht empfangen wurde: Herzlichen Glückwunsch, du bist fertig! Weitere Informationen zu den verfügbaren API-Endpunkten findest du in der Referenzdokumentation.
Um den WhatsApp Business API-Client neu zu starten, führe in der ECS-Konsole (beispielsweise https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters) folgende Schritte aus:
Dadurch werden die Webapp und die CoreApp angehalten. Kurz darauf werden die Webapp und die CoreApp von der AWS-Infrastruktur neu gestartet.
Rechne mit einer Ausfallzeit von etwa ein bis zwei Minuten.
Die direkte Aktualisierung eines CloudFormation-Stacks kann dazu führen, dass die Datenbank beschädigt wird und neu erstellt werden muss. Wir empfehlen dir dringend, dich beim Aktualisieren des Systems an die manuellen Schritte im nächsten Abschnitt zu halten, um Datenverluste zu vermeiden.
In diesem Abschnitt wird das Upgrade des WhatsApp Business API-Clients und der CloudFormation-Vorlage (CFN-Vorlage) beschrieben. Bei diesem Upgrade kommt es zu einer Ausfallzeit. Sende währenddessen also keine Nachrichten. Sende erst wieder Nachrichten, wenn das Upgrade abgeschlossen ist.
Du kannst die CFN-Vorlage und die WhatsApp Business API-Clientversion gleichzeitig aktualisieren. Führe dazu die folgenden Schritte aus:
Schnelle Upgrade-Verifizierung:Sende eine Textnachricht und überprüfe, ob die API-Antwort die richtige Versionsnummer (d. h. die neue Version) enthält. Überprüfe auch, ob die Nachricht vom Empfänger empfangen wird.
Es ist üblich, dass Unternehmen für eine zeitlich begrenzte Kampagne eine Umgebung mit hohem Durchsatz einrichten und in der kampagnenfreien Zeit eine kostengünstige Umgebung betreiben möchten. In diesem Abschnitt findest du Vorschläge, wie du das AWS-Setup manuell herunterskalieren kannst, um Kosten zu sparen.
Wichtig: Denke daran, dass es dabei zu einer Ausfallzeit kommt. Die geschätzte Ausfallzeit beträgt 5 bis 15 Minuten. Vergewissere dich, dass du alle DevOps Best Practices befolgt hast, wie das Sichern der App-Einstellungen und das Erstellen einer Datenbanksicherung.
2
.c5.large
ersetzen.
c5.large
und wähle dann Create template version.
r5.xlarge
.
3
.3
.2
.2
.2
zurück.