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.

Implantação com a Amazon Web Services (AWS)

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:

  1. Implantação do cliente da WhatsApp Business API
  2. Configuração do cliente da WhatsApp Business API

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.

Primeiros passos

Antes de começar, você precisará fazer o seguinte:

Configurar uma identificação da conta da AWS

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.

Criar um par de chaves da AWS

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.

Assinar uma imagem do CentOS 9

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:

  1. Acesse a página AWS Marketplace: CentOS 9 (x86_64) - with Updates HVM.
  2. Clique em Continue to Subscribe no canto superior direito e depois clique no botão Accept Terms.

Regiões com suporte

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:

  • Virgínia do Norte (us-east-1)
  • Ohio (us-east-2)
  • Norte da Califórnia (us-west-1)
  • Oregon (us-west-2)
  • Mumbai (ap-south-1)
  • Seul (ap-northeast-2)
  • Singapura (ap-southeast-1)
  • Sydney (ap-southeast-2)
  • Tóquio (ap-northeast-1)
  • Frankfurt (eu-central-1)
  • Irlanda (eu-west-1)

Dependendo do teste inicial, o WhatsApp determinará se uma opção alternativa, disponível em todas as regiões, pode ser oferecida.

Perguntas frequentes

Implantação

Etapa 1: configuração da rede [opcional]

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.

Requisitos da rede

  • Deve haver pelo menos duas sub-redes em diferentes zonas de disponibilidade dentro da região. Caso contrário, ocorrerá um erro na criação do modelo ao gerar o recurso RDS (banco de dados).
  • Ela deve permitir acesso de entrada a HTTP (porta: 80), HTTPS (porta: 443) e SSH (porta: 22). Por motivos de segurança, recomendamos que você use HTTPS e evite HTTP.

Para implantar o modelo de rede:

  1. Acesse o console do CloudFormation da sua região (por exemplo, eu-west-1).
  2. Selecione Create a stack.
  3. Baixe o arquivo wa_ent_net.yml do GitHub e salve na sua máquina.
  4. Escolha Upload a template file como a fonte do modelo e carregue o arquivo de modelo baixado na etapa 3.
    Criar pilha
  5. Clique em Next.
  6. Na tela Specify stack details, insira os valores dos parâmetros de acordo com a tabela abaixo:

Parâmetros

NomeDescrição

Stack name

Obrigatório.

Nome da pilha a ser criada.

Configuração das zonas de disponibilidade

NomeDescrição

Availability zones

Obrigatório.

As zonas de disponibilidade (AZs) para a criação da VPC.
O modelo requer a seleção de no mínimo 2 AZs. Para um ambiente de produção, é recomendável selecionar pelo menos 3 AZs.

Number of availability zones

Obrigatório.

O número de zonas de disponibilidade selecionadas.

Configuração da VPC

NomeDescrição

IP address range

Obrigatório.

O intervalo de endereços IP (CIDR) para a VPC.

Tenancy

Obrigatório.

A locação da VPC
Opções: default, dedicated

Configuração da sub-rede pública

NomeDescrição

IP range - subnet #1

Obrigatório.

O intervalo de endereços IP (CIDR) para sub-redes públicas

IP range - subnet #2

Obrigatório.

O intervalo de endereços IP (CIDR) para sub-redes públicas

IP range - subnet #3

Opcional.

Obrigatório se o número de zonas de disponibilidade for maior que "2".

IP range - subnet #4

Opcional.

Obrigatório se o número de zonas de disponibilidade for maior que "3".

Configuração da sub-rede privada

NomeDescrição

Create private subnets?

Obrigatório.

Opções: true (padrão), false
Se uma sub-rede privada não for necessária por algum motivo, este sinalizador poderá ser definido como false.

IP range - subnet #1

Condicional.

Obrigatório se a criação da sub-rede privada for definida como true.

IP range - subnet #2

Condicional.

Obrigatório se a criação da sub-rede privada for definida como true.

IP range - subnet #3

Condicional.

Obrigatório se a criação da sub-rede privada for definida como true, e o número de AZs for maior que "2".

IP range - subnet #4

Condicional.

Obrigatório se a criação da sub-rede privada for definida como true, e o número de AZs for maior que "3".

Etapa 2: carregamento dos arquivos de configuração da pilha de monitoramento e do banco de dados

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.

  1. Crie um novo bucket S3 ou use um existente ao qual você tem acesso de leitura.
  2. Baixe os arquivos wa_ent_db.yml e wa_ent_monitoring.yml no GitHub e carregue ambos no bucket S3 mencionado na etapa 1.
  3. Escolha o arquivo wa_ent_db.yml na lista Objects e copie o URL. O arquivo deve estar no formato https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_db.yml.
  4. Em wa_ent.yml, substitua o valor de TemplateURL em dbStack pelo URL do objeto da etapa 3 e salve o arquivo.
  5. Escolha o arquivo wa_ent_monitoring.yml na lista Objects e copie o URL. O arquivo deve estar no formato https://xxx.s3.<avalability_zone>.amazonaws.com/wa_ent_monitoring.yml.
  6. Em wa_ent.yml, substitua o valor de TemplateURL na pilha de monitoramento pelo URL do objeto da etapa 5 e salve o arquivo.
Carregar no bucket S3

Etapa 3: implantação da WhatsApp Business API

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:

  1. Acesse o console do CloudFormation da sua região (por exemplo, eu-west-1).
  2. Selecione Create a stack.
  3. Baixe o arquivo wa_ent.yml do GitHub e salve na sua máquina.
  4. Escolha Upload a template file como a fonte do modelo e carregue o arquivo de modelo baixado na etapa 3.
    Criar pilha
  5. Clique em Next.
  6. Logo depois, você poderá inserir parâmetros. Consulte a tabela abaixo para ver as descrições dos parâmetros.
  7. Após definir todos os parâmetros (nas tabelas abaixo), clique em Next na página Configure stack options. Com base nas suas preferências, faça as alterações necessárias e clique em Next.
  8. Na página Review stack, você verá um resumo dos valores de parâmetro e opções de pilha. Depois da verificação, acesse a seção Capabilities, marque as duas caixas e clique em Submit para começar a criar a pilha.
    Observação: a implantação leva de 20 a 30 minutos para ser concluída.

Parâmetros

NomeDescrição

Stack name

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 stack name for maior que esses requisitos, a criação da pilha será bloqueada e resultará em falhas, já que não será possível criar o certificado SSL.

Configuração geral

NomeDescrição

High Availability

Opcional.

Habilita o recurso de alta disponibilidade.


Padrão:enabled

Desired Throughput

Obrigatório.

Número de mensagens que você quer enviar por segundo.


Junto com a opção Type of Message, os recursos de servidor e banco de dados serão selecionados e configurados automaticamente para gerar a taxa de transferência desejada ao enviar o tipo de mensagem especificado.

Type of Message

Obrigatório.

O tipo de mensagem dominante que você quer enviar e receber.


Junto com a opção Desired Throughput, os recursos de servidor e banco de dados serão selecionados e configurados automaticamente para gerar a taxa de transferência desejada ao enviar o tipo de mensagem especificado.

Host exporter for instance monitoring

Opcional.

Instale o node-exporter em cada host do Coreapp para fazer o monitoramento de instâncias.


Padrão:enabled

Configuração de rede

NomeDescrição

Network Stack Name

Obrigatório.

O nome da pilha do CloudFormation de rede criada na etapa de configuração de rede.

Number of subnets

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.

Load balancer scheme

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.

Configuração do contêiner

NomeDescrição

Keypair to use

Obrigatório.

Selecione o par de chaves adequado para acessar a instância do EC2, se necessário.

WA Enterprise container registry

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.

WA Enterprise Client version

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.
Formato: v2.yy.xx

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.

EBS volume size

Obrigatório.

Para cargas de trabalho de produção, é recomendável escolher 32 GB ou mais.

Configuração do banco de dados

NomeDescrição

Store configuration in DB

Opcional.

Permite armazenar informações de configuração no banco de dados.
Opções: true (padrão), false
Definir o valor como false desabilita o armazenamento das informações de configuração no banco de dados e as armazena em arquivos.

Existing DB hostname

Opcional.

O nome de host do banco de dados existente.
Caso você já tenha uma instância de banco de dados MySQL dedicada para o cliente da WhatsApp Business API, insira o nome do host aqui.
Se este campo ficar em branco, uma nova instância Amazon Aurora será criada. Para alcançar uma taxa de transferência de dados alta e estável, recomendamos criar um novo banco de dados Aurora ou usar um criado anteriormente por este modelo.

Administrator name

Obrigatório.

Nome do administrador para acessar o banco de dados.

Administrator password

Obrigatório.

Senha do administrador para acessar o banco de dados.

A senha do banco de dados não pode conter nenhum destes caracteres: ?{}&~!()^/"@

Server port

Obrigatório.

Número da porta para acessar o back-end do banco de dados.

Persist DB Connection

Opcional.

Indica se a conexão do banco de dados para contêineres da web deve ser persistente.


Padrão:enabled

DB Idle Connection Timeout

Opcional.

O tempo-limite em milissegundos para o banco de dados fechar as conexões ociosas.
Padrão: 180.000 ms.

Configuração de registro

NomeDescrição

Logging driver for container logs

Opcional.

Driver para registros do contêiner.
Opções: json-file, awslogs (padrão)
. O valor json-file armazena os registros em hosts EC2. Já o valor awslogs transmite todos os registros do contêiner para o CloudWatch.

Maximum container log file size

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.

Maximum number of container log files

Opcional.

Número máximo de arquivos de registro a serem mantidos por contêiner.
Os contêineres interrompidos serão removidos do host. Nesses casos, todos os arquivos de registro mantidos para esse contêiner serão excluídos.

Valores permitidos de 1 a 30 (inclusivos). Padrão: 7.

Days to retain CloudWatch logs

Opcional.

Número de dias para o armazenamento dos registros no CloudWatch.
Selecione um dos valores disponíveis na lista.

Padrão: 7.

Configuração do sistema de arquivos

NomeDescrição

File system identifier

Não usado.

Deixe este parâmetro em branco.

Configuração de segurança

NomeDescrição

Key to encrypt DB & EFS

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:

  • Não criptografada: dados em repouso não são criptografados.
  • Criar nova chave: uma nova chave KMS é criada e usada para criptografar os dados.
  • Chave fornecida pelo usuário: o usuário pode fornecer uma identificação de chave KMS que será usada para criptografar os dados. Deixe em branco caso outra opção esteja selecionada.

User provided key id

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.

DB connection encryption

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).

CA certificate for DB connection

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.

Client certificate for DB connection

Opcional.

O certificado do cliente para conexão do banco de dados

Client key for DB connection

Opcional.

A chave do cliente para conexão do banco de dados

Ponto de acesso da WhatsApp Business API

Estes parâmetros são necessários para que os painéis do Grafana obtenham métricas do app para fins de monitoramento.

NomeDescrição

WAWebUsername

Obrigatório.

Especifica o nome de usuário da WhatsApp Business API.

WAWebPassword

Obrigatório.

Especifica a senha para WAWebUsername. Essa será a nova senha após a alteração da senha padrão no primeiro login.

Grafana

NomeDescrição

GrafanaAdminPassword

Obrigatório.

Especifica a senha usada para fazer login no painel do Grafana quando a pilha é criada.

GrafanaEnableSmtp

Opcional.

Indica se o SMTP está habilitado para configurar alertas por email. Valores válidos: 0 para desabilitado e 1 para habilitado.

Padrão: 0 (desabilitado)

GrafanaSmtpHost

Opcional.

O host SMTP usado em alertas por email. Por exemplo, smtp.gmail.com:465.

GrafanaSmtpUser

Opcional.

Especifica o nome de usuário SMTP usado em alertas por email.

GrafanaSmtpPassword

Opcional.

Especifica a senha SMTP usada em alertas por email.

Resultado após implantação

Com a criação bem-sucedida do modelo, os seguintes parâmetros são exibidos:

  • Nome do balanceador de carga: o nome de host do balanceador de carga que acessa o cliente da API da Plataforma do WhatsApp Business
  • Nome de host do banco de dados: o nome de host do banco de dados que é criado ou fornecido durante a criação do modelo
  • Número da porta do banco de dados: o número da porta da conexão do banco de dados
  • Nome do cluster ECS: nome do cluster ECS criado
  • Dias para retenção de registros: número de dias para reter os registros
  • Autoridade de certificação da conexão do banco de dados: valor da autoridade de certificação da conexão do banco de dados (se configurada)
  • Certificado da conexão do banco de dados: valor do certificado da conexão do banco de dados (se configurado)
  • Chave da conexão do banco de dados: valor da chave de conexão do banco de dados (se configurada)
  • Grafana: URL do painel do Grafana
  • ShardCount: número de fragmentos a serem configurados para a API da Plataforma do WhatsApp Business

Editar regras de segurança do SSH

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.

  1. No console do EC2 - Security Groups (por exemplo, EC2 Management Console (amazon.com)):
    1. Selecione a região correta no canto superior direito.
    2. Selecione o grupo de segurança que contém <stackName>-EcsSecurityGroup. Depois, mude para a aba Inbound Rules.
      Editar regras de entrada
    3. Selecione Edit inbound rules e atualize a coluna Source a fim de permitir que apenas o tráfego confiável (por exemplo: Meu IP) acesse hosts EC2 por meio do SSH.
    4. Depois de ajustar todas as regras de segurança, clique em Save rules para aplicar as alterações.
    5. Repita as alterações no grupo de segurança que contém "<stackName>-ms-xxx-EcsSecurityGroup" e restrinja o acesso ao SSH para a pilha de monitoramento.

Configuração do cliente da WhatsApp Business API

Depois que o cliente da WhatsApp Business API for implantado com sucesso, ele precisará ser configurado para entrar em operação.

Etapa 1: registro do telefone

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.

Etapa 2: definir fragmentos

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.

Etapa 3: atualizar as configurações do app

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

      
      
    

Etapa 4 (opcional): configuração SSL

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.

Etapa 5: validação da configuração

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.

Reinicialização do Coreapp e Webapp

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):

  1. Selecione a região correta no canto superior direito.
  2. Selecione na lista o cluster apropriado.
  3. Na aba Services, selecione o nome do serviço que contém WAEntService.
  4. Selecione a aba Tasks. Normalmente, deverá haver somente uma tarefa com uma identificação composta por dígitos hexadecimais.
  5. Na janela Tasks, clique Stop no canto superior direito. Depois, clique em Stop novamente quando solicitado.

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.

Atualização

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:

  1. Na Etapa 5 das instruções sobre como atualizar o cliente da WhatsApp Business API, em vez de escolher a opção Use current template, selecione Replace current template.
  2. Na seção Specify template section, escolha Upload a template file e selecione o arquivo de modelo mais recente baixado do GitHub.

Atualizar o cliente da WhatsApp Business API

  1. Acesse o console do CFN (por exemplo, https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Selecione a região correta no canto superior direito.
  3. Selecione a pilha do cliente da WhatsApp Business API que já foi criada.
  4. Clique em Update.
  5. Na página Prerequisite - Prepare template, selecione a opção Replace current template. Na seção Specify template, escolha Upload a template file e selecione o arquivo de modelo mais recente baixado do GitHub. Clique em Next.
  6. Na página Specify stack details, altere a versão do cliente da WhatsApp Business API (contêiner) para a opção desejada. NÃO ALTERE nenhum outro parâmetro. Clique em Next.
  7. Na página Configure stack options, clique em Next.
  8. Na página Review, selecione "I acknowledge that AWS CloudFormation might create IAM resources with custom names". Leia a seção Change set preview para verificar se há alguma alteração inesperada. Se for o caso ou você tiver dúvidas, entre em contato com o Suporte Direto do WhatsApp. Clique em Update stack. O status de atualização da pilha será rastreado no console do CFN e mudará de UPDATE_IN_PROGRESS para UPDATE_COMPLETE quando o processo for concluído.

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.

Atualizar o modelo do CFN do WhatsApp

  1. Acesse o console do CFN (por exemplo, https://us-west-2.console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks?filter=active).
  2. Selecione a região correta no canto superior direito.
  3. Selecione a pilha do cliente da WhatsApp Business API que já foi criada.
  4. Clique em Update.
  5. Na página Prerequisite - Prepare template, selecione a opção Replace current template. Na seção Specify template, escolha Upload a template file e selecione o arquivo de modelo mais recente baixado do GitHub. Clique em Next.
  6. Na página Specify Stack Details, insira os parâmetros apropriados de acordo com as informações exibidas nas seções anteriores. Clique em Next.
  7. Na página Configure Stack Options, clique em Next.
  8. Na página Review, selecione "I acknowledge that AWS CloudFormation might create IAM resources with custom names". Leia a seção Change set preview para verificar se há alguma alteração inesperada. Se for o caso ou você tiver dúvidas, entre em contato com o Suporte Direto do WhatsApp. Clique em Update stack. O status de atualização da pilha será rastreado no console do CFN e mudará de UPDATE_IN_PROGRESS para UPDATE_COMPLETE quando o processo for concluído.

Como reduzir manualmente o custo quando o sistema está ocioso (opcional)

É 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.

  1. No console do ECS (por exemplo, Amazon ECS:)
    1. Selecione a região correta no canto superior direito.
    2. Selecione na lista o cluster apropriado.
    3. Na aba Services, selecione o nome do serviço que contém WAEntCoreappService. Escolha Edit Service e atualize o valor de "Desired tasks" para "0".
      Configuração da implantação
    4. Repita a etapa "c" para todos os outros serviços, incluindo WAEntWebService, WAEntMasterService e HostExporterService.
    5. Volte para a página do cluster, na aba Tasks, e confira se não há tarefas em execução dos serviços acima.
  2. No console do EC2 - Auto Scaling Groups (por exemplo, Auto Scaling groups | EC2 Management Console (amazon.com)):
    1. Selecione a região correta no canto superior direito.
    2. Selecione o grupo de escala automática da pilha com HAECSAutoScalingGroup no nome e escolha Edit. Atualize as opções "Desired capacity" e "Minimum capacity" para 3.
      Tamanho do grupo
    3. Selecione o grupo de escala automática da pilha com HAECSAutoScalingGroupWeb no nome e escolha Edit. Atualize as opções "Desired capacity" e "Minimum capacity" para 2.
  3. Se o valor inicial de "Type of message" for algum dos tipos de imagem, será possível substituir os tipos de instância do EC2 pela opção mais barata de c5.large (opcional).
    1. No console do EC2 - Launch Templates, selecione na lista o modelo de inicialização apropriado.
    2. Selecione Actions - Modify template (create new version).
      Console Launch Templates
    3. Na seção Instance type, atualize o tipo de instância para c5.large. Depois, escolha Create template version.
      Tipo de instância
    4. No console do EC2 - Auto Scaling Groups, selecione o grupo de escala automática da pilha com HAECSAutoScalingGroup no nome.
    5. Na seção Launch template, selecione Edit.
    6. Selecione o novo modelo de inicialização criado na etapa "3c" e escolha Update.
      Modelo de inicialização
  4. No console do RDS (por exemplo, RDS Management Console (amazon.com)):
    1. Selecione a região correta no canto superior direito.
    2. Selecione o banco de dados Aurora apropriado na lista.
    3. Selecione Modify e atualize a classe da instância do banco de dados para r5.xlarge.
      Configuração da instância
  5. No console do ECS (por exemplo, Amazon ECS):
    1. Selecione a região correta no canto superior direito.
    2. Selecione na lista o cluster apropriado.
    3. Na aba Services, selecione o nome do serviço que contém WAEntCoreappService. Escolha Edit Service e atualize o valor de Desired tasks para 3.
    4. Na aba Services, selecione o nome do serviço que contém HostExporterService. Escolha Edit Service e atualize o valor de "Desired tasks" para 3.
    5. Na aba Services, selecione o nome do serviço que contém WAEntWebService. Escolha Edit Service e atualize o valor de "Desired tasks" para 2.
    6. Na aba Services, selecione o nome do serviço que contém WAEntMasterService. Escolha Edit Service e atualize o valor de "Desired tasks" para 2.
  6. Aguarde até que todos os serviços iniciem o número desejado de tarefas. Quando todas as tarefas estiverem em execução, use Set Shards API para redefinir os fragmentos como 2.
  7. Valide a integridade do sistema com a API de Integridade. Também é possível enviar e receber uma mensagem para validar a funcionalidade básica do cliente da WhatsApp Business API. Veja o processo descrito em detalhes na documentação sobre mensagens.