La API de instalaciones locales dejará de estar disponible. Consulta nuestro documento Fin de la API de instalaciones locales para conocer los detalles y descubrir cómo migrar a nuestra nueva generación de API de la nube.
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:
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.
Antes de empezar, necesitarás hacer lo siguiente:
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.
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.
El cliente de la API de WhatsApp Business utiliza una imagen de CentOS 9 (disponible en AWS Marketplace). Antes de usar la plantilla, se deben revisar y aceptar las condiciones. Si no se aceptan las condiciones, no se podrá crear la plantilla.
Para revisar y aceptar la imagen AMI de CentOS 9, sigue estos pasos:
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:
Dependiendo de las pruebas iniciales, WhatsApp determinará si podemos ofrecer una opción diferente que esté disponible en todas las regiones.
Lamentablemente, no admitimos KOPS. No obstante, admitimos la solución de AWS basada en ECS. Además, contamos con una configuración general de minikube de Kubernetes.
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.
Para realizar la implementación de la red:
Nombre | Descripción |
---|---|
| Obligatorio. Nombre de la pila que se va a crear. |
Nombre | Descripción |
---|---|
| Obligatorio. Las zonas de disponibilidad (AZ) para crear la VPC. |
| Obligatorio. El número de zonas de disponibilidad seleccionadas. |
Nombre | Descripción |
---|---|
| Obligatorio. Introduce el intervalo de direcciones IP (CIDR) para esta VPC. |
| Obligatorio. Tenencia de la VPC |
Nombre | Descripción |
---|---|
| Obligatorio. Intervalo de direcciones IP (CIDR) para las subredes públicas. |
| Obligatorio. Intervalo de direcciones IP (CIDR) de las subredes públicas. |
| Opcional. Obligatorio si el número de zonas de disponibilidad es mayor que 2. |
| Opcional. Obligatorio si el número de zonas de disponibilidad es mayor que 3. |
Nombre | Descripción |
---|---|
| Obligatorio. Opciones: |
| Condicional. Obligatorio si la creación de la subred privada se ha establecido en |
| Condicional. Obligatorio si la creación de la subred privada se ha establecido en |
| Condicional. Obligatorio si la creación de la subred privada se ha establecido en |
| Condicional. Obligatorio si la creación de la subred privada se estableció en |
Antes de implementar la pila de la API de WhatsApp Business en AWS, debes subir archivos de configuración de las subpilas de referencia a un contenedor S3 al que tengas acceso de lectura.
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:
Nombre | Descripción |
---|---|
| 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 |
Nombre | Descripción |
---|---|
| Opcional. Habilita la función Alta disponibilidad. Valor predeterminado: |
| Obligatorio. Número de mensajes que quieres enviar por segundo. Junto con la opción |
| Obligatorio. El tipo de mensaje dominante que deseas enviar y recibir. Junto con la opción |
| Opcional. Instala node-exporter en cada host de CoreApp para la supervisión de instancias. Valor predeterminado: |
Nombre | Descripción |
---|---|
| Obligatorio. El nombre de la pila CloudFormation creada en el paso de configuración de red. |
| 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 entre todos los hosts. |
| 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. |
Nombre | Descripción |
---|---|
| Obligatorio. El par de claves adecuado para acceder a la instancia de EC2, si es necesario. |
| 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. |
| 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). 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. |
| Obligatorio. Para las cargas de trabajo de producción, se recomienda elegir 32 GB o más. |
Nombre | Descripción |
---|---|
| Opcional. Permite almacenar información de configuración en la base de datos. |
| Opcional. El nombre de host de la base de datos preexistente. |
| Obligatorio. Nombre de administrador para acceder a la base de datos. |
| 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: ?{}&~!()^"@ |
| Obligatorio. Número de puerto para acceder al back-end de la base de datos. |
| Opcional. Indica si la conexión de base de datos para contenedores Web debe ser persistente. Valor predeterminado: |
| Opcional. El tiempo de inactividad en milisegundos para que la base de datos cierre las conexiones inactivas |
Nombre | Descripción |
---|---|
| Opcional. Controlador de registros para los registros de contenedor. |
| 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. |
| Opcional. Número máximo de archivos de registro que deben conservarse por contenedor. Los valores permitidos van de 1 a 30 (inclusive). Predeterminado: 7. |
| Opcional. Número de días para retener registros en CloudWatch. Predeterminado: |
Nombre | Descripción |
---|---|
| No se usa. Deja este parámetro vacío. |
Nombre | Descripción |
---|---|
| 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:
|
| 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. |
| 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. |
| 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. |
| Opcional. El certificado de cliente para la conexión de la base de datos |
| Opcional. Clave de cliente para la conexión de la base de datos |
Estos parámetros son obligatorios para que los paneles de Grafana recuperen métricas de aplicación con fines de supervisión.
Nombre | Descripción |
---|---|
| Obligatorio. Especifica el nombre de usuario de la API de WhatsApp Business. |
| Obligatorio. Especifica la contraseña para |
Nombre | Descripción |
---|---|
| 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. |
| Opcional. Indica si el SMTP está habilitado para configurar alertas de correo electrónico. Valores válidos: Predeterminado: |
| Opcional. El host de SMTP que se usa en alertas de correo electrónico. Por ejemplo, smtp.gmail.com:465. |
| Opcional. Especifica el nombre de usuario de SMTP que se usa en alertas de correo electrónico. |
| Opcional. Especifica la contraseña de SMTP que se usa en alertas de correo electrónico. |
Al finalizar correctamente la creación de la plantilla, se generarán los siguientes parámetros:
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, a modo de ejemplo, los pasos para actualizar la regla de seguridad de SSH. Siempre debes restringir el acceso de SSH solo a tráfico en el que confíes.
"<stackName>-ms-xxx-EcsSecurityGroup"
, a fin de restringir el acceso de SSH a la pila de monitoreo.
Una vez que se implementó correctamente el cliente de la API de WhatsApp Business, es necesario configurarlo para ponerlo en funcionamiento.
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.
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.
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" } }
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.
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 enviará una solicitud POST
con el 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.
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:
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.
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:
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
Es común que las empresas busquen configurar un entorno de alto rendimiento para una campaña de tiempo limitado y mantener un entorno de carga reducida cuando no haya campañas en curso. En esta sección se ofrecen sugerencias sobre cómo reducir manualmente la escala del entorno de AWS para reducir la 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.
2
.c5.large
, que supone menos carga.
c5.large
y, luego, selecciona Create template version.
r5.xlarge
.
3
.3
.2
.2
.2
.