
Compartilhar:
Adam é um desenvolvedor e consultor que gosta de corridas de ultramaratona, escrever em blogs e gravar vlogs, além de ajudar outras pessoas a dominar a tecnologia para realizar coisas incríveis, movido por um desejo insaciável de orientar e ajudar.
Migração automatizada de mensagens do AWS SQS para o DynamoDB
Os aplicativos corporativos recebem um volume muito alto de notificações, o que pode causar graves problemas nos aplicativos. Em vez de sobrecarregar um aplicativo ou ter que aumentar e reduzir constantemente a capacidade de acordo com picos de uso, o uso de uma fila de mensagens como AWS SQS pode regular a carga. Ao adicionar mensagens à fila, o aplicativo pode processá-las de maneira mais oportuna e econômica.
Neste exemplo, você criará um microsserviço PHP sem servidor no AWS Lambda usando este aplicativo PHP disponível no GitHub que utiliza Brefe Serverless. A aplicação sem servidor migra mensagens do AWS SQS para o Amazon DynamoDBe, em seguida, exclui a mensagem do SQS após serem processadas.
Pré-requisitos
PHP 7.4 (atualização
serverless.ymlpara outras versões)O Composer está instalado globalmente
Node.js e npm
Instruções de configuração
Clone o nexmo-community/messaging-aws-sqs-dynamodb-php do GitHub e acesse o diretório recém-criado para continuar.
Use o Composer para instalar dependências
Este exemplo requer o uso do Composer para instalar dependências e configurar o carregador automático.
Supondo que você tenha o Composer instalado globalmente. https://getcomposer.org/doc/00-intro.md#globally
composer install Configuração da AWS
Você precisará criar credenciais da AWS conforme indicado por Serverless.
Além disso, crie uma nova fila SQS usando as configurações padrão. Anote o ARN para uso posterior.
Por fim, crie uma nova tabela no DynamoDB usando as configurações padrão. Anote o nome da tabela e o ARN para uso posterior.
Observação: Certifique-se de que o nome do campo da chave primária definido para a tabela do DynamoDB corresponda ao ID da mensagem nos itens da sua fila do SQS. Neste exemplo, usamos
messageId.
Atualizar o ambiente
Renomeie o config.yml.dist para config.yml e atualize os valores conforme necessário a partir de AWS e DynamoDB, e salve.
AWS_REGION: us-east-1
AWS_VERSION: latest
AWS_DYNAMODB_TABLE_NAME:
AWS_SQS_ARN:
AWS_DYNAMODB_TABLE_ARN: Implantar no Lambda
Com todas as atualizações acima concluídas com sucesso, agora você pode usar Serverless para implantar o aplicativo no AWS Lambda.
Invocar
Se já houver mensagens no SQS, você pode testar a migração dessas mensagens a partir de SQS para DynamoDB , chamando a função usando Serverless localmente:
Observação: O exemplo acima mostra o uso do nome da função
sqstodynamoconforme criado no padrãoserverless.ymlneste exemplo.
Para fazer testes, você pode adicionar mensagens SQS pelo AWS Console site, ou você pode dar uma olhada neste este repositório para ver um exemplo de como adicionar SQS mensagens por meio de uma HTTP POST solicitação contendo JSON.
Automatizar
Para automatizar o uso dessa função, você pode adicionar a função recém-criada Lambda como um gatilho do Lambda para sua SQS instância.
Ao adicionar o gatilho, garante-se que qualquer nova SQS mensagem chame a Lambda função para mover automaticamente a mensagem para DynamoDB, removendo, assim, a mensagem de SQS.
Contribuir
Se você tiver alguma dúvida ou encontrar algum problema, entre em contato com @VonageDev no Twitter ou fazer sua pergunta na Comunidade Vonage no Slack. Boa sorte.