Se actualizó este documento.
La traducción en español no está disponible todavía.
Actualización del documento en inglés: 7 dic. 2022

Implementar la API con Amazon Web Services

En este documento, se muestra la manera de usar Amazon Web Services (AWS) para implementar la API de WhatsApp Business. El proceso se puede dividir en dos pasos principales:

  1. Implementación del cliente de la API de WhatsApp Business
  2. Configuración del cliente de la API de WhatsApp Business

Una vez que completes la configuración, podrás actualizar el cliente. Si en alguna ocasión debes reiniciar la app web y la app principal, sigue estos pasos.

En este documento, se muestra una nueva plantilla de AWS que hemos probado para lograr mayor volumen y estabilidad en materia de mensajes. Si buscas la plantilla de AWS anterior, consulta el archivo de AWS.

Primeros pasos

Antes de empezar, necesitarás hacer lo siguiente:

Configurar un identificador de la cuenta de AWS

Debes configurar una cuenta de AWS válida y estar familiarizado con el funcionamiento de AWS. WhatsApp proporciona plantillas de CloudFormation para implementar con facilidad el cliente de la API de WhatsApp Business. Consulta el Centro de recursos de primeros pasos de AWS para obtener más información.

Crear un par de claves de AWS

Debes crear un nuevo par de claves para acceder a la instancia de EC2 que se creó con la plantilla de la API de WhatsApp Business. También puedes usar un par de claves creado anteriormente. Consulta la documentación sobre pares de claves EC2 de Amazon para obtener información sobre cómo crear y usar pares de claves con una instancia de EC2.

El par de claves debe crearse utilizando la región en la que se implementará la API de WhatsApp Business.

Suscribirse a una imagen de CentOS 7

El cliente de la API de WhatsApp Business utiliza una imagen de CentOS 7 (disponible en AWS Marketplace). Antes de usar la plantilla, se deben revisar y aceptar los términos y condiciones. Si no se aceptan las condiciones, no se puede crear la plantilla.

Para revisar y aceptar la imagen de AMI de CentOS 7, sigue estos pasos:

  1. Ve a la página AWS Marketplace: CentOS 7 (x86_64) - with Updates HVM.
  2. Haz clic en Continue to Subscribe en la esquina superior derecha; luego, haz clic en el botón Accept Terms.
Aceptar los términos de uso de CentOS

Regiones admitidas

Las plantillas de la API de WhatsApp Business utilizan el tipo de recurso EFS, lo cual no está disponible en todas las regiones de AWS. Por lo tanto, en la actualidad solo se admiten las siguientes regiones:

  • Virginia del Norte (us-east-1)
  • Ohio (us-east-2)
  • California del Norte (us-west-1)
  • Oregón (us-west-2)
  • Bombay (ap-south-1)
  • Seúl (ap-northeast-2)
  • Singapur (ap-southeast-1)
  • Sídney (ap-southeast-2)
  • Tokio (ap-northeast-1)
  • Fráncfort (eu-central-1)
  • Irlanda (eu-west-1)

Dependiendo de las pruebas iniciales, WhatsApp determinará si podemos ofrecer una opción diferente que esté disponible en todas las regiones.

Preguntas frecuentes

Implementación

Paso 1: Configuración de la red [Opcional]

La red de nube privada virtual (VPC) se crea, generalmente, al registrarse para obtener una cuenta de AWS. Además, puede haber varias personalizaciones y restricciones de control de accesos necesarias que sean específicas del negocio de una empresa.

Si ya está creada la infraestructura de la red VPC, puedes omitir este paso. De lo contrario, puedes usar la plantilla siguiente para crear la infraestructura de red en AWS.

La plantilla de red se ofrece solo como referencia. Puedes modificarla según tus necesidades específicas.

Requisitos de red

  • Debe haber por lo menos dos subredes en diferentes zonas de disponibilidad dentro de la región. De lo contrario, no se podrá crear la plantilla mientras se crea el recurso RDS (base de datos).
  • Debe permitir el acceso entrante a HTTP (puerto: 80), HTTPS (puerto: 443) y SSH (puerto: 22). Por motivos de seguridad, se recomienda usar HTTPS y evitar HTTP.

Para realizar la implementación de la red:

  1. Dirígete a la consola de CloudFormation correspondiente a tu región (por ejemplo, eu-west-1).
  2. Selecciona Create a stack.
  3. Elige Amazon S3 URL como la fuente de la plantilla.
    Crear pila
  4. introduce https://wa-biz-cfn.s3.amazonaws.com/wa_ent_net.yml y haz clic en Siguiente, o haz clic en

    Deploy Template

    y selecciona la región correspondiente, si es necesario, en la esquina superior derecha de la página.
  5. En la pantalla Specify stack details (Especificar detalles de la pila), introduzca los valores de los parámetros de acuerdo con la tabla siguiente:

Parámetros

NombreDescripción

Stack name

Obligatorio.

Nombre de la pila que se va a crear.

Configuración de zonas de disponibilidad

NombreDescripción

Availability zones

Obligatorio.

Las zonas de disponibilidad (AZ) para crear la VPC.
La plantilla necesita que se seleccionen, como mínimo, 2 AZ. Para un entorno de producción, se recomienda seleccionar, como mínimo, 3 AZ.

Number of availability zones

Obligatorio.

El número de zonas de disponibilidad seleccionadas.

Configuración de VPC

NombreDescripción

IP address range

Obligatorio.

Introduce el intervalo de direcciones IP (CIDR) para esta VPC.

Tenancy

Obligatorio.

Inquilino de la VPC
Opciones:default, dedicated

Configuración de subred pública

NombreDescripción

IP range - subnet #1

Obligatorio.

Intervalo de direcciones IP (CIDR) de las subredes públicas.

IP range - subnet #2

Obligatorio.

Intervalo de direcciones IP (CIDR) de las subredes públicas.

IP range - subnet #3

Opcional.

Obligatorio si el número de zonas de disponibilidad es mayor que 2.

IP range - subnet #4

Opcional.

Obligatorio si el número de zonas de disponibilidad es mayor que 3.

Configuración de subred privada

NombreDescripción

Create private subnets?

Obligatorio.

Opciones:true (predeterminada:), false
Si una subred privada no es necesaria por algún motivo, esta marca se puede establecer en false.

IP range - subnet #1

Condicional.

Obligatorio si la creación de la subred privada se ha establecido en true.

IP range - subnet #2

Condicional.

Obligatorio si la creación de la subred privada se estableció en true.

IP range - subnet #3

Condicional.

Obligatorio si la creación de la subred privada se ha establecido en true y el número de AZ es mayor que 2.

IP range - subnet #4

Condicional.

Obligatorio si la creación de la subred privada se estableció en true y el número de AZ es mayor que 3.

Paso 2: Subida de archivos de configuración de base de datos y pila de supervisión

Antes de implementar la pila de la API de WhatsApp Business en AWS, primero debes subir los archivos de configuración de subpilas a los que se hace referencia a un contenedor S3 al que tengas acceso.

  1. Crea un nuevo contenedor S3 o usa uno preexistente al que tengas acceso de lectura.
  2. Descarga los archivos wa_ent_db.yml y wa_ent_monitoring.yml de GitHub y súbelos al contenedor S3 mencionado en el paso 1.
  3. Elige el archivo wa_ent_db.yml de la lista de objetos y copia su URL. Debe estar en el formato de https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml.
  4. En el archivo wa_ent.yml, reemplaza el valor de TemplateURL in the dbStack por la URL de objeto del paso 3 y guarda el archivo.
  5. Elige el archivo wa_ent_monitoring.yml de la lista de objetos y copia su URL. Debe estar en el formato de https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml.
  6. En el archivo wa_ent.yml, reemplaza el valor de la pila TemplateURL in the Monitoring por la URL de objeto del paso 5 y guarda el archivo.
Subida al contenedor S3

Paso 3: Implementación de la API de WhatsApp Business

WhatsApp Enterprise es la plantilla principal y crea todos los recursos (excepto la red) necesarios para el cliente de la API de WhatsApp Business. Como se ya se indicó, esta plantilla también crea un recurso de base de datos, si es necesario.

Para implementar el cliente de la API de WhatsApp Business:

  1. Ve a la consola de CloudFormation correspondiente a tu región (por ejemplo, eu-west-1).
  2. Selecciona Create a stack.
  3. Descarga el archivo wa_ent.yml de GitHub y guárdalo a nivel local.
  4. Elige Subir un archivo de plantilla como fuente de plantilla y carga el que descargaste en el paso 3.
    Crear pila
  5. Haz clic en Siguiente
    .
  6. A continuación, podrás introducir parámetros. Consulta las descripciones de los parámetros en la siguiente tabla.
  7. Después de configurar todos los parámetros (en las tablas a continuación), haz clic en Siguiente en la página Configurar opciones de pila. Puedes hacer los cambios necesarios según tus preferencias y hacer clic en Siguiente.
  8. En la página Revisar pila, verás un resumen de valores de parámetros y opciones de pila. Después de la verificación, en la sección de capacidades, marca las dos casillas y haz clic en Enviar para comenzar a crear la pila.
    Nota: La implementación tarda entre 20 y 30 minutos.

Parámetros

NombreDescripción

Stack name

Obligatorio.

Nombre de la pila que se va a crear.

El nombre de la pila debe tener 22 caracteres como máximo. Nota: Para implementaciones en las regiones ap-southeast-1, ap-southeast-2, ap-northeast-1 o ap-northeast-2, el nombre de pila debe tener 8 caracteres como máximo.

Si stack name supera estos requisitos, la creación de la pila se bloqueará y no se realizará correctamente, ya que no se podrá crear el certificado SSL.

Configuración general

NombreDescripción

High Availability

Opcional.

Habilita la función Alta disponibilidad.


Valor predeterminado:enabled

Desired Throughput

Obligatorio.

Número de mensajes que quieres enviar por segundo.


Junto con la opción Type of Message, los recursos de servidores y bases de datos se seleccionarán y configurarán de forma automática para alcanzar el resultado deseado al enviar el tipo de mensajes seleccionado.

Type of Message

Obligatorio.

El tipo de mensaje dominante que deseas enviar y recibir.


Junto con la opción Desired Throughput, los recursos de servidores y bases de datos se seleccionarán y configurarán de forma automática para alcanzar el resultado deseado al enviar el tipo de mensajes seleccionado.

Host exporter for instance monitoring

Opcional.

Instala node-exporter en cada host de CoreApp para la supervisión de instancias.


Valor predeterminado:enabled

Configuración de red

NombreDescripción

Network Stack Name

Obligatorio.

El nombre de la pila CloudFormation creada en el paso de configuración de red.

Number of subnets

Obligatorio.

El número de subredes seleccionadas.


Actualmente, solo ofrecemos compatibilidad con 2 subredes de implementación para distribuir las tareas de ECS de manera uniforme en todos los hosts.

Load balancer scheme

Obligatorio.

Actualmente, solo ofrecemos compatibilidad con equilibradores de carga orientados a Internet, visibles para el público. Modifica los grupos de seguridad una vez creada la pila de API para bloquear el acceso innecesario.

Configuración de contenedores

NombreDescripción

Keypair to use

Obligatorio.

El par de claves adecuado para acceder a la instancia de EC2, si es necesario.

WA Enterprise container registry

Opcional.

Está destinado a futuras revisiones y para admitir clientes experimentales de la API de WhatsApp Business. El valor predeterminado debe ser adecuado para la mayoría de los casos.

WA Enterprise Client version

Obligatorio.

Se recomienda usar siempre la versión estable más reciente (consulta el registro de cambios para conocer la versión más reciente).
Formato:v2.yy.xx

La versión del cliente de la API de WhatsApp Business siempre comienza con una "v", salvo que se indique explícitamente lo contrario. El uso de una versión incorrecta provocará un error de creación de la pila.

EBS volume size

Obligatorio.

Para las cargas de trabajo de producción, se recomienda elegir 32 GB o más.

Configuración de bases de datos

NombreDescripción

Store configuration in DB

Opcional.

Permite almacenar información de configuración en la base de datos.
Opciones:true (predeterminada), false
Fijar el valor en false desactiva el almacenamiento de la información de configuración en la base de datos y en su lugar, la almacena en archivos.

Existing DB hostname

Opcional.

El nombre de host de la base de datos preexistente.
Si ya tienes una instancia de base de datos de MySQL dedicada al cliente de la API de WhatsApp Business, puedes introducir el nombre de host aquí.
Si dejas el campo vacío, se creará una nueva instancia de Amazon Aurora. Para obtener un rendimiento elevado y estable, recomendamos crear una nueva base de datos de Aurora o usar una que ya exista y que se haya creado con esta plantilla.

Administrator name

Obligatorio.

Nombre de administrador para acceder a la base de datos.

Administrator password

Obligatorio.

Contraseña de administrador para acceder a la base de datos.

La contraseña de la base de datos no debe contener ninguno de estos caracteres: ?{}&~!()^"@

Server port

Obligatorio.

Número de puerto para acceder al back-end de la base de datos.

Persist DB Connection

Opcional.

Indica si se debe persistir la conexión de base de datos para contenedores Web.


Valor predeterminado:enabled

DB Idle Connection Timeout

Opcional.

El tiempo de inactividad en milisegundos para que la base de datos cierre las conexiones inactivas
Valor predeterminado: 180.000 ms

Configuración de inicio de sesión

NombreDescripción

Logging driver for container logs

Opcional.

Controlador de registros para los registros de contenedor.
Opciones:json-file (predeterminado), awslogs
El valor json-file almacena los registros en hosts de EC2. El valor awslogs transmite todos los registros de contenedor a CloudWatch.

Maximum container log file size

Opcional.

Tamaño máximo del archivo de registro de un contenedor en MB antes de su rotación.

Los valores permitidos van de 1 a 250 (inclusive). Predeterminado: 50.

Maximum number of container log files

Opcional.

Número máximo de archivos de registro que deben conservarse por contenedor.
Con el tiempo, los contenedores detenidos se eliminan del host. En estos casos, todos los archivos de registro retenidos para ese contenedor se perderán.

Los valores permitidos van de 1 a 30 (inclusive). Predeterminado: 7.

Days to retain CloudWatch logs

Opcional.

Número de días para retener registros en CloudWatch.
Selecciona uno de los valores disponibles en la lista.

Predeterminado: 7

Configuración del sistema de archivos

NombreDescripción

File system identifier

No se usa.

Deja este parámetro vacío.

Configuración de seguridad

NombreDescripción

Key to encrypt DB & EFS

Opcional.

De forma predeterminada, la clave del servicio AWS (la opción Default-Key) se utiliza para cifrar los datos de base de datos y EFS en reposo. Otras opciones posibles son las siguientes:

  • Unencrypted: los datos en reposo no se cifran
  • Create-New-Key: se crea una nueva clave KMS, que se usa para cifrar los datos.
  • User-Provided-Key: puedes proporcionar un identificador de clave KMS, que se usará para cifrar los datos. Si seleccionas otra opción, deja esta opción en blanco.

User provided key id

Opcional.

Puedes proporcionar un identificador de clave KMS que se usará para cifrar los datos. Si la opción User-Provided-Key no está seleccionada, deja esta opción en blanco.

DB connection encryption

Opcional.

De forma predeterminada, se cifran los datos en tránsito a la base de datos. Solo es aplicable a la aplicación principal en este momento. El cifrado de la app web todavía no se admite. Además, con un nuevo motor de base de datos, aunque esta opción esté desactivada, la app principal realiza el cifrado, pero sin la verificación del certificado (identidad) del servidor.

CA certificate for DB connection

Opcional.

El valor predeterminado contiene el paquete de certificados de RDS. Si se utiliza una base de datos que no es de RDS, entonces se puede proporcionar el paquete de certificados de CA correspondiente o puede dejarse en blanco. El valor predeterminado es suficiente para habilitar una conexión segura con la base de datos.

Client certificate for DB connection

Opcional.

El certificado de cliente para la conexión de la base de datos

Client key for DB connection

Opcional.

Clave de cliente para la conexión de la base de datos

Punto de acceso de la API de WhatsApp Business

Estos parámetros son obligatorios para que los paneles de Grafana recuperen métricas de aplicación con fines de supervisión.

NombreDescripción

WAWebUsername

Obligatorio.

Especifica el nombre de usuario de la API de WhatsApp Business.

WAWebPassword

Obligatorio.

Especifica la contraseña para WAWebUsername. Esta será la nueva contraseña una vez que cambies la predeterminada en el primer inicio de sesión.

Grafana

NombreDescripción

GrafanaAdminPassword

Obligatorio.

Especifica la contraseña que se usa como contraseña de inicio de sesión para el panel de Grafana cuando se crea la pila.

GrafanaEnableSmtp

Opcional.

Indica si el SMTP está habilitado para configurar alertas de correo electrónico. Valores válidos: 0 para la inhabilitación y 1 para la habilitación.

Predeterminado:0 (inhabilitado)

GrafanaSmtpHost

Opcional.

El host de SMTP que se usa en alertas de correo electrónico. Por ejemplo, smtp.gmail.com:465.

GrafanaSmtpUser

Opcional.

Especifica el nombre de usuario de SMTP que se usa en alertas de correo electrónico.

GrafanaSmtpPassword

Opcional.

Especifica la contraseña de SMTP que se usa en alertas de correo electrónico.

Resultado tras la implementación

Al finalizar correctamente la creación de la plantilla, se generarán los siguientes parámetros:

  • Load balancer name: nombre de host del equilibrador de carga para acceder al cliente de la API de WhatsApp Business.
  • Database hostname: nombre de host de la base de datos que se creó o se proporcionó al crear la plantilla.
  • Database port number: número de puerto de la conexión de base de datos.
  • ECS cluster name: nombre del clúster de ECS creado.
  • Log retention days: número de días para la retención de registros.
  • DB connection CA: valor de CA de conexión de DB, si está configurado.
  • DB connection cert: valor del certificado de conexión de DB, si está configurado.
  • DB connection key: valor de la clave de conexión de DB, si está configurado.
  • Grafana: URL del panel de Grafana.
  • ShardCount: número de fragmentos que se configurarán en la API de la plataforma de WhatsApp Business.

Edición de reglas de seguridad de edición de SSH

De forma predeterminada, las reglas de seguridad creadas por la pila permiten que todo el tráfico pueda alcanzar las instancias de EC2 a través de SSH, los puntos de conexión de API y el panel de Grafana a través de HTTPs, y los contenedores de cadvisor y Prometheus. Por motivos de seguridad, se recomienda mucho que bloquees el acceso innecesario. En esta sección, se mostrarán los pasos subiendo la regla de seguridad de SSH a modo de ejemplo. Siempre debes restringir el acceso de SSH solo a tráfico en el que confíes.

  1. En la consola de EC2 y grupos de seguridad (por ejemplo: consola de administración de EC2 [amazon.com]):
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el grupo de seguridad que contiene <stackName>-EcsSecurityGroup y pasa a la pestaña Reglas de entrada.
      Editar reglas de entrada
    3. Selecciona Editar reglas entrantes, actualiza la columna Fuente para permitir solo tráfico confiable (por ejemplo: Mi IP), a fin de acceder a hosts de EC2 a través de SSH.
    4. Después de ajustar todas las reglas de seguridad, haz clic en Save rules para aplicar los cambios.
    5. Repite estos cambios en el grupo de seguridad que contiene "<stackName>-ms-xxx-EcsSecurityGroup", a fin de restringir el acceso de SSH a la pila de monitoreo.

Configuración del cliente de la API de WhatsApp Business

Una vez que se implementó correctamente el cliente de la API de WhatsApp Business, es necesario configurarlo para ponerlo en funcionamiento.

Paso 1: Registro del teléfono

Consulta la guía para números de teléfono, a fin de obtener información más detallada sobre el registro del número de teléfono.

Descarga el certificado codificado mediante Base64 desde tu cuenta de WhatsApp en el Facebook Business Manager bajo la pestaña Números de teléfono del administrador de WhatsApp.

Cuando tengas el número de teléfono correcto seleccionado y el certificado codificado mediante Base64, deberás registrar el cliente de la API de WhatsApp Business a través del nodo account. Consulta la documentación de registro para obtener más información.

Si el número de teléfono puede recibir mensajes de texto, utiliza ese método para recuperar el código de registro.

Si ya recibiste el código de registro de WhatsApp, puedes omitir este paso.

Paso 2: Configurar fragmentos

Después de crear la pila, debes hacer uso de la llamada a la API shards para aumentar el número de instancias activas de las app principales y así lograr el rendimiento deseado. La cantidad de fragmentos se puede consultar en la sección de resultados de la pila.

Paso 3: Actualizar la configuración

La configuración de las devoluciones de llamadas web de la API de WhatsApp Business y otros parámetros se describe en la documentación sobre configuración de la aplicación. Para lograr un rendimiento estable, se recomienda la siguiente configuración en la aplicación.

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

      
      
    

Paso 4: Configurar la SSL [opcional]

El cliente de la API de WhatsApp Business genera un certificado autofirmado de forma predeterminada en el momento de su creación. Es posible que el certificado de la autoridad de certificación (CA) que se utilizó para generar el certificado autofirmado sea necesario para verificar el extremo del cliente de la API de WhatsApp Business y evitar una advertencia de confianza de certificado.

Puedes descargar el certificado de CA y almacenarlo localmente para evitar la advertencia de confianza de certificado, o bien subir uno propio. Para obtener más información, consulta la documentación sobre el nodo certificate.

En las implementaciones de AWS, el certificado de SSL se crea con el nombre de host del equilibrador de carga. Si se utiliza una dirección IP en lugar del nombre de host para el acceso, se seguirá mostrando la advertencia.

WhatsApp admitirá la configuración de certificados de SSL proporcionados por el cliente en una versión futura.

Paso 5: Validación de la configuración

Una vez que completes correctamente los pasos de configuración y registro, puedes enviar y recibir un mensaje para validar la funcionalidad básica del cliente de la API de WhatsApp Business. Esta operación se describe detalladamente en la documentación sobre los mensajes.

Después de recibir correctamente el mensaje, el cliente de la API de WhatsApp Business realizará una solicitud POST del estado o los detalles del mensaje al webhook que se configuró en el Paso 4.

Si el mensaje se recibió correctamente, ¡felicitaciones, terminaste! Para obtener más información sobre los extremos de API disponibles, consulta la Documentación referencia de la API.

Reinicio de la app principal y la app web

Para reiniciar el cliente de la API de WhatsApp Business, en la consola ECS (por ejemplo, https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters), sigue estos pasos:

  1. Selecciona la región correcta en la esquina superior derecha.
  2. Selecciona el grupo adecuado de la lista.
  3. En la pestaña Services, selecciona el nombre del servicio que contiene WAEntService.
  4. Selecciona la pestaña Tasks. Normalmente, debería haber una sola tarea con un identificador compuesto de dígitos hexadecimales.
  5. En la ventana Tasks, haz clic en Stop en la esquina superior derecha y, a continuación, haz clic de nuevo en Stop cuando se te solicite.

Se detendrán la app web y la app principal. En breve, la infraestructura de AWS reiniciará la app web y la app principal.

Cabe esperar un tiempo de inactividad aproximado de uno o dos minutos.

Actualización

La actualización directa de CloudFormation puede ocasionar la destrucción y recreación de la base de datos. Te recomendamos mucho seguir los pasos del manual en la sección siguiente para actualizar el sistema, a fin de evitar la pérdida de datos.

En esta sección, se explica cómo actualizar el cliente de la API de WhatsApp Business y la plantilla de CloudFormation (CFN). Si se realiza una actualización, se ocasionará un tiempo de inactividad. No envíes mensajes durante ese tiempo. Vuelve a enviar mensajes después de que se haya completado la actualización.

Puedes actualizar simultáneamente la plantilla de CFN y la versión del cliente de la API de WhatsApp Business si se realizan los siguientes pasos:

  1. En el paso 5 de las instrucciones de actualización del cliente de la API de WhatsApp Business, selecciona Use current template en vez de Replace current template.
  2. En la sección de especificación de plantillas, elige la opción "Cargar un archivo de plantilla" y, luego, selecciona el más reciente que se haya descargado de GitHub.

Actualización del cliente de la API de WhatsApp Business

  1. Ve a la consola de CFN (por ejemplo, https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Selecciona la región correcta en la esquina superior derecha.
  3. Selecciona la pila del cliente de la API de WhatsApp Business que ya se creó.
  4. Haz clic en Update.
  5. En la página Prerequisite - Prepare template, selecciona la opción Replace current template. En la sección de especificación de plantillas, elige la opción "Upload a template file" y, luego, selecciona el más reciente que se haya descargado de GitHub. Haz clic en Next
  6. En la página Specify stack details, cambia el valor de WhatsApp Business API Client (container) version por la versión deseada. NO CAMBIES ningún otro parámetro. Haz clic en Next
  7. En la página Configure stack options, haz clic en Next.
  8. En la página Review, selecciona “I acknowledge that AWS CloudFormation might create IAM resources with custom names”. Revisa la sección Change set preview para detectar cambios inesperados. Si existen cambios inesperados o si tienes dudas, ponte en contacto con el equipo de WhatsApp. Haz clic en Update stack. Es posible realizar el seguimiento del estado de actualización de la pila en la consola de CFN, que cambiará de UPDATE_IN_PROGRESS a UPDATE_COMPLETE cuando finalice la actualización.

Verificación de actualización rápida:envía un mensaje de texto y verifica que la respuesta de la API contiene el número de versión correcto (es decir, la versión nueva). Verifica también si el destinatario recibió el mensaje

Actualización de la plantilla de CFN de WhatsApp

  1. Ve a la consola de CFN (por ejemplo, https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Selecciona la región correcta en la esquina superior derecha.
  3. Selecciona la pila del cliente de la API de WhatsApp Business que ya se creó.
  4. Haz clic en Update.
  5. En la página Prerequisite - Prepare template, selecciona la opción Replace current template. En la sección de especificación de plantillas, elige la opción "Upload a template file" y, luego, selecciona el más reciente que se haya descargado de GitHub. Haz clic en Next
  6. En la página Specify Stack Details, introduce los parámetros correspondientes de conformidad con la información de las secciones anteriores. Haz clic en Next
  7. En la página Configure Stack Options, haz clic en Nex.
  8. En la página Review, selecciona "I acknowledge that AWS CloudFormation might create IAM resources with custom names". Revisa la sección Change set preview para detectar cambios inesperados. Si existen cambios inesperados o si tienes dudas, ponte en contacto con el equipo de WhatsApp. Haz clic en Update stack. Es posible realizar el seguimiento del estado de actualización de la pila en la consola de CFN, que cambiará de UPDATE_IN_PROGRESS a UPDATE_COMPLETE cuando finalice la actualización.

Cómo reducir manualmente la carga cuando tu sistema esté inactivo (opcional)

Es común que las empresas busquen configurar un entorno de alto rendimiento para una campaña de tiempo limitado y lograr un entorno de carga reducida cuando no haya campañas en curso. En esta sección se ofrecen sugerencias sobre cómo escalar manualmente la configuración de AWS para ahorrar carga.

Importante: Recuerda que habrá tiempo de inactividad. El tiempo de inactividad estimado irá de los 5 a los 15 minutos. Asegúrate de seguir todas las prácticas recomendadas de DevOps, como las de copia de seguridad de configuración de aplicaciones y copia de seguridad de bases de datos.

  1. En la consola de ECS (p. ej., Amazon ECS):
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el grupo adecuado de la lista.
    3. En la pestaña Services, selecciona el nombre del servicio que contiene WAEntCoreappService. Selecciona Editar servicio y actualiza el valor "Tareas deseadas" a 0.
      Configuración de implementación
    4. Repite el paso C para todos los demás servicios, incluidos WAEntWebService, WAEntMasterService y HostExporterService.
    5. Regresa a la página de clústeres en la pestaña Tareas y asegúrate de que no haya en ejecución tareas de los servicios anteriores.
  2. En la consola de EC2 y grupos de escalamiento automático (p. ej., consola de grupos de escalamiento automático | administración de EC2 [amazon.com]):
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el grupo de escalamiento automático de la pila con HAECSAutoScalingGroup en el nombre y elige Editar. Actualiza la “Capacidad deseada” y la “Capacidad mínima” a 3.
      Tamaño de grupo
    3. Selecciona el grupo de escalamiento automático de la pila con HAECSAutoScalingGroupWeb en el nombre y elige Editar. Actualiza la “Capacidad deseada” y la “Capacidad mínima” a 2.
  3. (Opcional) Si el valor inicial de "Tipo de mensaje" es cualquiera de los tipos de imágenes, puedes reemplazar los tipos de instancias de EC2 por la opción c5.large, que supone menos carga.
    1. En la consola de EC2 y lanzamiento de plantillas, selecciona la plantilla de lanzamiento correspondiente en la lista.
    2. Plantilla de selección de acciones y modificación (crear nueva versión).
      Consola de lanzamiento de plantillas
    3. En la sección tipo de instancia, actualiza la el tipo de instancia a c5.large y luego selecciona Crear versión de plantilla.
      Tipo de instancia
    4. En la consola de EC2 y escalamiento automático de grupos, selecciona el grupo de escalamiento automático de la pila que tenga HAECSAutoScalingGroup en el nombre.
    5. Selecciona Editar en la sección plantilla de lanzamiento.
    6. Selecciona la nueva plantilla de lanzamiento creada en el paso 3c y elige Actualizar.
      Plantilla de lanzamiento
  4. En la consola de RDS (p. ej., consola de administración de RDS [amazon.com]):
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona la base de datos de Aurora adecuada de la lista.
    3. Selecciona Modificar y actualiza la clase de instancia de DB a r5.xlarge.
      Configuración de instancias
  5. En la consola de ECS (p. ej., Amazon ECS):
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el grupo adecuado de la lista.
    3. En la pestaña Services, selecciona el nombre del servicio que contiene WAEntCoreappService. Selecciona Edit Service y actualiza el valor de "Desired tasks" a 3.
    4. En la pestaña Servicios, selecciona el nombre del servicio que contiene HostExporterService. Selecciona Edit Service y actualiza el valor de "Desired tasks" a 3.
    5. En la pestaña Servicios, selecciona el nombre del servicio que contiene WAEntWebService. Selecciona Edit Service y actualiza el valor "Desired tasks" a 2.
    6. En la pestaña Servicios, selecciona el nombre del servicio que contiene WAEntMasterService. Selecciona Edit Service y actualiza el valor "Desired tasks" a 2.
  6. Espera hasta que todos los servicios lancen el número de tareas deseado. Una vez que todas las tareas estén en ejecución, usa la API para establecer fragmentos para restablecerlos a 2.
  7. Valida el estado del sistema con la API de estado. También se puede enviar y recibir un mensaje para validar la funcionalidad básica del cliente de la API de WhatsApp Business. Esta operación se describe detalladamente en la documentación sobre los mensajes.