Ce document a été mis à jour.
La traduction en Français (France) n’est pas encore terminée.
Anglais mis à jour : 26 juil. 2023

Déploiement avec Amazon Web Services

Ce document vous montre comment déployer l’API WhatsApp Business avec Amazon Web Services (AWS). Le processus peut être divisé en deux grandes étapes :

  1. Déploiement du client de l’API WhatsApp Business
  2. Configuration du client de l’API WhatsApp Business

Une fois la configuration terminée, vous pouvez choisir de mettre à jour le client. Si vous avez besoin de redémarrer la Webapp et la Coreapp, suivez cette procédure.

Ce document présente le nouveau modèle AWS que nous avons test�� pour vous proposer un débit de message plus élevé et plus stable. Si vous cherchez des informations sur l’ancien modèle AWS, consultez l’archive sur AWS.

Premiers pas

Avant de commencer, vous devez réaliser les actions suivantes :

Configurer un ID de compte AWS

Pour ce faire, il vous faut configurer un compte AWS valide et avoir l’habitude de travailler avec la solution AWS. WhatsApp fournit des modèles CloudFormation permettant de déployer facilement le client de l’API WhatsApp Business. Pour en savoir plus, consultez la page Mise en route avec AWS du centre de ressources AWS.

Créer une paire de clés AWS

Vous devez créer une nouvelle paire de clés pour accéder à l’instance EC2 créée par le modèle d’API WhatsApp Business. Il est également possible d’utiliser une paire de clés créée précédemment. Pour plus d’informations sur la création et l’utilisation de paires de clés avec une instance EC2, reportez-vous à la documentation sur les paires de clés Amazon EC2.

La paire de clés doit être créée en fonction de la région dans laquelle vous déployez l’API WhatsApp Business.

Souscrire un abonnement permettant d’utiliser une image CentOS 7

Le client de l’API WhatsApp Business utilise une image CentOS 7 (disponible sur AWS Marketplace). Avant d’utiliser le modèle, consultez et acceptez les conditions générales. Si vous n’acceptez pas les conditions, la création du modèle n’aboutira pas.

Pour examiner et accepter l’image AMI de CentOS 7 :

  1. Accédez à la page AWS Marketplace : CentOS 7 (x86_64) - with Updates HVM.
  2. Cliquez sur Continue to Subscribe (Continuer pour s’abonner) dans le coin supérieur droit, puis sur le bouton Accept Terms (Accepter les conditions).
Accepter les conditions CentOS

Régions prises en charge

Les modèles de l’API WhatsApp Business utilisent le type de ressource EFS, qui n’est pas disponible dans toutes les régions AWS. En effet, seules les régions suivantes sont actuellement prises en charge :

  • Virginie du Nord (us-east-1)
  • Ohio (us-east-2)
  • Californie du Nord (us-west-1)
  • Oregon (us-west-2)
  • Mumbai (ap-south-1)
  • Séoul (ap-northeast-2)
  • Singapour (ap-southeast-1)
  • Sydney (ap-southeast-2)
  • Tokyo (ap-northeast-1)
  • Francfort (eu-central-1)
  • Irlande (eu-west-1)

En fonction du test initial, WhatsApp détermine si nous pouvons fournir une option alternative disponible dans l’ensemble des régions.

Questions/réponses

Déploiement

Étape 1 : [facultative] Configuration du réseau

En général, le réseau du cloud privé virtuel (VPC) est créé lorsque vous ouvrez un compte AWS. Il peut y avoir ensuite un certain nombre de personnalisations et de restrictions touchant les contrôles d’accès spécifiques à telle ou telle entreprise.

Si l’infrastructure du réseau VPC est déjà créée, vous pouvez ignorer cette étape. Dans le cas contraire, le modèle suivant permet de créer l’infrastructure réseau sur AWS.

Le modèle de réseau est fourni à titre de référence uniquement. Vous pouvez le modifier selon vos besoins.

Exigences relatives au réseau

  • Il doit y avoir au moins deux sous-réseaux dans les différentes zones de disponibilité de la région. Sinon, la création du modèle échoue lors de la création de la ressource RDS (base de données).
  • L’accès entrant aux communications HTTP (port 80), HTTPS (port 443) et SSH (port 22) doit être autorisé. Pour des raisons de sécurité, il est fortement recommandé d’utiliser le protocole HTTPS et d’éviter le protocole HTTP.

Pour déployer le modèle de réseau :

  1. Accédez à la console CloudFormation associée à votre région (par exemple, eu-west-1).
  2. Sélectionnez Create a stack (Créer une pile).
  3. Choisissez Amazon S3 URL (URL de modèle Amazon S3) sous Template source (Source du modèle).
    Création d’une pile
  4. Entrez https://wa-biz-cfn.s3.amazonaws.com/wa_ent_net.yml et cliquez sur Next (Suivant) ou sur

    Deploy Template (Déployer un modèle)

    et choisissez la région appropriée, si nécessaire, dans le coin supérieur droit de la page web.
  5. Dans l’écran Specify stack details (Spécifier les détails de la pile), entrez les valeurs appropriées en vous reportant au tableau suivant :

Paramètres

NomDescription

Stack name

Obligatoire.

Nom de la pile à créer.

Configuration des zones de disponibilité

NomDescription

Availability zones

Obligatoire.

Zones de disponibilité du VPC à créer.
Au moins deux zones de disponibilité doivent être sélectionnées pour le modèle. Pour un environnement de production, il est recommandé d’en sélectionner au moins trois.

Number of availability zones

Obligatoire.

Nombre de zones de disponibilité sélectionnées.

Configuration du VPC

NomDescription

IP address range

Obligatoire.

Plage d’adresses IP (CIDR) pour ce VPC.

Tenancy

Obligatoire.

Location du VPC
Options :default, dedicated

Configuration du sous-réseau public

NomDescription

IP range - subnet #1

Obligatoire.

Plage d’adresses IP (CIDR) pour les sous-réseaux publics

IP range - subnet #2

Obligatoire.

Plage d’adresses IP (CIDR) pour les sous-réseaux publics

IP range - subnet #3

Facultatif.

Obligatoire si le nombre de zones de disponibilité est supérieur à 2.

IP range - subnet #4

Facultatif.

Obligatoire si le nombre de zones de disponibilité est supérieur à 3.

Configuration du sous-réseau privé

NomDescription

Create private subnets?

Obligatoire.

Options : true (valeur par défaut), false
Si, pour une raison quelconque, il n’est pas obligatoire de recourir à un sous-réseau privé, cet indicateur peut être défini sur false.

IP range - subnet #1

Conditionnel.

Obligatoire si la création de sous-réseau privé est définie sur true.

IP range - subnet #2

Conditionnel.

Obligatoire si la création de sous-réseau privé est définie sur true.

IP range - subnet #3

Conditionnel.

Obligatoire si la création de sous-réseau privé est définie sur true et que le nombre de zones de disponibilité est supérieur à 2.

IP range - subnet #4

Conditionnel.

Obligatoire si la création de sous-réseau privé est définie sur true et que le nombre de zones de disponibilité est supérieur à 3.

Étape 2 : Importation de la base de données et surveiller les fichiers de configuration de la pile

Avant de déployer la pile de l’API WhatsApp Business dans AWS, vous devez d’abord importer les fichiers de configuration des sous-piles référencées dans un bucket S3 pour lequel vous disposez des autorisations de lecture.

  1. Créez un bucket S3 ou utilisez un bucket S3 existant pour lequel vous disposez des autorisations de lecture.
  2. Téléchargez les fichiers wa_ent_db.yml et wa_ent_monitoring.yml à partir de GitHub et importez-les dans le bucket S3 mentionné à l’étape 1.
  3. Dans la liste des objets, sélectionnez le fichier wa_ent_db.yml et copiez son URL. Elle devrait se présenter sous la forme : https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml.
  4. Dans le fichier wa_ent.yml remplacez la valeur de TemplateURL dans la pile dbStack par l’URL d’objet copiée dans l’étape 3 et enregistrez le fichier.
  5. Dans la liste des objets, sélectionnez le fichier wa_ent_monitoring.yml et copiez son URL. Elle devrait se présenter sous la forme : https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml.
  6. Dans le fichier wa_ent.yml remplacez la valeur de TemplateURL dans la pile Monitoring par l’URL d’objet copiée dans l’étape 5 et enregistrez le fichier.
Importation dans le bucket S3

Étape 3 : Déploiement de l’API WhatsApp Business

WhatsApp Enterprise est le principal modèle et crée l’ensemble des ressources (réseau excepté) requises pour le client de l’API WhatsApp Business. Comme vu précédemment, ce modèle crée également une ressource de base de données, si nécessaire.

Pour déployer le client de l’API WhatsApp Business :

  1. Accédez à la console CloudFormation associée à votre région (par exemple, eu-west-1).
  2. Sélectionnez Create a stack (Créer une pile).
  3. Téléchargez le fichier wa_ent.yml à partir de GitHub et enregistrez-le en local.
  4. Sélectionnez Upload a template file (Importer un fichier de modèle) comme source du modèle et importez le fichier de modèle téléchargé à l’étape 3.
    Création d’une pile
  5. Cliquez sur Next (Suivant)
  6. Vous pouvez alors entrer les paramètres. Reportez-vous au tableau ci-dessous pour consulter la description des paramètres.
  7. Lorsque tous les paramètres sont configurés (dans les tableaux ci-dessous), cliquez sur Next (Suivant) pour accéder à la page Configure stack options (Configurer les options de la pile). Réalisez les modifications souhaitées, le cas échéant, et cliquez sur Next (Suivant).
  8. La page Review stack (Vérifier la pile) récapitule les valeurs des paramètres et les options de la pile. Lorsque vous avez tout vérifié, dans la section Capabilities (Fonctionnalités), cochez les deux cases et cliquez sur Submit (Envoyer) pour créer la pile.
    Remarque : le déploiement dure entre 20 et 30 minutes environ.

Paramètres

NomDescription

Stack name

Obligatoire.

Nom de la pile à créer.

Le nom peut comprendre jusqu’à 22 caractères. Remarque : pour les déploiements dans les régions ap-southeast-1, ap-southeast-2, ap-northeast-1 et ap-northeast-2, la limite est fixée à 8 caractères.

Si le stack name dépasse ce nombre de caractères, la création de la pile échoue, car le certificat SSL ne peut pas être créé.

Configuration générale

NomDescription

High Availability

Facultatif.

Active la fonctionnalité High Availability (Haute disponibilité).


Par défaut : enabled

Desired Throughput

Obligatoire.

Nombre de messages que vous souhaitez envoyer par seconde.


En fonction de ce paramètre et de l’option Type of Message choisie, les ressources du serveur et de la base de données sont automatiquement sélectionnées et configurées pour répondre aux besoins définis.

Type of Message

Obligatoire.

Le type de message que vous allez majoritairement envoyer et recevoir.


En fonction de ce paramètre et de l’option Desired Throughput choisie, les ressources du serveur et de la base de données sont automatiquement sélectionnées et configurées pour répondre aux besoins définis.

Host exporter for instance monitoring

Facultatif.

Installe node-exporter sur chaque hôte de la CoreApp afin de surveiller les instances.


Par défaut : enabled

Configuration du réseau

NomDescription

Network Stack Name

Obligatoire.

Nom de la pile de réseau CloudFormation créée lors de l’étape de configuration du réseau.

Number of subnets

Obligatoire.

Nombre de sous-réseaux choisis.


Actuellement, nous limitons le déploiement à deux sous-réseaux afin de répartir uniformément les tâches ECS entre tous les hôtes.

Load balancer scheme

Obligatoire.

Actuellement, nous acceptons uniquement les équilibreurs de charge web, qui sont visibles publiquement. Modifiez les groupes de sécurité une fois la pile de l’API créée pour restreindre les accès superflus.

Configuration du conteneur

NomDescription

Keypair to use

Obligatoire.

Paire de clés permettant d’accéder à l’instance EC2, si nécessaire.

WA Enterprise container registry

Facultatif.

Garantit l’évolutivité et la prise en charge des clients expérimentaux de l’API WhatsApp Business. La valeur par défaut devrait convenir à la majorité des cas.

WA Enterprise Client version

Obligatoire.

Il est toujours recommandé d’utiliser la dernière version stable (consultez la rubrique changelog pour connaître la version la plus récente).
Format :v2.yy.xx.

La version du client de l’API WhatsApp Business commence toujours par un « v », sauf indication contraire explicite. L’utilisation d’une version incorrecte empêche la création de la pile.

EBS volume size

Obligatoire.

Il est recommandé de choisir 32 Go ou plus pour les charges de travail de production.

Configuration de la base de données

NomDescription

Store configuration in DB

Facultatif.

Active le stockage des informations de configuration dans la base de données.
Options :true (valeur par défaut), false.
La valeur false désactive le stockage des informations de configuration dans la base de données et utilise des fichiers à la place.

Existing DB hostname

Facultatif.

Nom d’hôte de la base de données existante.
Si vous disposez déjà d’une instance dédiée de la base de données MySQL pour le client de l’API WhatsApp Business, vous pouvez entrer le nom d’hôte ici.
Si le champ reste vide, une nouvelle instance Amazon Aurora sera créée. Pour bénéficier d’un débit élevé et stable, nous vous recommandons de créer une base de données Aurora ou d’utiliser une base Aurora existante créée avec ce modèle.

Administrator name

Obligatoire.

Nom d’administrateur permettant d’accéder à la base de données.

Administrator password

Obligatoire.

Mot de passe d’administrateur permettant d’accéder à la base de données.

Le mot de passe de la base de données ne doit contenir aucun des caractères suivants : ?{}&~!()^/"@

Server port

Obligatoire.

Numéro de port permettant d’accéder au serveur de base de données.

Persist DB Connection

Facultatif.

Indique si la connexion à la base de données doit être maintenue pour les conteneurs web.


Par défaut : enabled

DB Idle Connection Timeout

Facultatif.

Durée, en millisecondes, à l’issue de laquelle la base de données ferme les connexions inactives.
Valeur par défaut : 180 000 ms

Configuration de la journalisation

NomDescription

Logging driver for container logs

Facultatif.

Pilote de journalisation pour les journaux du conteneur.
Options : json-file, awslogs (valeur par défaut).
La valeur json-file stocke les journaux sur des hôtes EC2. La valeur awslogs envoie tous les journaux de conteneur vers CloudWatch.

Maximum container log file size

Facultatif.

Taille maximale en méga-octets d’un fichier journal de conteneur avant rotation des enregistrements.

Valeurs autorisées : entre 1 et 250 (inclus). Valeur par défaut : 50.

Maximum number of container log files

Facultatif.

Nombre maximal de fichiers journaux à conserver par conteneur.
Les conteneurs arrêtés finissent par être supprimés de l’hôte. Dans ce cas, tous les fichiers journaux conservés pour ces conteneurs sont supprimés.

Valeurs autorisées : entre 1 et 30 (inclus). Valeur par défaut : 7.

Days to retain CloudWatch logs

Facultatif.

Nombre de jours pendant lesquels les journaux sont conservés dans CloudWatch.
Sélectionnez l’une des valeurs disponibles dans la liste.

Valeur par défaut : 7

Configuration du système de fichiers

NomDescription

File system identifier

Non utilisé.

Veuillez laisser ce paramètre vide.

Configuration de la sécurité

NomDescription

Key to encrypt DB & EFS

Facultatif.

Par défaut, la clé du service AWS (option Default-Key) est utilisée pour chiffrer les données inactives de la base et des ressources EFS. Les autres options sont :

  • Non chiffré : les données inactives ne sont pas chiffrées.
  • Créer une nouvelle clé : une nouvelle clé KMS est créée et utilisée pour chiffrer les données.
  • Clé fournie par l’utilisateur : vous pouvez fournir un ID de clé KMS, qui permettra de chiffrer les données. Laissez ce champ vide si une autre option est sélectionnée.

User provided key id

Facultatif.

Vous pouvez fournir un ID de clé KMS, qui permettra de chiffrer les données. Laissez ce champ vide si l’option User-Provided-Key n’est pas sélectionnée.

DB connection encryption

Facultatif.

Par défaut, les données en transit vers la base de données sont chiffrées. Pour le moment, cela s’applique uniquement à la Coreapp. Le chiffrement de la Webapp n’est pas encore pris en charge. En outre, avec un nouveau moteur de base de données, même si cette option est désactivée, la Coreapp procède au chiffrement, mais sans vérification du certificat de serveur (identité).

CA certificate for DB connection

Facultatif.

La valeur par défaut contient le groupe de certificats RDS. Si une base de données non RDS est utilisée, un groupe de certificats de l’autorité de certification (AC) approprié peut être fourni ou la valeur peut être laissée vide. La valeur par défaut est adéquate pour activer une connexion sécurisée à la base de données.

Client certificate for DB connection

Facultatif.

Certificat du client pour la connexion à la base de données.

Client key for DB connection

Facultatif.

Clé du client pour la connexion à la base de données

Point d’accès de l’API WhatsApp Business

Ces paramètres sont requis pour les tableaux de bord afin de récupérer les indicateurs d’application à des fins de surveillance.

NomDescription

WAWebUsername

Obligatoire.

Nom d’utilisateur de l’API WhatsApp Business.

WAWebPassword

Obligatoire.

Mot de passe du nom d’utilisateur indiqué dans WAWebUsername. Il s’agira du nouveau mot de passe qui remplacera le mot de passe par défaut lors de la première connexion.

Grafana

NomDescription

GrafanaAdminPassword

Obligatoire.

Mot de passe utilisé pour se connecter au tableau de bord Grafana lors de la création de la pile.

GrafanaEnableSmtp

Facultatif.

Indique si SMTP est activé pour configurer des alertes par e-mail. Valeurs acceptées : 0 quand SMTP est désactivé, 1 quand il est activé.

Valeur par défaut :0 (désactivé)

GrafanaSmtpHost

Facultatif.

Hôte SMTP utilisé dans les alertes par e-mail. Par exemple, smtp.gmail.com:465.

GrafanaSmtpUser

Facultatif.

Nom d’utilisateur SMTP utilisé dans les alertes par e-mail.

GrafanaSmtpPassword

Facultatif.

Mot de passe SMTP utilisé dans les alertes par e-mail.

Résultat après le déploiement

Lorsque le modèle est correctement créé, les paramètres suivants s’affichent :

  • Nom de l’équilibreur de charge : nom d’hôte de l’équilibreur de charge permettant d’accéder au client de l’API de la plateforme WhatsApp Business
  • Nom d’hôte de la base de données : nom qui est créé ou fourni lors de la création du modèle
  • Numéro de port de la base de données : numéro du port pour la connexion à la base de données
  • Nom du cluster ECS : nom du cluster ECS créé
  • Jours de conservation des journaux : nombre de jours de conservation des journaux
  • AC pour la connexion à la base de données : valeur pour l’autorité de certification de la connexion à la base de données, le cas échéant
  • Certificat pour la connexion à la base de données : valeur pour le certificat de la connexion à la base de données, le cas échéant
  • Clé pour la connexion à la base de données : valeur pour la clé de connexion à la base de données, le cas échéant
  • Grafana : URL du tableau de bord Grafana
  • Nombre de partitions : nombre de partitions à configurer pour l’API de la plateforme WhatsApp Business

Modification des règles de sécurité SSH

Par défaut, les règles de sécurité créées par la pile autorisent tous les trafics à accéder aux instances EC2 via SSH, aux points de terminaison de l’API et au tableau de bord Grafana via HTTPS, et aux conteneurs cadvisor et Prometheus. Pour des raisons de sécurité, nous vous recommandons vivement de fermer tous les accès superflus. Cette section vous indique comment modifier les règles de sécurité SSH à travers un exemple. Vous devez toujours limiter l’accès SSH aux trafics fiables.

  1. Dans la console EC2 - Security Groups (Groupes de sécurité), par exemple EC2 Management Console (amazon.com) :
    1. Sélectionnez la région appropriée dans le coin supérieur droit.
    2. Sélectionnez le groupe de sécurité qui contient <stackName>-EcsSecurityGroup, puis accédez à l’onglet Inbound Rules (Règles du trafic entrant).
      Modification des règles du trafic entrant
    3. Sélectionnez Edit inbound rules (Modifier les règles du trafic entrant) et modifiez la colonne Source de sorte à limiter l’accès aux hôtes EC2 via SSH aux seuls trafics de confiance (comme « Mon IP »).
    4. Lorsque vous avez terminé de modifier les règles de sécurité, cliquez sur Save rules (Enregistrer les règles) pour appliquer les modifications.
    5. Répétez ces étapes pour le groupe de sécurité qui contient "<stackName>-ms-xxx-EcsSecurityGroup" afin de restreindre l’accès à la pile Monitoring via SSH.

Configuration du client de l’API WhatsApp Business

Une fois que le client de l’API WhatsApp Business est déployé, il doit être configuré pour devenir opérationnel.

Étape 1 : Enregistrement du téléphone

Pour plus d’informations sur l’enregistrement des numéros de téléphone, consultez le guide des numéros de téléphone.

Téléchargez le certificat encodé Base64 depuis votre compte WhatsApp dans Facebook Business Manager sous l’onglet des numéros de téléphone du Gestionnaire WhatsApp.

Une fois que le numéro de téléphone correct est sélectionné et que vous disposez du certificat encodé Base64, vous devez enregistrer le client de l’API WhatsApp Business via le nœud account. Pour en savoir plus, consultez la documentation sur la procédure d’enregistrement.

Si le numéro de téléphone peut recevoir des textos, récupérez le code d’enregistrement par texto.

Si vous avez déjà reçu le code d’enregistrement de WhatsApp, vous pouvez ignorer cette étape.

Étape 2 : Définition des partitions

Une fois la pile créée, vous devrez utiliser l’appel d’API shards pour augmenter le nombre d’instances Coreapp actives pour obtenir le débit souhaité. Le nombre de partitions est indiqué dans la section Output (Résultat) de la pile.

Étape 3 : Modification des paramètres de l’application

La documentation sur les paramètres de l’application décrit la procédure de configuration des rappels web et d’autres paramètres de l’API WhatsApp Business. Nous vous recommandons les paramètres suivants afin de garantir un débit stable.

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

      
      
    

Étape 4 : [facultative] Configuration SSL

Le client de l’API WhatsApp Business génère un certificat auto-signé par défaut lors de sa création. Le certificat de l’autorité de certification (AC) utilisé pour générer le certificat auto-signé peut être requis pour vérifier le point de terminaison du client de l’API WhatsApp Business et éviter ainsi un avertissement de sécurité.

Vous pouvez télécharger le certificat de l’autorité de certification et l’enregistrer en local pour éviter de recevoir l’avertissement de sécurité, ou télécharger votre propre certificat. Pour en savoir plus, consultez la documentation sur le nœud certificate.

Dans les déploiements AWS, le certificat SSL est créé à l’aide du nom d’hôte de l’équilibreur de charge. Si une adresse IP est utilisée à la place du nom d’hôte pour les accès, un avertissement est notifié.

Dans une future version, WhatsApp prendra en charge la configuration des certificats SSL fournis par les clients.

Étape 5 : Validation de la configuration

Une fois que les étapes relatives à la configuration et à l’enregistrement sont terminées, l’envoi et la réception d’un message permettent de valider les fonctionnalités de base du client de l’API WhatsApp Business. Ce point est décrit en détail dans la documentation sur les messages.

À réception du message, le client de l’API WhatsApp Business envoie une requête POST indiquant le statut ou les détails du message au webhook configuré à l’Étape 3.

Si vous avez bien reçu le message, félicitations, tout est prêt ! Pour en savoir plus sur les points de terminaison de l’API disponibles, consultez la documentation de référence.

Redémarrage de la Coreapp et de la Webapp

Pour redémarrer le client de l’API WhatsApp Business, dans la console ECS (par exemple, https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters) :

  1. Sélectionnez la région appropriée dans le coin supérieur droit.
  2. Sélectionnez le cluster approprié dans la liste.
  3. Sous l’onglet Services, sélectionnez le nom de service contenant WAEntService.
  4. Sélectionnez l'onglet Tasks (Tâches). Généralement, il ne doit y avoir qu’une tâche associée à un ID constitué de chiffres hexadécimaux.
  5. Dans la fenêtre Tasks (Tâches), cliquez sur Stop (Arrêter) dans le coin supérieur droit, puis à nouveau sur Stop (Arrêter) lorsque vous y êtes invité.

Cette action interrompt le fonctionnement de la Webapp et de la CoreApp. Peu de temps après, l’infrastructure AWS redémarre la Webapp et la CoreApp.

Vous devrez probablement patienter pendant une ou deux minutes.

Mise à jour

La mise à jour directe de la pile CloudFormation peut entraîner la destruction et la reconstitution de la base de données. Pour éviter toute perte de données, nous vous recommandons vivement de suivre les étapes manuelles de la section suivante pour mettre à jour le système.

Cette section vous accompagne dans la mise à jour du client de l’API WhatsApp Business et du modèle CloudFormation (CFN). La mise à jour provoque un temps d’arrêt. Par conséquent, veillez à ne pas envoyer de messages pendant qu’elle s’exécute. Vous pourrez rétablir l’envoi de messages une fois la mise à jour terminée.

Vous pouvez mettre à jour le modèle CFN et le client de l’API WhatsApp Business simultanément en procédant de la manière suivante :

  1. À l’Étape 5 des instructions de mise à jour du client de l’API WhatsApp Business, sélectionnez Replace current template (Remplacer le modèle actuel) au lieu de Use current template (Utiliser le modèle actuel).
  2. Dans la section Specify template (Définir le modèle), cliquez sur « Upload a template file » (Importer un fichier de modèle) et sélectionnez le fichier de modèle le plus récent téléchargé à partir de GitHub.

Mise à jour du client de l’API WhatsApp Business

  1. Accédez à la console CFN (par exemple, https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Sélectionnez la région appropriée dans le coin supérieur droit.
  3. Sélectionnez la pile du client de l’API WhatsApp Business qui a déjà été créée.
  4. Cliquez sur Update (Mettre à jour).
  5. Sur la page Prerequisite - Prepare template (Prérequis : préparer le modèle), sélectionnez l’option Replace current template (Remplacer le modèle actuel). Dans la section Specify template (Définir le modèle), cliquez sur « Upload a template file » (Importer un fichier de modèle) et sélectionnez le fichier de modèle le plus récent téléchargé à partir de GitHub. Cliquez sur Next (Suivant).
  6. Sur la page Specify stack details (Spécifier les détails de la pile), remplacez la version du client de l’API WhatsApp Business (conteneur) par celle de votre choix. NE CHANGEZ aucun autre paramètre. Cliquez sur Next (Suivant).
  7. Sur la page Configure stack options (Configurer les options de la pile), cliquez sur Next (Suivant).
  8. Sur la page Review (Récapitulatif), sélectionnez « I acknowledge that AWS CloudFormation might create IAM resources with custom names » (« J’autorise AWS CloudFormation à créer des ressources IAM portant des noms personnalisés »). Examinez le contenu de la section Change set preview (Aperçu des modifications) pour vérifier qu’aucune modification inattendue n’a été apportée. En cas de modification imprévue ou si vous avez un doute, contactez l’Assistance directe de WhatsApp. Cliquez sur Update Stack (Mettre à jour la pile). L’état de la mise à jour de la pile peut être suivi dans la console CFN, et il passe de UPDATE_IN_PROGRESS à UPDATE_COMPLETE une fois la mise à jour terminée.

Vérification rapide de la mise à jour : envoyez un texto et vérifiez que la réponse de l’API contient le numéro de version approprié (c’est-à-dire la nouvelle version). Vérifiez également que le destinataire a bien reçu le message.

Mise à jour du modèle CFN WhatsApp

  1. Accédez à la console CFN (par exemple, https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Sélectionnez la région appropriée dans le coin supérieur droit.
  3. Sélectionnez la pile du client de l’API WhatsApp Business qui a déjà été créée.
  4. Cliquez sur Update (Mettre à jour).
  5. Sur la page Prerequisite - Prepare template (Prérequis : préparer le modèle), sélectionnez l’option Replace current template (Remplacer le modèle actuel). Dans la section Specify template (Définir le modèle), cliquez sur « Upload a template file » (Importer un fichier de modèle) et sélectionnez le fichier de modèle le plus récent téléchargé à partir de GitHub. Cliquez sur Next (Suivant).
  6. Sur la page Specify Stack Details (Spécifier les détails de la pile), entrez les paramètres appropriés, en vous reportant aux informations des sections précédentes. Cliquez sur Next (Suivant).
  7. Sur la page Configure Stack Options (Configurer les options de la pile), cliquez sur Next (Suivant).
  8. Sur la page Review (Récapitulatif), sélectionnez « I acknowledge that AWS CloudFormation might create IAM resources with custom names » (« J’autorise AWS CloudFormation à créer des ressources IAM portant des noms personnalisés »). Examinez le contenu de la section Change set preview (Aperçu des modifications) pour vérifier qu’aucune modification inattendue n’a été apportée. En cas de modification imprévue ou si vous avez un doute, contactez l’Assistance directe de WhatsApp. Cliquez sur Update Stack (Mettre à jour la pile). L’état de la mise à jour de la pile peut être suivi dans la console CFN, et il passe de UPDATE_IN_PROGRESS à UPDATE_COMPLETE une fois la mise à jour terminée.

Réduction manuelle des coûts quand le système est inactif (facultatif)

Souvent, les entreprises veulent configurer un environnement à haut débit pour une campagne à durée limitée, tout en exécutant un environnement à faible coût en dehors de la période de la campagne. Dans cette section, nous vous expliquons comment diminuer manuellement la capacité de la configuration AWS afin de réaliser des économies.

Important : ces modifications entraînent des temps d’inactivité. La durée d’inactivité est estimée entre 5 et 15 minutes. Veillez à suivre toutes les recommandations DevOps, notamment à réaliser une sauvegarde des paramètres d’application et de la base de données.

  1. Dans la console ECS (par exemple, ECS Amazon) :
    1. Sélectionnez la région appropriée dans le coin supérieur droit.
    2. Sélectionnez le cluster approprié dans la liste.
    3. Dans l’onglet Services, sélectionnez le nom de service contenant WAEntCoreappService. Sélectionnez Edit Service (Modifier le service) et remplacez la valeur de « Desired tasks » (Tâches souhaitées) par 0.
      Configuration du déploiement
    4. Répétez l’étape c pour tous les autres services, notamment WAEntWebService, WAEntMasterService et HostExporterService.
    5. Revenez à la page du cluster. Dans l’onglet Tasks (Tâches), vérifiez que les services ci-dessus n’exécutent aucune tâche.
  2. Dans la console EC2 - Auto Scaling Groups (Groupes de mise à l’échelle automatique), par exemple Auto Scaling groups | EC2 Management Console (amazon.com) :
    1. Sélectionnez la région appropriée dans le coin supérieur droit.
    2. Sélectionnez le groupe de mise à l’échelle automatique de la pile dont le nom contient HAECSAutoScalingGroup et cliquez sur Edit (Modifier). Remplacez la valeur de « Desired capacity » (Capacité souhaitée) et « Minimum capacity » (Capacité minimale) par 3.
      Taille des groupes
    3. Sélectionnez le groupe de mise à l’échelle automatique de la pile dont le nom contient HAECSAutoScalingGroupWeb et cliquez sur Edit (Modifier). Remplacez la valeur de « Desired capacity » (Capacité souhaitée) et « Minimum capacity » (Capacité minimale) par 2.
  3. (Facultatif) Si la valeur initiale de « Type of message » (Type de message) est un type d’image quelconque, vous pouvez remplacer les types d’instances EC2 par c5.large, moins coûteux.
    1. Dans la console EC2 - Launch Templates (Modèles d’exécution), sélectionnez le modèle d’exécution souhaité dans la liste.
    2. Sélectionnez Actions - Modify template (Create new version) (Modifier le modèle [Créer une nouvelle version]).
      Console des modèles d’exécution
    3. Dans la section Instance type (Type d’instance), remplacez le type d’instance par c5.large, puis cliquez sur Create template version (Créer une version de modèle).
      Type d’instance
    4. Dans la console EC2 - Auto Scaling Groups (Groupes de mise à l’échelle automatique), sélectionnez le groupe de mise à l’échelle automatique de la pile dont le nom comporte HAECSAutoScalingGroup.
    5. Dans la section Launch template (Modèle d’exécution), sélectionnez Edit (Modifier).
    6. Sélectionnez le nouveau modèle d’exécution créé à l’étape 3c et cliquez sur Update (Mettre à jour).
      Modèle d’exécution
  4. Dans la console RDS, par exemple RDS Management Console (amazon.com) :
    1. Sélectionnez la région appropriée dans le coin supérieur droit.
    2. Sélectionnez la base de données Aurora appropriée dans la liste.
    3. Sélectionnez Modify (Modifier) et remplacez la classe d’instance de la base de données par r5.xlarge.
      Configuration des instances
  5. Dans la console ECS (par exemple, ECS Amazon) :
    1. Sélectionnez la région appropriée dans le coin supérieur droit.
    2. Sélectionnez le cluster approprié dans la liste.
    3. Dans l’onglet Services, sélectionnez le nom de service contenant WAEntCoreappService. Sélectionnez Edit Service (Modifier le service) et remplacez la valeur de « Desired tasks » (Tâches souhaitées) par 3.
    4. Dans l’onglet Services, sélectionnez le nom de service contenant HostExporterService. Sélectionnez Edit Service (Modifier le service) et remplacez la valeur de « Desired tasks » (Tâches souhaitées) par 3.
    5. Dans l’onglet Services, sélectionnez le nom de service contenant WAEntWebService. Sélectionnez Edit Service (Modifier le service) et remplacez la valeur de « Desired tasks » (Tâches souhaitées) par 2.
    6. Dans l’onglet Services, sélectionnez le nom de service contenant WAEntMasterService. Sélectionnez Edit Service (Modifier le service) et remplacez la valeur de « Desired tasks » (Tâches souhaitées) par 2.
  6. Attendez que tous les services aient exécuté le nombre de tâches souhaité. Lorsque toutes les tâches sont en cours d’exécution, utilisez l’API Set Shards pour réinitialiser le nombre de partitions à 2.
  7. Vérifiez l’état du système avec l’API Health. Vous pouvez également envoyer et recevoir un message pour valider les fonctionnalités de base du client de l’API WhatsApp Business. Ce point est décrit en détail dans la documentation sur les messages.