Estamos retirando la API local. Consulta nuestro documento Retirada de la API local para obtener más información y aprender a migrar a nuestra API de nube de nueva generación.

Implementación con Amazon Web Services

En este documento se describe cómo 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 hayas completado la configuración, puedes optar por actualizar el cliente. Si alguna vez necesitas reiniciar la aplicación web y la aplicación principal, sigue estos pasos.

En este documento, se presenta una nueva plantilla de AWS que hemos probado para obtener un rendimiento de mensajes mayor y más estable. Si buscas la plantilla anterior de AWS, consulta Archivo de AWS.

Introducción

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 saber cómo funciona AWS. WhatsApp proporciona plantillas de CloudFormation para implementar el cliente de la API de WhatsApp Business fácilmente. Consulta el Centro de recursos introductorios 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 creada mediante la plantilla de la API de WhatsApp Business. También puedes usar un par de claves creado anteriormente. Consulta la documentación sobre los pares de claves de Amazon EC2 para obtener información sobre la creación y el uso de pares de claves con una instancia de EC2.

El par de claves debe crearse con la región para la que vas a implementar la API de WhatsApp Business.

Suscribirse a una imagen de CentOS 9

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

Para revisar y aceptar la imagen AMI de CentOS 9:

  1. Accede a la página AWS Marketplace: CentOS 9 (x86_64) - with Updates HVM.
  2. Haz clic en Continue to Subscribe (Continuar para suscribirse) en la esquina superior derecha y, a continuación, haz clic en el botón Accept Terms (Aceptar condiciones).

Regiones admitidas

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

  • Virginia del Norte (us-east-1)
  • Ohio (us-east-2)
  • California del Norte (us-west-1)
  • Oregón (us-west-2)
  • Mumbai (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)

En función de las pruebas iniciales, WhatsApp determinará si podemos proporcionar una opción alternativa que esté disponible en todas las regiones.

Preguntas frecuentes

Implementación

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

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 la infraestructura de la red VPC ya se ha creado, 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 proporciona únicamente como referencia. Puedes modificarla según tus necesidades específicas.

Requisitos de red

  • Debe haber dos subredes como mínimo en las distintas zonas de disponibilidad de la región. De lo contrario, no se creará la plantilla al crear el recurso RDS (datos).
  • Debe permitir el acceso entrante a HTTP (puerto: 80), HTTPS (puerto: 443) y SSH (puerto: 22). Por motivos de seguridad, te recomendamos encarecidamente que uses HTTPS y evites HTTP.

Para implementar la plantilla de red:

  1. Accede a la consola de CloudFormation para tu región (por ejemplo, eu-west-1).
  2. Selecciona Create a stack (Crear una pila).
  3. Descarga el archivo wa_ent_net.yml de GitHub y guárdalo localmente.
  4. Elige Upload a template file (Subir un archivo de plantilla) como origen de la plantilla y sube el archivo de plantilla descargado en el paso 3.
    Crear pila
  5. Haz clic en Next (Siguiente).
  6. En la pantalla Specify stack details (Especificar datos de la pila), introduce los valores de parámetros según la tabla siguiente:

Parámetros

NombreDescripción

Stack name

Obligatorio

Nombre de la pila que se va a crear.

Configuración de las zonas de disponibilidad

NombreDescripción

Availability zones

Obligatorio

Zonas de disponibilidad (AZ) para crear la VPC.
La plantilla requiere que se seleccionen un mínimo de dos zonas de disponibilidad. Para un entorno de producción, se recomienda seleccionar tres zonas de disponibilidad como mínimo.

Number of availability zones

Obligatorio

Número de zonas de disponibilidad seleccionadas.

Configuración de una VPC

NombreDescripción

IP address range

Obligatorio

Intervalo de direcciones IP (CIDR) para esta VPC.

Tenancy

Obligatorio

El inquilino de la VPC.
Opciones:default, dedicated

Configuración de una subred pública

NombreDescripción

IP range - subnet #1

Obligatorio

El intervalo de direcciones IP (CIDR) para las subredes públicas.

IP range - subnet #2

Obligatorio

El intervalo de direcciones IP (CIDR) para las subredes públicas.

IP range - subnet #3

Opcional

Obligatorio si hay más de dos zonas de disponibilidad.

IP range - subnet #4

Opcional

Obligatorio si hay más de tres zonas de disponibilidad.

Configuración de una subred privada

NombreDescripción

Create private subnets?

Obligatorio

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

IP range - subnet #1

Condicional.

Obligatorio si la creación de la subred privada está definida en true.

IP range - subnet #2

Condicional.

Obligatorio si la creación de la subred privada está definida en true.

IP range - subnet #3

Condicional.

Obligatorio si la creación de la subred privada está definida en true y hay más de dos zonas de disponibilidad.

IP range - subnet #4

Condicional.

Obligatorio si la creación de la subred privada está definida en true y hay más de tres zonas de disponibilidad.

Paso 2: Subida de los archivos de configuración de las pilas de supervisión y base de datos

Antes de implementar la pila de la API de WhatsApp Business en AWS, tienes que subir los archivos de configuración de las subpilas indicadas a un contenedor de S3 para el que dispongas de acceso de lectura.

  1. Crea un nuevo contenedor de S3 o utiliza uno existente para el que dispongas de acceso de lectura.
  2. Descarga los archivos wa_ent_db.yml y wa_ent_monitoring.yml de GitHub y súbelos al contenedor de S3 que se menciona en el paso 1.
  3. Elige el archivo wa_ent_db.yml de la lista de objetos y copia su URL. El formato debería ser el siguiente: https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml.
  4. En el archivo wa_ent.yml, sustituye el valor de TemplateURL en dbStack por la URL del 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. El formato debería ser el siguiente: https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml.
  6. En el archivo wa_ent.yml, sustituye el valor de TemplateURL en la pila de supervisión por la URL del objeto del paso 5 y guarda el archivo.
Subir los archivos al contenedor de 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 ha indicado anteriormente, 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. Accede a la consola de CloudFormation para tu región (por ejemplo, eu-west-1).
  2. Selecciona Creat a stack (Crear una pila).
  3. Descarga el archivo wa_ent.yml de GitHub y guárdalo localmente.
  4. Elige Upload a template file (Subir un archivo de plantilla) como origen de la plantilla y sube el archivo de plantilla descargado en el paso 3.
    Crear pila
  5. Haz clic en Next (Siguiente).
  6. A continuación, podrás introducir parámetros. Consulta la siguiente tabla para conocer las descripciones de los parámetros.
  7. Tras establecer todos los parámetros (de las tablas siguientes), haz clic en Next (Siguiente) en la página Configure stack options (Configurar opciones de pila). Haz los cambios necesarios según tus preferencias y haz clic en Next (Siguiente).
  8. En la página Review stack (Revisar pila), verás un resumen de los valores de los parámetros y las opciones de la pila. Después de la verificación, en la sección Capabilities (Capacidades), marca las dos casillas y haz clic en Submit (Enviar) para empezar 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: En el caso de las implementaciones en las regiones ap-southeast-1, ap-southeast-2, ap-northeast-1 o ap-northeast-2, el nombre de la pila debe tener ocho caracteres como máximo.

Si el valor de stack name es más largo de lo que indican estos requisitos, la creación de la pila se bloqueará y producirá un error, ya que no podrá crear el certificado SSL.

Configuración general

NombreDescripción

High Availability

Opcional

Activa la función de 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 servidor y base de datos se seleccionarán y configurarán automáticamente para alcanzar el rendimiento deseado al enviar el tipo seleccionado de mensajes.

Type of Message

Obligatorio

Tipo predominante de mensajes que quieres enviar y recibir.


Junto con la opción Desired Throughput, los recursos de servidor y base de datos se seleccionarán y configurarán automáticamente para alcanzar el rendimiento deseado al enviar el tipo seleccionado de mensajes.

Host exporter for instance monitoring

Opcional

Instala node-exporter en cada host de la aplicación principal con fines de supervisión de instancias.


Valor predeterminado:enabled

Configuración de la red

NombreDescripción

Network Stack Name

Obligatorio

Nombre de la pila de CloudFormation de la red creada mediante el paso de configuración de la red.

Number of subnets

Obligatorio

Número de subredes elegidas.


Actualmente, solo se admiten dos subredes para la implementación a fin de distribuir las tareas de ECS de forma uniforme en todos los hosts.

Load balancer scheme

Obligatorio

Actualmente, solo se admiten equilibradores de carga accesibles desde Internet, que son visibles para el público. Modifica los grupos de seguridad una vez creada la pila de la API para bloquear el acceso innecesario.

Configuración del contenedor

NombreDescripción

Keypair to use

Obligatorio

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

WA Enterprise container registry

Opcional

Esto es para prepararse para el futuro y admitir clientes de la API de WhatsApp Business experimentales. El valor predeterminado debería servir para la mayoría de casos.

WA Enterprise Client version

Obligatorio

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

La versión del cliente de la API de WhatsApp Business siempre empieza por "v", a menos que se indique lo contrario de forma explícita. El uso de una versión incorrecta provocará un error de creación de la pila.

EBS volume size

Obligatorio

Se recomienda elegir 32 GB o más para las cargas de trabajo de producción.

Configuración de la base de datos

NombreDescripción

Store configuration in DB

Opcional

Activa el almacenamiento de la información de configuración en la base de datos.
Opciones:true (opción predeterminada), false
Si defines el valor en false, se 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

Nombre de host de la base de datos existente.
Si ya tienes una instancia de base de datos MySQL dedicada para el cliente de la API de WhatsApp Business, puedes introducir el nombre de host aquí.
Si lo dejas en blanco, se creará una nueva instancia de Amazon Aurora. Para conseguir un rendimiento alto estable, recomendamos encarecidamente crear una nueva base de datos de Aurora o usar una existente creada previamente con anterioridad mediante esta plantilla.

Administrator name

Obligatorio

El nombre del administrador para acceder a la base de datos.

Administrator password

Obligatorio

La contraseña del administrador para acceder a la base de datos.

La contraseña de la base de datos no puede 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 la conexión de base de datos persiste para los contenedores web.


Valor predeterminado:enabled

DB Idle Connection Timeout

Opcional

Tiempo en milisegundos que debe pasar antes de que la instancia de base de datos cierre las conexiones inactivas.
Valor predeterminado: 180 000 ms

Configuración del registro

NombreDescripción

Logging driver for container logs

Opcional

Controlador de registros para los registros de contenedor.
Opciones:json-file, awslogs (valor predeterminado)
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 de un archivo de registro de contenedor en MB antes de rotarse.

Los valores permitidos están comprendidos entre 1 y 250 (ambos incluidos). Valor predeterminado: 50

Maximum number of container log files

Opcional

El número máximo de archivos de registro que se retendrán por contenedor.
Pasado cierto tiempo, los contenedores detenidos se eliminan del host. En estos casos, se eliminan todos los archivos de registro del contenedor retenidos.

Los valores permitidos están comprendidos entre 1 y 30 (ambos incluidos). Valor predeterminado: 7

Days to retain CloudWatch logs

Opcional

Número de días que se retendrán los registros en CloudWatch.
Selecciona uno de los valores disponibles de la lista.

Valor predeterminado: 7

Configuración del archivo del sistema

NombreDescripción

File system identifier

No se usa.

Deja este parámetro en blanco.

Configuración de seguridad

NombreDescripción

Key to encrypt DB & EFS

Opcional

De forma predeterminada, se usa la clave de servicio de AWS (la opción Default-Key) para cifrar los datos DB y EFS en reposo. Las otras opciones son:

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

User provided key id

Opcional

Puedes proporcionar un identificador de clave de KMS que se usará para cifrar los datos. Déjalo en blanco si no seleccionas la opción User-Provided-Key.

DB connection encryption

Opcional

De forma predeterminada, se cifran los datos que están en tránsito hacia la base de datos. Actualmente, esto solo es aplicable para la aplicación principal. Todavía no se admite el cifrado de la aplicación web. Además, con un nuevo motor de base de datos, aunque esta opción esté desactivada, la aplicación principal realiza el cifrado, pero sin la verificación del certificado del servidor (identidad).

CA certificate for DB connection

Opcional

El valor predeterminado contiene el paquete de certificado RDS. Si utilizas una base de datos que no es de RDS, puedes proporcionar el paquete de certificado de CA correspondiente o dejarlo en blanco. El valor predeterminado es adecuado para activar una conexión segura con la base de datos.

Client certificate for DB connection

Opcional

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

Client key for DB connection

Opcional

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

Punto de acceso a la API de WhatsApp Business

Estos parámetros son obligatorios para que los paneles de Grafana recuperen las métricas de aplicaciones 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 de WAWebUsername. Será la nueva contraseña una vez que cambies la contraseña predeterminada al iniciar sesión por primera vez.

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 protocolo SMTP está activado para configurar alertas de correo electrónico. Los valores válidos son: 0 (desactivado) y 1 (activado).

Valor predeterminado:0 (desactivado)

GrafanaSmtpHost

Opcional

Host de SMTP que se utiliza en las alertas de correo electrónico. Por ejemplo, smtp.gmail.com:465.

GrafanaSmtpUser

Opcional

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

GrafanaSmtpPassword

Opcional

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

Salida tras la implementación

Una vez creada la plantilla correctamente, se mostrarán los parámetros siguientes:

  • Load balancer name (Nombre del equilibrador de carga): nombre de host del equilibrador de carga que accede al cliente de la API de la Plataforma de WhatsApp Business.
  • Database hostname (Nombre de host de la base de datos): nombre de host de la base de datos que se crea o proporciona durante la creación de la plantilla.
  • Database port number (Número de puerto de la base de datos): número de puerto de la conexión de base de datos.
  • ECS cluster name (Nombre del clúster de ECS): nombre del clúster de ECS creado.
  • Log retention days (Días de retención de registros): número de días que se van a retener los registros.
  • DB connection CA (CA de la conexión de base de datos): valor de la entidad de certificación (CA) de la conexión de base de datos, si se ha configurado.
  • DB connection cert (Certificado de la conexión de base de datos): valor del certificado de la conexión de base de datos, si se ha configurado.
  • DB connection key (Clave de la conexión de base de datos): valor de la clave de conexión de base de datos, si se ha configurado.
  • Grafana: URL del panel de Grafana.
  • ShardCount: número de particiones que se van a configurar para la API de la Plataforma de WhatsApp Business.

Editar reglas de seguridad 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 mediante SSH, los extremos de la API y el panel de Grafana mediante HTTPS y los contenedores de Prometheus y cadvisor. Por motivos de seguridad, te recomendamos encarecidamente que bloquees el acceso innecesario. En esta sección se mostrarán los pasos de actualización de la regla de seguridad de SSH a modo de ejemplo. Siempre debes restringir el acceso de SSH a solo el tráfico en el que confíes.

  1. En la consola de EC2 - “Security Groups” (Grupos de seguridad) (por ejemplo: Consola de administración de EC2 (amazon.com)), haz lo siguiente:
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el grupo de seguridad que contenga <stackName>-EcsSecurityGroup y, a continuación, cambia a la pestaña Inbound Rules (Reglas de entrada).
      Editar las reglas de entrada
    3. Selecciona Edit inbound rules (Editar reglas de entrada), actualiza la columna Source (Origen) para permitir que solo el tráfico de confianza (por ejemplo: “My IP” [Mi IP]) acceda a los hosts de EC2 mediante SSH.
    4. Una vez ajustadas todas las reglas de seguridad, haz clic en Save rules (Guardar reglas) para aplicar los cambios.
    5. Repite estos cambios para el grupo de seguridad que contenga "<stackName>-ms-xxx-EcsSecurityGroup" a fin de restringir el acceso de SSH para la pila de supervisión.

Configuración del cliente de la API de WhatsApp Business

Una vez implementado correctamente el cliente de la API de WhatsApp Business, debe configurarse para ponerse en funcionamiento.

Paso 1: Registrar el teléfono

Consulta la guía sobre números de teléfono para obtener información detallada acerca del registro de números de teléfono.

Descarga el certificado codificado mediante Base64 de tu cuenta de WhatsApp en Business Manager de Facebook en 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, debes registrar el cliente de la API de WhatsApp Business con el nodo account. Para obtener más información, consulta la documentación sobre el registro.

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

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

Paso 2: Definir las particiones

Una vez creada la pila, debes utilizar la llamada a la API shards para aumentar el número de instancias activas de la aplicación principal a fin de alcanzar el rendimiento deseado. El número de particiones se puede consultar en la sección Output (Salida) de la pila.

Paso 3: Actualizar la configuración de la aplicación

En la documentación sobre la configuración de la aplicación, se describen la configuración de las devoluciones de llamada web de la API de WhatsApp Business y otros parámetros. Para alcanzar un rendimiento estable, se recomienda la siguiente configuración de 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: [Opcional] Configurar SSL

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) usado 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 SSL proporcionados por el cliente en una versión futura.

Paso 5: Validar la configuración

Cuando hayas completado los pasos de configuración y registro, podrás enviar y recibir un mensaje para validar la funcionalidad básica del cliente de la API de WhatsApp Business. Este proceso se describe detalladamente en la documentación sobre los mensajes.

Cuando hayas recibido un mensaje correctamente, el cliente de la API de WhatsApp Business realizará una operación POST del estado o los detalles del mensaje en el webhook configurado en el paso 3.

Si el mensaje se ha recibido correctamente, has terminado. Consulta la documentación de referencia para obtener más información acerca de los extremos de la API disponibles.

Reinicio de la aplicación principal y la aplicación web

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

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

Esto detendrá la aplicación web y la aplicación principal. Poco después, la infraestructura de AWS reiniciará la aplicación web y la aplicación principal.

Cabe esperar un periodo de inactividad de uno o dos minutos.

Actualización

Si actualizas directamente una pila de CloudFormation, es posible que la base de datos se destruya y se vuelva a crear. Te recomendamos encarecidamente que sigas los pasos manuales descritos en la siguiente sección para actualizar el sistema a fin de evitar la pérdida de datos.

En esta sección, se describe el procedimiento para actualizar el cliente de la API de WhatsApp Business y la plantilla de CloudFormation (CFN). Si realizas una actualización, se producirá un periodo de inactividad, por lo que no deberías enviar mensajes durante este tiempo. Puedes volver a enviar mensajes una vez que se haya completado la actualización.

Para actualizar la plantilla de CFN y la versión del cliente de la API de WhatsApp Business a la vez, haz lo siguiente:

  1. En el paso 5 de las instrucciones de actualización del cliente de la API de WhatsApp Business, selecciona Replace current template (Reemplazar plantilla actual) en lugar de Use current template (Usar plantilla actual).
  2. En la sección Specify template (Especificar plantilla), elige “Upload a template file” (Subir un archivo de plantilla) y selecciona el archivo de plantilla más reciente descargado de GitHub.

Actualización del cliente de la API de WhatsApp Business

  1. Accede 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 ya creada.
  4. Haz clic en Update (Actualizar).
  5. En la página Prerequisite - Prepare template (Requisito previo: Preparar la plantilla), selecciona la opción Replace current template (Reemplazar plantilla actual). En la sección Specify template (Especificar plantilla), elige “Upload a template file” (Subir un archivo de plantilla) y selecciona el archivo de plantilla más reciente descargado de GitHub. Haz clic en Next (Siguiente).
  6. En la página Specify stack details (Especificar detalles de la pila), cambia la versión (contenedor) del cliente de la API de WhatsApp Business a la versión deseada. NO CAMBIES ningún otro parámetro. Haz clic en Next (Siguiente).
  7. En la página Configure stack options (Configurar opciones de la pila), haz clic en Next (Siguiente).
  8. En la página Review (Revisión), selecciona “I acknowledge that AWS CloudFormation might create IAM resources with custom names” (Entiendo que AWS CloudFormation puede crear recursos de IAM con nombres personalizados). Revisa la sección Change set preview (Cambiar vista previa del conjunto) para consultar posibles cambios inesperados. Si se produjera algún cambio inesperado o tienes dudas, contacta con la asistencia directa de WhatsApp. Haz clic en Update stack (Actualizar pila). Puedes hacer un seguimiento del estado de actualización de la pila en la consola de CFN, que cambiará de UPDATE_IN_PROGRESS a UPDATE_COMPLETE cuando la actualización haya finalizado.

Verificación rápida de la actualización: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 nueva versión). Verifica también si el destinatario ha recibido el mensaje.

Actualización de la plantilla de CFN de WhatsApp

  1. Accede 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 ya creada.
  4. Haz clic en Update (Actualizar).
  5. En la página Prerequisite - Prepare template (Requisito previo: Preparar la plantilla), selecciona la opción Replace current template (Reemplazar plantilla actual). En la sección Specify template (Especificar plantilla), elige “Upload a template file” (Subir un archivo de plantilla) y selecciona el archivo de plantilla más reciente descargado de GitHub. Haz clic en Next (Siguiente).
  6. En la página Specify Stack Details (Especificar detalles de la pila), introduce los parámetros correspondientes según la información de las secciones anteriores. Haz clic en Next (Siguiente).
  7. En la página Configure Stack Options (Configurar opciones de la pila), haz clic en Next (Siguiente).
  8. En la página Review (Revisión), selecciona "I acknowledge that AWS CloudFormation might create IAM resources with custom names" (Entiendo que AWS CloudFormation puede crear recursos de IAM con nombres personalizados). Revisa la sección Change set preview (Cambiar vista previa del conjunto) para consultar posibles cambios inesperados. Si se produjera algún cambio inesperado o tienes dudas, contacta con la asistencia directa de WhatsApp. Haz clic en Update stack (Actualizar pila). Puedes hacer un seguimiento del estado de actualización de la pila en la consola de CFN, que cambiará de UPDATE_IN_PROGRESS a UPDATE_COMPLETE cuando la actualización haya finalizado.

Cómo reducir manualmente el coste cuando el sistema está inactivo (opcional)

Es habitual que las empresas quieran configurar un entorno de alto rendimiento para una campaña de duración limitada y mantener un entorno de bajo coste en ejecución durante el tiempo que no sea de campaña. En esta sección, se ofrecen sugerencias sobre cómo reducir manualmente la configuración de AWS para ahorrar costes.

Importante: Recuerda que habrá un tiempo de inactividad. El tiempo de inactividad estimado puede durar entre 5 y 15 minutos. Asegúrate de haber seguido todas las prácticas recomendadas de DevOps, como la creación de copias de seguridad de la configuración de la aplicación y la base de datos.

  1. En la consola de ECS (p. ej.: Amazon ECS), haz lo siguiente:
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el clúster adecuado de la lista.
    3. En la pestaña Services (Servicios), selecciona el nombre del servicio que contenga WAEntCoreappService. Elige Edit Service (Editar servicio) y actualiza el valor de “Desired tasks” (Tareas deseadas) a 0.
      Configuración de la implementación
    4. Repite el paso c para todos los demás servicios, incluidos WAEntWebService, WAEntMasterService y HostExporterService.
    5. Vuelve a la página del clúster y, en la pestaña Tasks (Tareas), asegúrate de que no haya tareas en ejecución de los servicios anteriores.
  2. En la consola de EC2 - “Auto Scaling Groups” (Grupos de escalado automático) (p. ej.: Grupos de escalado automático | Consola de administración de EC2 [amazon.com]), haz lo siguiente:
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el grupo de escalado automático de la pila con HAECSAutoScalingGroup en el nombre y elige Edit (Editar). Actualiza los valores de “Desired capacity” (Capacidad deseada) y “Minimum capacity” (Capacidad mínima) a 3.
      Tamaño del grupo
    3. Selecciona el grupo de escalado automático de la pila con HAECSAutoScalingGroupWeb en el nombre y elige Edit (Editar). Actualiza los valores de “Desired capacity” (Capacidad deseada) y “Minimum capacity” (Capacidad mínima) a 2.
  3. (Opcional) Si el valor inicial de “Type of message” (Tipo de mensaje) es alguno de los tipos de imagen, puedes sustituir los tipos de instancia de EC2 por la opción más barata de c5.large.
    1. En la consola de EC2 - “Launch Templates” (Plantillas de lanzamiento), selecciona la plantilla de lanzamiento adecuada de la lista.
    2. Selecciona “Actions” - “Modify template (Create new version)” (Acciones - Modificar plantilla [Crear nueva versión]).
      Consola de plantillas de lanzamiento
    3. En la sección Instance type (Tipo de instancia), actualiza el tipo de instancia a c5.large y, a continuación, elige Create template version (Crear versión de plantilla).
      Tipo de instancia
    4. En la consola de EC2 - “Auto Scaling Groups” (Grupos de escalado automático), selecciona el grupo de escalado automático de la pila con HAECSAutoScalingGroup en el nombre.
    5. Selecciona Edit (Editar) en la sección Launch template (Plantilla de lanzamiento).
    6. Selecciona la nueva plantilla de lanzamiento creada en el paso 3c y elige Update (Actualizar).
      Plantilla de lanzamiento
  4. En la consola de RDS (p. ej.: Consola de administración de RDS [amazon.com]), haz lo siguiente:
    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 Modify (Modificar) y actualiza la clase de la instancia de base de datos a r5.xlarge.
      Configuración de la instancia
  5. En la consola de ECS (p. ej.: Amazon ECS), haz lo siguiente:
    1. Selecciona la región correcta en la esquina superior derecha.
    2. Selecciona el clúster adecuado de la lista.
    3. En la pestaña Services (Servicios), selecciona el nombre del servicio que contenga WAEntCoreappService. Elige Edit Service (Editar servicio) y actualiza el valor de “Desired tasks” (Tareas deseadas) a 3.
    4. En la pestaña Services (Servicios), selecciona el nombre del servicio que contenga HostExporterService. Elige Edit Service (Editar servicio) y actualiza el valor de “Desired tasks” (Tareas deseadas) a 3.
    5. En la pestaña Services (Servicios), selecciona el nombre del servicio que contenga WAEntWebService. Elige Edit Service (Editar servicio) y actualiza el valor de “Desired tasks” (Tareas deseadas) a 2.
    6. En la pestaña Services (Servicios), selecciona el nombre del servicio que contenga WAEntMasterService. Elige Edit Service (Editar servicio) y actualiza el valor de “Desired tasks” (Tareas deseadas) a 2.
  6. Espera por todos los servicios para lanzar el número deseado de tareas. Cuando se estén ejecutando todas las tareas, utiliza la API de definición de particiones para restablecer el número de particiones a 2.
  7. Valida el estado del sistema con la API de estado. Se puede enviar y recibir un mensaje para validar la funcionalidad básica del cliente de la API de WhatsApp Business. Este proceso se describe detalladamente en la documentación sobre los mensajes.