A API Local está sendo descontinuada. Consulte o documento Descontinuação da API Local para ver mais informações e saber como migrar para nossa API de Nuvem de última geração.
Este documento mostra como usar a Amazon Web Services (AWS) para implantar a WhatsApp Business API. O processo pode ser dividido em duas etapas principais:
Depois de concluir a configuração, você pode escolher atualizar o cliente. Se você precisar reiniciar o Webapp e o Coreapp, siga estas etapas.
Este documento mostra um novo modelo da AWS que foi testado para oferecer uma taxa de transferência de mensagens mais alta e estável. Para encontrar o modelo mais antigo da AWS, acesse AWS Archive.
Antes de começar, você precisará fazer o seguinte:
Você precisará configurar uma conta da AWS válida e estar habituado a trabalhar com a AWS. O WhatsApp fornece modelos do CloudFormation para implantar o cliente da WhatsApp Business API de forma fácil. Consulte o Centro de recursos de conceitos básicos da AWS para obter mais informações.
Você precisará criar um novo par de chaves para acessar a instância EC2 criada pelo modelo da WhatsApp Business API. Você também pode usar um par de chaves criado anteriormente. Consulte a documentação sobre os pares de chaves do Amazon EC2 para ver informações sobre como criar e usar pares de chaves com uma instância do EC2.
O par de chaves precisa ser criado usando a região em que a WhatsApp Business API será implantada.
O cliente da WhatsApp Business API utiliza uma imagem do CentOS 9 (disponível no AWS Marketplace). Os Termos e Condições devem ser analisados e aceitos antes de usar o modelo. Se os termos não forem aceitos, o modelo não poderá ser criado.
Para analisar e aceitar a imagem da AMI do CentOS 9:
Os modelos da WhatsApp Business API utilizam o tipo de recurso do EFS que não está disponível em todas as regiões da AWS. Assim, apenas as seguintes regiões são compatíveis atualmente:
Dependendo do teste inicial, o WhatsApp determinará se uma opção alternativa, disponível em todas as regiões, pode ser oferecida.
Não há suporte a KOPS. Não oferecemos compatibilidade com a solução da AWS baseada no ECS. Além disso, temos uma configuração geral do minikube do Kubernetes.
A rede VPC (Virtual Private Cloud, nuvem privada virtual) geralmente é criada quando você se cadastra em uma conta da AWS. Além disso, é possível que haja várias personalizações e restrições de controle de acesso necessárias que são específicas a um negócio corporativo.
Se a infraestrutura da rede VPC já estiver criada, você poderá pular esta etapa. Caso contrário, o modelo a seguir pode ser usado para criar a infraestrutura da rede na AWS.
O modelo de rede é fornecido somente para fins de referência. Você pode modificá-lo para atender a necessidades específicas.
Para implantar o modelo de rede:
Nome | Descrição |
---|---|
| Obrigatório. Nome da pilha a ser criada. |
Nome | Descrição |
---|---|
| Obrigatório. As zonas de disponibilidade (AZs) para a criação da VPC. |
| Obrigatório. O número de zonas de disponibilidade selecionadas. |
Nome | Descrição |
---|---|
| Obrigatório. O intervalo de endereços IP (CIDR) para a VPC. |
| Obrigatório. A locação da VPC |
Nome | Descrição |
---|---|
| Obrigatório. O intervalo de endereços IP (CIDR) para sub-redes públicas |
| Obrigatório. O intervalo de endereços IP (CIDR) para sub-redes públicas |
| Opcional. Obrigatório se o número de zonas de disponibilidade for maior que "2". |
| Opcional. Obrigatório se o número de zonas de disponibilidade for maior que "3". |
Nome | Descrição |
---|---|
| Obrigatório. Opções: |
| Condicional. Obrigatório se a criação da sub-rede privada for definida como |
| Condicional. Obrigatório se a criação da sub-rede privada for definida como |
| Condicional. Obrigatório se a criação da sub-rede privada for definida como |
| Condicional. Obrigatório se a criação da sub-rede privada for definida como |
Antes de implantar a pilha da WhatsApp Business API na AWS, carregue os arquivos de configuração das pilhas secundárias especificados em um bucket S3 ao qual você tem acesso de leitura.
O WhatsApp Enterprise é o principal modelo e cria todos os recursos (exceto a rede) necessários para o cliente da WhatsApp Business API. Como observado anteriormente, esse modelo também cria um recurso de banco de dados, se necessário.
Para implantar o cliente da WhatsApp Business API:
Nome | Descrição |
---|---|
| Obrigatório. O nome da pilha a ser criada. Deve ter até 22 caracteres. Observação: para implantações nas regiões ap-southeast-1, ap-southeast-2, ap-northeast-1 ou ap-northeast-2, o nome da pilha deve ter até 8 caracteres. Se o |
Nome | Descrição |
---|---|
| Opcional. Habilita o recurso de alta disponibilidade. Padrão: |
| Obrigatório. Número de mensagens que você quer enviar por segundo. Junto com a opção |
| Obrigatório. O tipo de mensagem dominante que você quer enviar e receber. Junto com a opção |
| Opcional. Instale o node-exporter em cada host do Coreapp para fazer o monitoramento de instâncias. Padrão: |
Nome | Descrição |
---|---|
| Obrigatório. O nome da pilha do CloudFormation de rede criada na etapa de configuração de rede. |
| Obrigatório. O número de sub-redes escolhidas No momento, só é possível usar 2 sub-redes na implantação para distribuir uniformemente as tarefas do ECS em todos os hosts. |
| Obrigatório. No momento, oferecemos apenas balanceadores de carga que usam a internet e ficam visíveis para o público. Modifique os grupos de segurança após a criação da pilha da API para impedir acessos desnecessários. |
Nome | Descrição |
---|---|
| Obrigatório. Selecione o par de chaves adequado para acessar a instância do EC2, se necessário. |
| Opcional. Isso serve para preparar a solução para o futuro e oferecer suporte a clientes experimentais da WhatsApp Business API. O valor padrão deverá ser válido para a maioria dos casos. |
| Obrigatório. É sempre recomendável usar a versão estável mais recente. Consulte o registro de alterações para obter a versão mais recente. A versão do cliente da WhatsApp Business API sempre começa com um "v", salvo indicação em contrário. O uso de uma versão incorreta causará uma falha na criação da pilha. |
| Obrigatório. Para cargas de trabalho de produção, é recomendável escolher 32 GB ou mais. |
Nome | Descrição |
---|---|
| Opcional. Permite armazenar informações de configuração no banco de dados. |
| Opcional. O nome de host do banco de dados existente. |
| Obrigatório. Nome do administrador para acessar o banco de dados. |
| Obrigatório. Senha do administrador para acessar o banco de dados. A senha do banco de dados não pode conter nenhum destes caracteres: ?{}&~!()^/"@ |
| Obrigatório. Número da porta para acessar o back-end do banco de dados. |
| Opcional. Indica se a conexão do banco de dados para contêineres da web deve ser persistente. Padrão: |
| Opcional. O tempo-limite em milissegundos para o banco de dados fechar as conexões ociosas. |
Nome | Descrição |
---|---|
| Opcional. Driver para registros do contêiner. |
| Opcional. Tamanho máximo de um arquivo de registro do contêiner em MB antes da rotação. Valores permitidos de 1 a 250 (inclusivos). Padrão: 50. |
| Opcional. Número máximo de arquivos de registro a serem mantidos por contêiner. Valores permitidos de 1 a 30 (inclusivos). Padrão: 7. |
| Opcional. Número de dias para o armazenamento dos registros no CloudWatch. Padrão: |
Nome | Descrição |
---|---|
| Não usado. Deixe este parâmetro em branco. |
Nome | Descrição |
---|---|
| Opcional. Por padrão, a chave de serviço da AWS (opção Chave padrão) é usada para criptografar dados DB & EFS em repouso. Outras opções são:
|
| Opcional. Você pode fornecer uma identificação de chave KMS que será usada para criptografar os dados. Deixe em branco se a opção Chave fornecida pelo usuário não estiver selecionada. |
| Opcional. Por padrão, os dados em trânsito para o banco de dados são criptografados. No momento, isso é aplicável somente para o Coreapp. A criptografia do Webapp ainda não é compatível. Além disso, com um novo mecanismo de banco de dados, mesmo que essa opção esteja desabilitada, o Coreapp realiza a criptografia, mas sem verificação de certificado de servidor (identidade). |
| Opcional. O valor padrão contém o pacote de certificados RDS. Se um banco de dados não RDS for usado, o pacote de certificados da CA apropriado poderá ser fornecido. Outra opção é deixar em branco. O valor padrão é adequado para habilitar a conexão segura com o banco de dados. |
| Opcional. O certificado do cliente para conexão do banco de dados |
| Opcional. A chave do cliente para conexão do banco de dados |
Estes parâmetros são necessários para que os painéis do Grafana obtenham métricas do app para fins de monitoramento.
Nome | Descrição |
---|---|
| Obrigatório. Especifica o nome de usuário da WhatsApp Business API. |
| Obrigatório. Especifica a senha para |
Nome | Descrição |
---|---|
| Obrigatório. Especifica a senha usada para fazer login no painel do Grafana quando a pilha é criada. |
| Opcional. Indica se o SMTP está habilitado para configurar alertas por email. Valores válidos: Padrão: |
| Opcional. O host SMTP usado em alertas por email. Por exemplo, smtp.gmail.com:465. |
| Opcional. Especifica o nome de usuário SMTP usado em alertas por email. |
| Opcional. Especifica a senha SMTP usada em alertas por email. |
Com a criação bem-sucedida do modelo, os seguintes parâmetros são exibidos:
Por padrão, as regras de segurança criadas pela pilha permitem que todo o tráfego alcance as instâncias do EC2 por meio do SSH, os pontos de extremidade da API e o painel do Grafana usando HTTPs, bem como os contêineres do cAdvisor e do Prometheus. Por motivos de segurança, remendamos impedir acessos desnecessários. Esta seção mostra um exemplo com as etapas de atualização da regra de segurança do SSH. Sempre restrinja o acesso ao SSH somente ao tráfego em que você confia.
"<stackName>-ms-xxx-EcsSecurityGroup"
e restrinja o acesso ao SSH para a pilha de monitoramento.
Depois que o cliente da WhatsApp Business API for implantado com sucesso, ele precisará ser configurado para entrar em operação.
Consulte o guia de número de telefone para obter mais informações detalhadas sobre o registro do número de telefone.
Baixe o certificado codificado em base64 da sua conta do WhatsApp no Gerenciador de Negócios do Facebook na aba Números de telefone do Gerenciador do WhatsApp.
Depois que você selecionar o número de telefone correto e tiver o certificado codificado em base64, será necessário registrar o cliente da WhatsApp Business API usando o nó account
. Leia a documentação sobre registro para saber mais.
Caso o número de telefone possa receber mensagens de texto, use o método SMS de recuperação de código de registro.
Se já tiver recebido o código de registro do WhatsApp, ignore esta etapa.
Depois de criar a pilha, use a chamada de API shards
para aumentar o número de instâncias ativas do Coreapp a fim de alcançar a taxa de transferência de dados desejada. É possível encontrar o número de fragmentos na seção Output da pilha.
A configuração de retornos de chamada da web da WhatsApp Business API e de outros parâmetros é descrita na documentação sobre configurações do app. Para alcançar uma taxa de transferência de dados estável, recomendamos usar as seguintes configurações do app.
{ "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" } }
Por padrão, o cliente da WhatsApp Business API gera um certificado autoassinado quando é criado. O certificado da autoridade de certificação (CA) usado para gerar o certificado autoassinado pode ser necessário para verificar o ponto de extremidade do cliente da WhatsApp Business API e evitar um alerta de confiabilidade.
Você pode baixar o certificado CA e armazená-lo localmente para evitar o aviso de confiança de certificado, ou carregar seu próprio certificado. Consulte a documentação do nó certificate
para obter mais informações.
Em implantações da AWS, o certificado SSL é criado com o nome do host do balanceador de carga. Se um endereço IP for usado para acesso em vez do nome de host, o aviso ainda será visto.
O WhatsApp oferecerá suporte à configuração de certificados SSL fornecidos pelo cliente em uma versão futura.
Depois que as etapas de configuração e registro forem concluídas com sucesso, uma mensagem poderá ser enviada e recebida para validar a funcionalidade básica do cliente da WhatsApp Business API. Veja o processo descrito em detalhes na documentação sobre mensagens.
Após o recebimento de uma mensagem, o cliente da WhatsApp Business API publicará (POST
) o status e os detalhes da mensagem no Webhook configurado na Etapa 3.
Se a mensagem for recebida com sucesso, parabéns, está tudo pronto! Consulte a documentação sobre referência para saber mais sobre os pontos de extremidade da API disponíveis.
Para reiniciar o cliente da WhatsApp Business API, acesse o console do ECS (por exemplo, https://us-west-2.console.aws.amazon.com/ecs/home?region=us-west-2#/clusters):
Isso interromperá o Webapp e o CoreApp. Logo depois, a infraestrutura da AWS reiniciará o Webapp e o CoreApp.
É esperado um tempo de inatividade de um ou dois minutos.
A atualização direta de uma pilha do CloudFormation pode resultar na destruição e na recriação do banco de dados. Recomendamos seguir as etapas manuais exibidas na próxima seção para atualizar o sistema e evitar a perda de dados.
Esta seção mostra como atualizar o cliente da WhatsApp Business API e o modelo do CloudFormation (CFN). Fazer uma atualização resultará em um tempo de inatividade. Por isso, não envie mensagens durante esse período. Só retome o envio de mensagens após a conclusão da atualização.
É possível atualizar o modelo do CFN e a versão do cliente da WhatsApp Business API ao mesmo tempo. Basta fazer o seguinte:
Verificação de atualização rápida: envie um SMS e confira se a resposta da API contém o número correto da versão (ou seja, a nova versão). Verifique também se a mensagem é recebida pelo destinatário.
É normal as empresas quererem configurar um ambiente com alta taxa de transferência de dados para uma campanha com tempo limitado e manter um ambiente de baixo custo em execução fora do período da campanha. Esta seção oferece sugestões sobre como escalar manualmente a configuração da AWS para reduzir os custos.
Importante: esteja ciente de que haverá um período de inatividade. O tempo de inatividade pode durar de 5 a 15 minutos. Siga todas as boas práticas de DevOps, como fazer backup das configurações do app e do banco de dados.
2
.c5.large
(opcional).
c5.large
. Depois, escolha Create template version.
r5.xlarge
.
3
.3
.2
.2
.2
.