Migrar uma fila de mensagens do Microsoft Azure Service Bus para a Amazon SQS - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Migrar uma fila de mensagens do Microsoft Azure Service Bus para a Amazon SQS

Criado por Nisha Gambhir () AWS

Tipo R: redefinir a plataforma

Origem: Aplicativos usando filas do Azure Service Bus

Alvo: Amazon SQS

Criado por: AWS

Ambiente: PoC ou piloto

Tecnologias: aplicativos web e móveis; migração

Workload: Microsoft

AWSserviços: Amazon SQS

Resumo

Esse padrão descreve como migrar um. NETEstrutura ou. NETAplicativo principal da web ou de console, desde o uso da plataforma de mensagens de fila Microsoft Azure Service Bus até o Amazon Simple Queue Service (AmazonSQS).

Os aplicativos usam serviços de mensagens para enviar e receber dados de outros aplicativos. Esses serviços ajudam a criar microsserviços desacoplados e altamente escaláveis, sistemas distribuídos e aplicativos de tecnologia sem servidor na nuvem.

As filas do Azure Service Bus fazem parte de uma infraestrutura mais ampla de mensagens do Azure que oferece suporte ao enfileiramento e ao sistema de publicação e assinatura de mensagens. 

SQSA Amazon é um serviço de enfileiramento de mensagens totalmente gerenciado que permite separar e escalar microsserviços, sistemas distribuídos e aplicativos sem servidor. A Amazon SQS elimina a complexidade e a sobrecarga associadas ao gerenciamento e operação de middleware orientado a mensagens e permite que os desenvolvedores se concentrem em trabalhos diferenciados. Usando a AmazonSQS, você pode enviar, armazenar e receber mensagens entre componentes de software em qualquer volume, sem perder mensagens ou exigir que outros serviços estejam disponíveis.

Pré-requisitos e limitações

Pré-requisitos

  • Uma AWS conta ativa 

  • UMA. NETEstrutura ou. NETAplicativo principal da web ou de console que usa filas do Azure Service Bus (código de exemplo anexado)

Versões do produto

  • . NETFramework 3.5 ou posterior, ou. NETCore 1.0.1, 2.0.0 ou posterior

Arquitetura

Pilha de tecnologia de origem

  • UMA. NETAplicativo web ou de console (Core ou Framework) que usa uma fila do Azure Service Bus para enviar mensagens

Pilha de tecnologias de destino

  • Amazon SQS

Ferramentas

Ferramentas

  • Microsoft Visual Studio

Código

Para criar uma política de gerenciamento de AWS identidade e acesso (IAM) para a AmazonSQS:

1. Faça login no AWS Management Console e abra o IAM console em https://console.aws.amazon.com/iam/.

2. No painel de navegação à esquerda, escolha Policies (Políticas) e Create policy (Criar política).

3. Escolha a JSONguia e cole o seguinte código:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "sqs:DeleteMessage", "sqs:GetQueueUrl", "sqs:ChangeMessageVisibility", "sqs:SendMessageBatch", "sqs:ReceiveMessage", "sqs:SendMessage", "sqs:GetQueueAttributes", "sqs:ListQueueTags", "sqs:ListDeadLetterSourceQueues", "sqs:DeleteMessageBatch", "sqs:PurgeQueue", "sqs:DeleteQueue", "sqs:CreateQueue", "sqs:ChangeMessageVisibilityBatch", "sqs:SetQueueAttributes" ], "Resource": "arn:aws:sqs:*:<AccountId>:*" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": "sqs:ListQueues", "Resource": "*" } ] }

4. Escolha Revisar política, digite um nome e, em seguida, selecione Criar política.

5. Anexe a política recém-criada à sua IAM função existente ou crie uma nova função.

Épicos

TarefaDescriçãoHabilidades necessárias
Crie uma IAM política para a AmazonSQS.

Crie a IAM política que fornecerá acesso à AmazonSQS. Consulte a seção Código para obter um exemplo de política.

Engenheiro de sistemas
Crie um AWS perfil.

Crie um novo perfil executando as AWS Ferramentas para o PowerShell comando Set-AWSCredential. Isso armazena sua chave de acesso e a chave secreta no seu arquivo de credenciais padrão sob o nome de perfil que você especificar. Vincule a SQS política da Amazon que você criou anteriormente a essa conta. Mantenha o ID da chave de AWS acesso e a chave de acesso secreta. Eles serão necessários nas próximas etapas.

Engenheiro de sistemas
Crie uma fila do SQS.

Você pode criar uma fila padrão ou uma fila de primeiro a entrar, primeiro a sair (FIFO). Para obter instruções, consulte os links na seção Referências.

Engenheiro de sistemas
TarefaDescriçãoHabilidades necessárias
Instale o AWS Toolkit for Visual Studio.

Esse kit de ferramentas é uma extensão do Microsoft Visual Studio e facilita a criação e a implantação. NETaplicativos emAWS. Para obter instruções de uso e instalação, consulte o link na seção Referências.

Desenvolvedor de aplicações
Instale AWSSDK o. SQS NuGet pacote.

Você pode instalar AWSSDK. SQSescolhendo “Manage NuGet Package” no Visual Studio ou executando o comando “ AWSSDKInstall-Package”. SQS”.

Desenvolvedor de aplicações
Crie um AWSCredentials objeto no seu. NETaplicativo.

O aplicativo de exemplo no anexo mostra como criar um asicAWSCredentials objeto B, que herda de AWSCredentials. Você pode usar o ID da chave de acesso e a chave de acesso secreta anteriores ou permitir que o objeto escolha-os na pasta .aws como parte do perfil do usuário no runtime.

Desenvolvedor de aplicações
Crie um objeto SQS cliente.

Crie um objeto SQS cliente (AmazonSQSClient) para. NETEstrutura. Isso faz parte da Amazon. SQSnamespace. Esse objeto é obrigatório em vez deIQueueClient, que faz parte do Microsoft.Azure. ServiceBus namespace.

Desenvolvedor de aplicações
Chame o SendMessageAsync método para enviar mensagens para a SQS fila.

Altere o código que envia a mensagem para a fila para usar o. amazonSqsClient SendMessageAsync método. Para obter detalhes, consulte o modelo de código anexo.

Desenvolvimento de aplicativos
Chame o ReceiveMessageAsync método para receber mensagens da SQS fila.

Altere o código que recebe a mensagem para usar amazonSqsClient o. ReceiveMessageAsync método. Para obter detalhes, consulte o modelo de código anexo.

Desenvolvimento de aplicativos
Chame o DeleteMessageAsync método para excluir mensagens da SQS fila.

Para excluir mensagens, altere o código doqueueClient. CompleteAsync método para amazonSqsClient o. DeleteMessageAsync método. Para obter detalhes, consulte o modelo de código anexo.

Desenvolvimento de aplicativos

Mais informações

Este padrão inclui dois exemplos de aplicativos (consulte a seção de anexos):

  • AzureSbTestAppinclui código que usa a fila do Azure Service Bus.

  • AmazonSqsTestAppusa a AmazonSQS. Este é um aplicativo de console que usa. NETCore 2.2 e inclui exemplos para enviar e receber mensagens.

Observações:

  • queueClient é um objeto deIQueueClient, que faz parte do Microsoft.Azure. ServiceBus namespace (incluído no Microsoft.Azure. ServiceBus NuGet pacote).

  • amazonSqsClient é um objeto de AmazonSQSClient, que faz parte da Amazônia. SQSnamespace (incluído no. AWSSDK SQS NuGet pacote).

  • Dependendo de onde o código está sendo executado, digamos, se está sendo executadoEC2, a função precisa ter permissão para gravar na SQS fila.

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip