

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esegui la migrazione di una coda di messaggistica da Microsoft Azure Service Bus ad Amazon SQS
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs"></a>

*Nisha Gambhir, Amazon Web Services*

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

Questo modello descrive come migrare un'applicazione web.NET Framework o.NET Core o console dall'uso della piattaforma di messaggistica in coda Microsoft Azure Service Bus ad Amazon Simple Queue Service (Amazon SQS).

Le applicazioni utilizzano i servizi di messaggistica per inviare e ricevere dati da altre applicazioni. Questi servizi aiutano a creare microservizi, sistemi distribuiti e applicazioni serverless disaccoppiati e altamente scalabili nel cloud.

Le code dei bus di servizio di Azure fanno parte di un'infrastruttura di messaggistica di Azure più ampia che supporta l'accodamento e la messaggistica. publish/subscribe  

Amazon SQS è un servizio di accodamento dei messaggi completamente gestito che consente di disaccoppiare e scalare microservizi, sistemi distribuiti e applicazioni serverless. Amazon SQS elimina la complessità e il sovraccarico associati alla gestione e al funzionamento del middleware orientato ai messaggi e consente agli sviluppatori di concentrarsi sulla differenziazione del lavoro. Con Amazon SQS, puoi inviare, archiviare e ricevere messaggi tra componenti software a qualsiasi volume, senza perdere messaggi o richiedere la disponibilità di altri servizi.

## Prerequisiti e limitazioni
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-prerequisites-and-limitations"></a>

**Prerequisiti**
+ Un account AWS attivo 
+ Un'applicazione web o console DI.NET Framework o .NET Core che usa le code dei bus di servizio di Azure (codice di esempio allegato)

**Versioni del prodotto**
+ .NET Framework 3.5 o versione successiva oppure .NET Core 1.0.1, 2.0.0 o versione successiva

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

**Stack tecnologico di origine**
+ Un'applicazione web.NET (Core o Framework) o console che usa una coda del bus di servizio di Azure per inviare messaggi

 

**Stack tecnologico Target**
+ Amazon SQS

## Tools (Strumenti)
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-tools"></a>

**Strumenti**
+ Microsoft Visual Studio

**Codice**

Per creare una policy di AWS Identity and Access management (IAM) per Amazon SQS:

1. Accedi alla Console di gestione AWS, quindi apri la console di IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

2. Nel pannello di navigazione sulla sinistra, selezionare **Policies** (Policy) e fare clic su **Create Policy** (Crea policy).

3. Scegli la scheda **JSON** e incolla il seguente codice:

```
{
   "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. Scegli **Review policy**, digita un nome, quindi scegli **Crea policy**.

5. Collega la policy appena creata al tuo ruolo IAM esistente o crea un nuovo ruolo.

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

### Configurare Amazon SQS in AWS
<a name="set-up-amazon-sqs-in-aws"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Crea una policy IAM per Amazon SQS. | Crea la policy IAM che fornirà l'accesso ad Amazon SQS. Consulta la sezione Codice per un esempio di policy. | Ingegnere di sistema | 
| Crea un profilo AWS. | Crea un nuovo profilo eseguendo AWS Tools for PowerShell command Set-AWSCredential. Questo comando memorizza la chiave di accesso e la chiave segreta nel file di credenziali predefinito sotto il nome del profilo specificato. Collega la policy Amazon SQS che hai creato in precedenza a questo account. Conserva l'ID della chiave di accesso AWS e la chiave di accesso segreta. Questi saranno necessari nei passaggi successivi. | Ingegnere di sistema | 
| Crea una coda SQS. | È possibile creare una coda standard o una coda FIFO (First In-First Out). Per istruzioni, consulta il link nella sezione Riferimenti. | Ingegnere di sistema | 

### Modifica il codice dell'applicazione.NET
<a name="revise-your-net-application-code"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Installa AWS Toolkit per Visual Studio. | Questo toolkit è un'estensione per Microsoft Visual Studio e semplifica la creazione e la distribuzione di applicazioni.NET in AWS. Per istruzioni di installazione e utilizzo, consulta il link nella sezione Riferimenti. | Sviluppatore di applicazioni | 
| Installa il pacchetto AWSSDK .SQS. NuGet  | Puoi installare AWSSDK .SQS scegliendo «Manage NuGet Package» in Visual Studio o eseguendo il comando « AWSSDKInstall-Package .SQS». | Sviluppatore di applicazioni | 
| Crea un AWSCredentials oggetto nella tua applicazione.NET. | L'applicazione di esempio nell'allegato mostra come creare un AWSCredentials oggetto Basic, che eredita da AWSCredentials. È possibile utilizzare l'ID della chiave di accesso e la chiave di accesso segreta utilizzati in precedenza oppure lasciare che l'oggetto li scelga dalla cartella.aws come parte del profilo utente in fase di esecuzione. | Sviluppatore di applicazioni | 
| Crea un oggetto client SQS. | Crea un oggetto client SQS (AmazonSQSClient) per.NET Framework. Fa parte dello spazio dei nomi Amazon.sqs. Questo oggetto è richiesto al posto di IQueue Client, che fa parte di Microsoft.Azure. ServiceBus spazio dei nomi. | Sviluppatore di applicazioni | 
| Chiama il SendMessageAsync metodo per inviare messaggi alla coda SQS. | Cambia il codice che invia il messaggio alla coda per utilizzare il. amazonSqsClient SendMessageAsync metodo. Per i dettagli, consultate l'esempio di codice allegato. | Sviluppatore di applicazioni | 
| Chiama il ReceiveMessageAsync metodo per ricevere messaggi dalla coda SQS. | Cambia il codice che riceve il messaggio per utilizzare il. amazonSqsClient ReceiveMessageAsync metodo. Per i dettagli, consultate l'esempio di codice allegato. | Sviluppatore di applicazioni | 
| Chiama il DeleteMessageAsync metodo per eliminare i messaggi dalla coda SQS. | Per eliminare i messaggi, modifica il codice dal QueueClient. CompleteAsync metodo per. amazonSqsClient DeleteMessageAsync metodo. Per i dettagli, consultate l'esempio di codice allegato. | Sviluppatore di applicazioni | 

## Risorse correlate
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-related-resources"></a>
+ [Guida per gli sviluppatori dell'SDK AWS per .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/welcome.html)
+ [Messaggistica tramite Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/sqs-apis-intro.html)
+ [Creazione e utilizzo di una coda Amazon SQS con l'SDK AWS per.NET](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/how-to-sqs.html)
+ [Inviare un messaggio Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/SendMessage.html)
+ [Ricevi un messaggio da una coda Amazon SQS](https://docs.aws.amazon.com/sdk-for-net/v2/developer-guide/ReceiveMessage.html)
+ [Eliminazione di un messaggio da una coda Amazon SQS](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)

## Informazioni aggiuntive
<a name="migrate-a-messaging-queue-from-microsoft-azure-service-bus-to-amazon-sqs-additional-information"></a>

Questo modello include due applicazioni di esempio (consulta la sezione allegati):
+ **AzureSbTestApp**include codice che usa la coda del bus di servizio di Azure.
+ **AmazonSqsTestApp**utilizza Amazon SQS. Si tratta di un'applicazione console che utilizza.NET Core 2.2 e include esempi per l'invio e la ricezione di messaggi.

Note:
+ QueueClient è un oggetto di IQueue Client, che fa parte di Microsoft.Azure. ServiceBus namespace (incluso in Microsoft.Azure). ServiceBus NuGet pacchetto).
+ amazonSqsClient è un oggetto di AmazonSQSClient, che fa parte dello spazio dei nomi Amazon.sqs (incluso nel pacchetto.SQS). AWSSDK NuGet 
+ A seconda di dove è in esecuzione il codice, ad esempio se è in esecuzione EC2, il ruolo deve avere l'autorizzazione per scrivere nella coda SQS.

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

[Per accedere al contenuto aggiuntivo associato a questo documento, decomprimi il seguente file: attachment.zip](samples/p-attach/25334709-7000-4f60-87ed-ea41acb41a99/attachments/attachment.zip)