View a markdown version of this page

Esegui la migrazione di una coda di messaggistica da Microsoft Azure Service Bus ad Amazon SQS - Prontuario AWS

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

Nisha Gambhir, Amazon Web Services

Riepilogo

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

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

Stack di tecnologia 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)

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/.

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.

Poemi epici

OperazioneDescriptionCompetenze 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 il PowerShell comando AWS Tools for 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
OperazioneDescriptionCompetenze 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 AWSSDK.SQS NuGet pacchetto.

Puoi installare AWSSDK.SQS scegliendo « NuGet Manage Package» in Visual Studio o eseguendo il comando "Install-Package AWSSDK.SQS».

Sviluppatore di applicazioni
Crea un oggetto AWSCredentials nella tua applicazione.NET.

L'applicazione di esempio nell'allegato mostra come creare un oggetto BasicAWSCredentials, che eredita da AWSCredentials. È possibile utilizzare l'ID della chiave di accesso e la chiave di accesso segreta delle versioni precedenti 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. Questo fa parte del namespace. Amazon.SQS Questo oggetto è obbligatorio invece di IQueueClient, che fa parte del namespace. Microsoft.Azure.ServiceBus

Sviluppatore di applicazioni
Chiama il SendMessageAsync metodo per inviare messaggi alla coda SQS.

Modifica il codice che invia il messaggio alla coda per utilizzare il metodo amazon. SqsClient.SendMessageAsync Per i dettagli, consulta 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 metodo amazonSqsClient.ReceiveMessageAsync . Per i dettagli, consulta 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 metodo di coda al Client.CompleteAsync metodo amazon. SqsClient.DeleteMessageAsync Per i dettagli, consulta l'esempio di codice allegato.

Sviluppatore di applicazioni

Informazioni aggiuntive

Questo modello include due applicazioni di esempio (consulta la sezione allegati):

  • AzureSbTestAppinclude codice che usa la coda del bus di servizio di Azure.

  • AmazonSqsTestApputilizza 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 IQueueClient, che fa parte del Microsoft.Azure.ServiceBus namespace (incluso nel pacchetto). Microsoft.Azure.ServiceBus NuGet

  • amazon SqsClient è un oggetto di AmazonSQSClient, che fa parte del namespace (incluso nel pacchetto). Amazon.SQS AWSSDK.SQS NuGet

  • A seconda di dove viene eseguito il codice, ad esempio se è in esecuzione su EC2, il ruolo deve avere l'autorizzazione per scrivere nella coda SQS.

Allegati

Per accedere al contenuto aggiuntivo associato a questo documento, scarica e decomprimi il seguente file: attachment.zip