

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
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs"></a>

*Nisha Gambhir, Amazon Web Services*

## Resumo
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-summary"></a>

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 a filas e mensagens. publish/subscribe  

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
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-prerequisites-and-limitations"></a>

**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
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-architecture"></a>

**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
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-tools"></a>

**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/](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
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-epics"></a>

### Configuração do Amazon SQS na AWS
<a name="set-up-amazon-sqs-in-aws"></a>


| Tarefa | Description | 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 | 

### Revise seu código do aplicativo .NET
<a name="revise-your-net-application-code"></a>


| Tarefa | Description | 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 aplicativos | 
| 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 aplicativos | 
| 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 aplicativos | 
| 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
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-related-resources"></a>
+ [Guia do desenvolvedor do AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html)
+ [Envio de mensagens usando o Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sqs-apis-intro.html)
+ [Criação e uso de uma fila do Amazon SQS com o AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/how-to-sqs.html)
+ [Enviar uma mensagem do Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/SendMessage.html)
+ [Receber uma mensagem de uma fila do Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/ReceiveMessage.html)
+ [Excluir uma mensagem de uma fila do Amazon SQS Queue](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/DeleteMessage.html)
+ [AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/welcome.html)

## Mais informações
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-additional-information"></a>

Este padrão inclui dois exemplos de aplicativos (consulte a seção de anexos):
+ **AzureSbTestApp**inclui código que usa a fila do Azure Service Bus.
+ **AmazonSqsTestApp**usa 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 ele está sendo executado EC2, a função precisa ter permissão para gravar na fila SQS.

## Anexos
<a name="attachments-25334709-7000-4f60-87ed-ea41acb41a99"></a>

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo:[ attachment.zip](samples/p-attach/25334709-7000-4f60-87ed-ea41acb41a99/attachments/attachment.zip)