Dieses Dokument wurde aktualisiert.
Die Übersetzung ins Deutsche ist noch nicht fertig.
Englisch aktualisiert: 02.01.2023

Bereitstellung mit Amazon Web Services

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:

  1. Bereitstellung des WhatsApp Business API-Clients
  2. Konfiguration des WhatsApp Business API-Clients

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.

Los geht‘s

Bevor du beginnst, musst du die folgenden Schritte ausführen:

Einrichten einer AWS-Konto-ID

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.

Erstellen eines AWS-Schlüsselpaars

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.

Abonnieren eines CentOS 7-Images

Der WhatsApp Business API-Client verwendet ein CentOS 7-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 7 AMI-Image:

  1. Gehe zur Seite AWS Marketplace: CentOS 7 (x86_64) - with Updates HVM.
  2. Klicke oben rechts auf Continue to Subscribe und dann auf den Button Accept Terms.
Akzeptieren der CentOS-Bedingungen

Unterstützte Regionen

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:

  • N. Virginia (us-east-1)
  • Ohio (us-east-2)
  • N. California (us-west-1)
  • Oregon (us-west-2)
  • Mumbai (ap-south-1)
  • Seoul (ap-northeast-2)
  • Singapore (ap-southeast-1)
  • Sydney (ap-southeast-2)
  • Tokyo (ap-northeast-1)
  • Frankfurt (eu-central-1)
  • Irland (eu-west-1)

Abhängig von der Erstprüfung wird WhatsApp festlegen, ob wir eine alternative Option anbieten können, die in allen Regionen verfügbar ist.

FAQs

Bereitstellung

Schritt 1: [Optional] Netzwerk-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.

Netzwerkanforderungen

  • Innerhalb einer Region müssen mindestens zwei Subnetze in unterschiedlichen Verfügbarkeitszonen vorhanden sein. Andernfalls schlägt die Vorlagenerstellung beim Erstellen der RDS-Ressource (Datenbank) fehl.
  • Der eingehende Zugriff auf HTTP (Port: 80), HTTPS (Port: 443) und SSH (Port: 22) muss zugelassen werden. Aus Sicherheitsgründen wird dringend empfohlen, HTTPS und nicht HTTP zu verwenden.

Bereitstellen der Netzwerkvorlage:

  1. Rufe die CloudFormation-Konsole für deine Region auf (z. B. eu-west-1).
  2. Wähle Create a stack aus.
  3. Wähle Amazon S3 URL als Vorlagenquelle aus.
    Stack erstellen
  4. Gib https://wa-biz-cfn.s3.amazonaws.com/wa_ent_net.yml ein und klicke auf Next oder klicke auf

    Deploy Template

    und wähle bei Bedarf oben rechts auf der Webseite die entsprechende Region aus.
  5. Gib auf dem Bildschirm Specify stack details die Parameterwerte entsprechend der unten stehenden Tabelle ein:

Parameter

NameBeschreibung

Stack name

Erforderlich.

Name des zu erstellenden Stacks

Konfiguration der Verfügbarkeitszonen

NameBeschreibung

Availability zones

Erforderlich.

Die Verfügbarkeitszonen zum Erstellen der VPC
Die Vorlage erfordert, dass mindestens 2 Verfügbarkeitszonen ausgewählt werden. Für Produktionsumgebungen wird empfohlen, mindestens 3 Verfügbarkeitszonen auszuwählen.

Number of availability zones

Erforderlich.

Die Anzahl der ausgewählten Verfügbarkeitszonen

VPC-Konfiguration

NameBeschreibung

IP address range

Erforderlich.

Der IP-Adressbereich (CIDR) für diese VPC

Tenancy

Erforderlich.

Der VPC-Mandant
Optionen:default, dedicated

Konfiguration des öffentlichen Subnetzes

NameBeschreibung

IP range - subnet #1

Erforderlich.

Der IP-Adressbereich (CIDR) für öffentliche Subnetze

IP range - subnet #2

Erforderlich.

Der IP-Adressbereich (CIDR) für öffentliche Subnetze

IP range - subnet #3

Optional.

Erforderlich, wenn die Anzahl der Verfügbarkeitszonen größer als 2 ist.

IP range - subnet #4

Optional.

Erforderlich, wenn die Anzahl der Verfügbarkeitszonen größer als 3 ist.

Konfiguration des privaten Subnetzes

NameBeschreibung

Create private subnets?

Erforderlich.

Optionen:true (Standard), false
Wenn ein privates Subnetz aus irgendeinem Grund nicht benötigt wird, kann dieses Flag auf false gesetzt werden.

IP range - subnet #1

Bedingt.

Erforderlich, wenn die Erstellung von privaten Subnetzen auf true gesetzt ist.

IP range - subnet #2

Bedingt.

Erforderlich, wenn die Erstellung von privaten Subnetzen auf true gesetzt ist.

IP range - subnet #3

Bedingt.

Erforderlich, wenn die Erstellung von privaten Subnetzen auf true gesetzt und die Anzahl der Verfügbarkeitszonen größer als 2 ist.

IP range - subnet #4

Bedingt.

Erforderlich, wenn die Erstellung von privaten Subnetzen auf true gesetzt und die Anzahl der Verfügbarkeitszonen größer als 3 ist.

Schritt 2: Konfigurationsdateien von DB- und Monitoring-Stack hochladen

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.

  1. Erstelle einen neuen S3-Bucket oder verwende einen vorhandenen S3-Bucket, auf den du Lesezugriff hast.
  2. Lade die Dateien wa_ent_db.yml und wa_ent_monitoring.yml von GitHub herunter und lade beide in den in Schritt 1 erwähnten S3-Bucket hoch.
  3. Wähle die Datei wa_ent_db.yml in der Objektliste aus und kopiere ihre URL. Sie muss das folgende Format aufweisen: https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml.
  4. Ersetze in der Datei wa_ent.yml den Wert der TemplateURL im DB-Stack durch die Objekt-URL aus Schritt 3 und speichere die Datei.
  5. Wähle die Datei wa_ent_monitoring.yml in der Objektliste aus und kopiere ihre URL. Sie muss das folgende Format aufweisen: https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml.
  6. Ersetze in der Datei wa_ent.yml den Wert der TemplateURL im Monitoring-Stack durch die Objekt-URL aus Schritt 5 und speichere die Datei.
Hochladen in S3-Bucket

Schritt 3: Bereitstellung der WhatsApp Business API

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:

  1. Rufe die CloudFormation-Konsole für deine Region auf (beispielsweise eu-west-1).
  2. Wähle Create a stack aus.
  3. Lade die Datei wa_ent.yml von GitHub herunter und speichere sie lokal.
  4. Wähle Upload a template file als Vorlagenquelle aus und lade die in Schritt 3 heruntergeladene Vorlagendatei hoch.
    Stack erstellen
  5. Klicke auf Next.
  6. Anschließend hast du die Möglichkeit, Parameter einzugeben. In der nachstehenden Tabelle findest du die Parameterbeschreibungen.
  7. Nachdem du alle Parameter (in den nachstehenden Tabellen) festgelegt hast, klicke auf der Seite Configure stack options auf Next. Du kannst alle erforderlichen Änderungen entsprechend deinen Präferenzen vornehmen. Klicke dann auf Next.
  8. Auf der Seite Review stack wird eine Zusammenfassung von Parameterwerten und Stack-Optionen angezeigt. Nachdem du diese verifiziert hast, aktiviere beide Kontrollkästchen im Abschnitt Capabilities und klicke auf Submit, um die Stack-Erstellung zu starten.
    Hinweis: Die Bereitstellung dauert ungefähr 20 bis 30 Minuten.

Parameter

NameBeschreibung

Stack name

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 stack name diese Beschränkungen überschreitet, wird die Erstellung des Stacks unterbrochen. Sie schlägt dann fehl, da das SSL-Zertifikat nicht erstellt werden kann.

Allgemeine Konfiguration

NameBeschreibung

High Availability

Optional.

Aktiviert die Funktion für Hochverfügbarkeit.


Standard:enabled

Desired Throughput

Erforderlich.

Anzahl der Nachrichten, die pro Sekunde gesendet werden sollen.


Bei gemeinsamer Verwendung mit der Option Type of Message werden Server- und Datenbankressourcen automatisch ausgewählt und so konfiguriert, dass beim Senden des ausgewählten Nachrichtentyps der gewünschte Durchsatz erreicht wird.

Type of Message

Erforderlich.

Der Nachrichtentyp, den du überwiegend senden und empfangen möchtest.


Bei gemeinsamer Verwendung mit der Option Desired Throughput werden Server- und Datenbankressourcen automatisch ausgewählt und so konfiguriert, dass beim Senden des ausgewählten Nachrichtentyps der gewünschte Durchsatz erreicht wird.

Host exporter for instance monitoring

Optional.

Installiert Node-Exporter zu Zwecken der Instanzüberwachung auf jedem CoreApp-Host.


Standard:enabled

Netzwerkkonfiguration

NameBeschreibung

Network Stack Name

Erforderlich.

Der Name des CloudFormation-Stacks im Netzwerk, der im Schritt „Netzwerk-Setup“ erstellt wurde.

Number of subnets

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.

Load balancer scheme

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.

Containerkonfiguration

NameBeschreibung

Keypair to use

Erforderlich.

Das entsprechende Schlüsselpaar, um bei Bedarf auf die EC2-Instanz zuzugreifen.

WA Enterprise container registry

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.

WA Enterprise Client version

Erforderlich.

Es wird immer empfohlen, die neueste stabile Version zu verwenden (siehe Änderungsprotokoll).
Format:v2.yy.xx

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.

EBS volume size

Erforderlich.

Für Produktionslasten werden 32 GB oder mehr empfohlen.

Datenbankkonfiguration

NameBeschreibung

Store configuration in DB

Optional.

Damit kannst du Konfigurationsinformationen in der Datenbank speichern.
Optionen:true (Standard), false
Bei false werden die Konfigurationsinformationen nicht in der Datenbank, sondern in Dateien gespeichert.

Existing DB hostname

Optional.

Der Hostname der vorhandenen Datenbank.
Wenn du bereits über eine dedizierte MySQL-Datenbankinstanz für den WhatsApp Business API-Client verfügst, kannst du den entsprechenden Hostnamen hier eingeben.
Wenn du keinen Namen angibst, wird eine neue Amazon Aurora-Instanz erstellt. Um einen stabilen hohen Durchsatz zu erzielen, solltest du unbedingt eine neue Aurora-Datenbank erstellen oder eine vorhandene Aurora-Datenbank verwenden, die zuvor mit dieser Vorlage erstellt wurde.

Administrator name

Erforderlich.

Der Administratorname für den Zugriff auf die Datenbank.

Administrator password

Erforderlich.

Das Administratorpasswort für den Zugriff auf die Datenbank.

Das Datenbankpasswort darf keines der folgenden Zeichen enthalten: ?{}&~!()^/"@

Server port

Erforderlich.

Portnummer für den Zugriff auf das Datenbank-Backend.

Persist DB Connection

Optional.

Gibt an, ob die Datenbankverbindung für Webcontainer persistent gemacht werden soll.


Standard:enabled

DB Idle Connection Timeout

Optional.

Gibt an, nach wie vielen Millisekunden die Datenbank inaktive Verbindungen schließt.
Standard: 180000 ms

Protokollierungskonfiguration

NameBeschreibung

Logging driver for container logs

Optional.

Der Protokollierungstreiber für die Containerprotokolle.
Optionen:json-file, awslogs (Standard)
Mit dem Wert json-file werden die Protokolle auf EC2-Hosts gespeichert. Mit dem Wert awslogs werden alle Containerprotokolle in CloudWatch gestreamt.

Maximum container log file size

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.

Maximum number of container log files

Optional.

Die maximale Anzahl von Protokolldateien, die pro Container aufbewahrt werden müssen.
Angehaltene Container werden schließlich vom Host entfernt. In diesen Fällen werden alle für diesen Container aufbewahrten Protokolldateien gelöscht.

Zulässige Werte: 1 bis 30 (jeweils einschließlich). Standard: 7.

Days to retain CloudWatch logs

Optional.

Anzahl der Tage, für die Protokolle in CloudWatch aufbewahrt werden sollen.
Wähle einen der verfügbaren Werte in der Liste aus.

Standard: 7

Dateisystemkonfiguration

NameBeschreibung

File system identifier

Nicht verwendet.

Lass diesen Parameter leer.

Sicherheitskonfiguration

NameBeschreibung

Key to encrypt DB & EFS

Optional.

Standardmäßig wird der AWS-Dienstschlüssel (Option Default-Key) verwendet, um DB- und EFS-Daten im Ruhezustand zu verschlüsseln. Sonstige Optionen:

  • Unencrypted: Daten im Ruhezustand werden nicht verschlüsselt.
  • Create-New-Key: Ein neuer KMS-Schlüssel wird erstellt und zur Verschlüsselung der Daten verwendet.
  • User-Provided-Key: Du kannst eine KMS-Schlüssel-ID angeben, die zur Verschlüsselung der Daten verwendet wird. Lass dieses Feld leer, wenn eine andere Option ausgewählt ist.

User provided key id

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.

DB connection encryption

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).

CA certificate for DB connection

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.

Client certificate for DB connection

Optional.

Das Clientzertifikat für die Datenbankverbindung

Client key for DB connection

Optional.

Der Clientschlüssel für die Datenbankverbindung

Zugriffspunkt der WhatsApp Business API

Diese Parameter sind für Grafana-Dashboards erforderlich, um Anwendungskennzahlen zu Überwachungszwecken abzurufen.

NameBeschreibung

WAWebUsername

Erforderlich.

Gibt den Benutzernamen für die WhatsApp Business API an.

WAWebPassword

Erforderlich.

Gibt das Passwort für WAWebUsername an. Dies ist das neue Passwort, nachdem du das Standardpasswort bei der ersten Anmeldung geändert hast.

Grafana

NameBeschreibung

GrafanaAdminPassword

Erforderlich.

Gibt das Passwort an, das bei der Stack-Erstellung als Anmeldepasswort für das Grafana-Dashboard verwendet wird.

GrafanaEnableSmtp

Optional.

Gibt an, ob SMTP zum Einrichten von E-Mail-Warnungen aktiviert ist. Gültige Werte: 0 für deaktiviert und 1 für aktiviert.

Standard:0 (deaktiviert)

GrafanaSmtpHost

Optional.

Der in E-Mail-Warnungen verwendete SMTP-Host. Zum Beispiel smtp.gmail.com:465.

GrafanaSmtpUser

Optional.

Gibt den in E-Mail-Warnungen verwendeten SMTP-Benutzernamen an.

GrafanaSmtpPassword

Optional.

Gibt das in E-Mail-Warnungen verwendete SMTP-Passwort an.

Ausgabe nach der Bereitstellung

Nach der erfolgreichen Erstellung der Vorlage werden die folgenden Parameter angezeigt:

  • Load balancer name: Hostname des Load Balancer, der auf den WhatsApp Business Platform API-Client zugreift
  • Database hostname: Hostname der Datenbank, die bei der Vorlagenerstellung erstellt oder bereitgestellt wird
  • Database port number: Portnummer für die Datenbankverbindung
  • ECS cluster name: Name des erstellten ECS-Clusters
  • Log retention days: Anzahl der Tage, für die Protokolle aufbewahrt werden sollen
  • DB connection CA: Wert der Zertifizierungsstelle für die Datenbankverbindung, sofern konfiguriert
  • DB connection cert: Wert des Zertifikats für die Datenbankverbindung, sofern konfiguriert
  • DB connection key: Wert des Schlüssels für die Datenbankverbindung, sofern konfiguriert
  • Grafana: URL des Grafana-Dashboards
  • ShardCount: Anzahl der für die WhatsApp Business Platform API zu konfigurierenden Shards

SSH-Sicherheitsregeln bearbeiten

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.

  1. Führe in der EC2-Konsole „Security Groups“ (beispielsweise EC2 Management Console (amazon.com)) die folgenden Schritte aus:
    1. Wähle rechts oben die richtige Region aus.
    2. Wähle die Sicherheitsgruppe aus, die <stackName>-EcsSecurityGroup enthält, und wechsle dann zum Tab Inbound Rules.
      Regeln für eingehenden Traffic bearbeiten
    3. Wähle Edit inbound rules aus und aktualisiere die Spalte Source so, dass nur vertrauenswürdigem Traffic (z. B. My IP) der Zugriff auf EC2-Hosts über SSH erlaubt wird.
    4. Nachdem du alle Sicherheitsregeln angepasst hast, klicke auf Save rules, um die Änderungen anzuwenden.
    5. Wiederhole diese Änderungen für die Sicherheitsgruppe, die "<stackName>-ms-xxx-EcsSecurityGroup" enthält, um SSH-Zugriff für den Monitoring-Stack einzuschränken.

Konfiguration des WhatsApp Business API-Clients

Nach erfolgreicher Bereitstellung des WhatsApp Business API-Clients muss dieser für die Inbetriebnahme konfiguriert werden.

Schritt 1: Telefonregistrierung

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.

Schritt 2: Shards festlegen

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.

Schritt 3: App-Einstellungen aktualisieren

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"
    }
}

      
      
    

Schritt 4: [Optional] SSL-Konfiguration

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 Zertifikats 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.

Schritt 5: Setup-Überprüfung

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.

Neustart von Coreapp und Webapp

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:

  1. Wähle rechts oben die richtige Region aus.
  2. Wähle den entsprechenden Cluster aus der Liste aus.
  3. Wähle auf dem Tab Services den Servicenamen aus, der WAEntService enthält.
  4. Wähle den Tab Tasks aus. Es sollte typischerweise nur eine Aufgabe vorhanden sein sowie eine ID aus Hexadezimalziffern.
  5. Klicke im Fenster Tasks oben rechts auf Stop und dann erneut auf Stop, wenn du dazu aufgefordert wirst.

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.

Upgrade

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:

  1. Wähle in Schritt 5 der Upgrade-Anweisungen für den WhatsApp Business API-Client anstelle von Use current template die Option Replace current template aus.
  2. Wähle im Abschnitt Specify template die Option „Upload a template file“ aus und wähle dann die neueste von GitHub heruntergeladene Vorlage.

Upgrade des WhatsApp Business API-Clients

  1. Rufe die CFN-Konsole auf (beispielsweise https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Wähle rechts oben die richtige Region aus.
  3. Wähle den WhatsApp Business API-Client-Stack aus, der bereits erstellt wurde.
  4. Klicke auf Update.
  5. Wähle auf der Seite Prerequisite - Prepare template die Option Replace current template aus. Wähle im Abschnitt Specify template die Option „Upload a template file“ aus und wähle dann die neueste von GitHub heruntergeladene Vorlage. Klicke auf Next.
  6. Ändere auf der Seite Specify stack details den Wert für WhatsApp Business API Client (container) version in die gewünschte Version. Ändere KEINEN anderen Parameter. Klicke auf Next.
  7. Klicke auf der Seite Configure stack options auf Next.
  8. Wähle auf der Seite Review „I acknowledge that AWS CloudFormation might create IAM resources with custom names“ aus. Überprüfe im Abschnitt Change set preview alle unerwarteten Änderungen. Wenn es unerwartete Änderungen gibt oder du nicht sicher bist, wende dich bitte an WhatsApp Direct Support. Klicke auf Update stack. Der Status der Stack-Aktualisierung kann in der CFN-Konsole nachverfolgt werden und ändert sich von UPDATE_IN_PROGRESS in UPDATE_COMPLETE, sobald die Aktualisierung abgeschlossen ist.

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.

Upgrade von WhatsApp-CFN-Vorlagen

  1. Rufe die CFN-Konsole (CloudFormation) auf (beispielsweise https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Wähle rechts oben die richtige Region aus.
  3. Wähle den WhatsApp Business API-Client-Stack aus, der bereits erstellt wurde.
  4. Klicke auf Update.
  5. Wähle auf der Seite Prerequisite - Prepare template die Option Replace current template aus. Wähle im Abschnitt Specify template die Option „Upload a template file“ aus und wähle dann die neueste von GitHub heruntergeladene Vorlage. Klicke auf Next.
  6. Gib auf der Seite Specify Stack Details die entsprechenden Parameter gemäß den Informationen aus den vorherigen Abschnitten ein. Klicke auf Next.
  7. Klicke auf der Seite Configure Stack Options auf Next.
  8. Wähle auf der Seite Review „I acknowledge that AWS CloudFormation might create IAM resources with custom names“ aus. Überprüfe im Abschnitt Change set preview alle unerwarteten Änderungen. Wenn es unerwartete Änderungen gibt oder du nicht sicher bist, wende dich bitte an WhatsApp Direct Support. Klicke auf Update stack. Der Status der Stack-Aktualisierung kann in der CFN-Konsole nachverfolgt werden und ändert sich von UPDATE_IN_PROGRESS in UPDATE_COMPLETE, sobald die Aktualisierung abgeschlossen ist.

So können bei inaktivem System manuell die Kosten gesenkt werden (optional)

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.

  1. Führe in der ECS-Konsole (beispielsweise Amazon ECS) die folgenden Schritte aus:
    1. Wähle rechts oben die richtige Region aus.
    2. Wähle den entsprechenden Cluster aus der Liste aus.
    3. Wähle auf dem Tab Services den Dienstnamen aus, der WAEntCoreappService enthält. Wähle Edit Service aus und aktualisiere den Wert für „Desired tasks“ in 0.
      Konfiguration der Bereitstellung
    4. Wiederhole Schritt C für alle anderen Dienste, einschließlich WAEntWebService, WAEntMasterService und HostExporterService.
    5. Gehe zurück zur Cluster-Seite und vergewissere dich auf dem Tab Tasks, dass aktuell keine Aufgaben der oben genannten Dienste ausgeführt werden.
  2. Führe in der EC2-Konsole „Auto Scaling Groups“ (beispielsweise Auto Scaling groups | EC2 Management Console (amazon.com)) die folgenden Schritte aus:
    1. Wähle rechts oben die richtige Region aus.
    2. Wähle die automatische Skalierungsgruppe aus, deren Name HAECSAutoScalingGroup enthält, und wähle dann Edit. Aktualisiere die Werte für „Desired capacity“ und „Minimum capacity“ in 3.
      Gruppengröße
    3. Wähle die automatische Skalierungsgruppe aus, deren Name HAECSAutoScalingGroupWeb enthält, und wähle dann Edit. Aktualisiere die Werte für „Desired capacity“ und „Minimum capacity“ in 2.
  3. (Optional) Wenn für „Type of message“ einer der Bildtypen als Ausgangswert festgelegt ist, kannst du die EC2-Instanztypen durch die kostengünstigere Option c5.large ersetzen.
    1. Wähle in der EC2-Konsole „Launch Templates“ die entsprechende Startvorlage in der Liste aus.
    2. Wähle „Actions - Modify template (create new version)“ aus.
      Konsole „Launch Templates“
    3. Aktualisiere den Instanztyp im Abschnitt Instance type in c5.large und wähle dann Create template version.
      Instanztyp
    4. Wähle in der EC2-Konsole „Auto Scaling Groups“ die automatische Skalierungsgruppe des Stacks aus, dessen Name HAECSAutoScalingGroup enthält.
    5. Wähle im Bereich Launch template die Option Edit aus.
    6. Wähle die in Schritt 3c erstellte neue Startvorlage aus und wähle Update.
      Startvorlage
  4. Führe in der RDS-Konsole (beispielsweise RDS Management Console (amazon.com)) die folgenden Schritte aus:
    1. Wähle rechts oben die richtige Region aus.
    2. Wähle die entsprechende Aurora-Datenbank in der Liste aus.
    3. Wähle Modify aus und aktualisiere die DB-Instanzklasse in r5.xlarge.
      Instanzkonfiguration
  5. Führe in der ECS-Konsole (beispielsweise Amazon ECS) die folgenden Schritte aus:
    1. Wähle rechts oben die richtige Region aus.
    2. Wähle den entsprechenden Cluster aus der Liste aus.
    3. Wähle auf dem Tab Services den Dienstnamen aus, der WAEntCoreappService enthält. Wähle Edit Service aus und aktualisiere den Wert für „Desired tasks“ in 3.
    4. Wähle auf dem Tab Services den Dienstnamen aus, der HostExporterService enthält. Wähle Edit Service aus und aktualisiere den Wert für „Desired tasks“ in 3.
    5. Wähle auf dem Tab Services den Dienstnamen aus, der WAEntWebService enthält. Wähle Edit Service aus und aktualisiere den Wert für „Desired tasks“ in 2.
    6. Wähle auf dem Tab Services den Dienstnamen aus, der WAEntMasterService enthält. Wähle Edit Service aus und aktualisiere den Wert für „Desired tasks“ in 2.
  6. Warte, bis alle Dienste die gewünschte Anzahl von Aufgaben gestartet haben. Sobald alle Aufgaben ausgeführt werden, setze die Shards mithilfe von Set Shards API auf 2 zurück.
  7. Validiere die Integrität des Systems mithilfe der Health API. Es kann auch eine Nachricht gesendet und empfangen werden, um die grundlegende Funktionalität des WhatsApp Business API-Clients zu validieren. Eine ausführliche Beschreibung hierzu findest du in der Dokumentation zu Nachrichten.