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 o Amazon SQS
Criado por Nisha Gambhir (AWS)
Resumo
Este padrão descreve como migrar um aplicativo web ou de console do .NET Framework ou .NET Core usando a plataforma de mensagens de fila Microsoft Azure Service Bus para o Amazon Simple Queue Service (Amazon SQS).
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.
O Amazon SQS é um serviço de filas de mensagens totalmente gerenciado que facilita o desacoplamento e a escala de microsserviços, sistemas distribuídos e aplicativos com tecnologia sem servidor. O Amazon SQS elimina a complexidade e a sobrecarga associadas ao gerenciamento e à operação de middleware orientado a mensagens, além de permitir que os desenvolvedores se concentrem em outros trabalhos. Usando o Amazon SQS, 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 conta AWS ativa
Um aplicativo web ou de console do .NET Framework ou .NET Core que usa filas do Azure Service Bus (exemplo de código anexo)
Versões do produto
.NET Framework 3.5 ou superior ou .NET Core 1.0.1, 2.0.0 ou superior
Arquitetura
Pilha de tecnologia de origem
Um aplicativo web ou de console do .NET (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
Criar uma política de AWS Identity and Access Management (IAM) para o Amazon SQS:
1. Faça login no Console de Gerenciamento da AWS e abra o console do IAM 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 guia JSON e cole o código a seguir:
{ "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. Vincule a política recém-criada ao seu perfil do IAM ou crie um novo perfil.
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie uma política do IAM para o Amazon SQS. | Crie a política do IAM que fornecerá acesso ao Amazon SQS. Consulte a seção Código para obter um exemplo de política. | Engenheiro de sistemas |
Crie um perfil da AWS. | Crie um novo perfil executando as ferramentas da AWS 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 política do Amazon SQS que você criou anteriormente a esta conta. Guarde o ID de chave de acesso e a chave de acesso secreta da AWS. 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 |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Instalar 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 de aplicativos .NET na AWS. Para obter instruções de uso e instalação, consulte o link na seção Referências. | Desenvolvedor de aplicações |
Instale o AWSSDK pacote.SQS. NuGet | Você pode instalar AWSSDK o.SQS escolhendo “Manage NuGet Package” no Visual Studio ou executando o comando “ AWSSDKInstall-Package .SQS”. | Desenvolvedor de aplicações |
Crie um AWSCredentials objeto em seu aplicativo.NET. | O aplicativo de exemplo no anexo mostra como criar um AWSCredentials objeto básico, 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. | Desenvolvimento de aplicativos |
Crie um objeto cliente SQS. | Crie um objeto cliente SQS (AmazonSQSClient) para o.NET Framework. Isso faz parte do namespace Amazon.SQS. Esse objeto é necessário em vez do IQueue Client, que faz parte do Microsoft.Azure. ServiceBus namespace. | Desenvolvedor de aplicações |
Chame o SendMessageAsync método para enviar mensagens para a fila SQS. | 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 fila SQS. | 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 fila SQS. | Para excluir mensagens, altere o código do QueueClient. CompleteAsync método para amazonSqsClient o. DeleteMessageAsync método. Para obter detalhes, consulte o modelo de código anexo. | Desenvolvimento de aplicativos |
Recursos relacionados
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 o Amazon SQS. Este é um aplicativo de console que usa o .NET Core 2.2 e inclui exemplos para enviar e receber mensagens.
Observações:
QueueClient é um objeto do IQueue Client, que faz parte do Microsoft.Azure. ServiceBus namespace (incluído no Microsoft.Azure. ServiceBus NuGet pacote).
amazonSqsClient é um objeto da AmazonSQSClient, que faz parte do namespace Amazon.sqs (incluído no pacote .SQS). AWSSDK NuGet
Dependendo de onde o código está sendo executado, digamos, se está sendo executado EC2, a função precisa ter permissão para gravar na fila SQS.
Anexos
Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip