Memigrasikan antrian pesan dari Microsoft Azure Service Bus ke Amazon SQS - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memigrasikan antrian pesan dari Microsoft Azure Service Bus ke Amazon SQS

Nisha Gambhir, Amazon Web Services

Ringkasan

Pola ini menjelaskan cara memigrasikan aplikasi web atau konsol .NET Framework atau .NET Core dari menggunakan platform pesan antrian Microsoft Azure Service Bus ke Amazon Simple Queue Service (Amazon SQS).

Aplikasi menggunakan layanan pesan untuk mengirim data ke, dan menerima data dari, aplikasi lain. Layanan ini membantu membangun layanan mikro terpisah, sangat skalabel, sistem terdistribusi, dan aplikasi tanpa server di cloud.

Antrian Azure Service Bus adalah bagian dari infrastruktur pesan Azure yang lebih luas yang mendukung antrian dan pengiriman pesan. publish/subscribe  

Amazon SQS adalah layanan antrian pesan yang dikelola sepenuhnya yang memungkinkan Anda memisahkan dan menskalakan layanan mikro, sistem terdistribusi, dan aplikasi tanpa server. Amazon SQS menghilangkan kompleksitas dan overhead yang terkait dengan pengelolaan dan pengoperasian middleware yang berorientasi pesan, dan memungkinkan pengembang untuk fokus pada membedakan pekerjaan. Menggunakan Amazon SQS, Anda dapat mengirim, menyimpan, dan menerima pesan antar komponen perangkat lunak pada volume berapa pun, tanpa kehilangan pesan atau mengharuskan layanan lain tersedia.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif 

  • Aplikasi web atau konsol .NET Framework atau .NET Core yang menggunakan antrian Azure Service Bus (kode contoh terlampir)

Versi produk

  • .NET Framework 3.5 atau yang lebih baru, atau.NET Core 1.0.1, 2.0.0, atau yang lebih baru

Arsitektur

Tumpukan teknologi sumber

  • Aplikasi web atau konsol .NET (Core atau Framework) yang menggunakan antrian Azure Service Bus untuk mengirim pesan

Tumpukan teknologi target

  • Amazon SQS

Alat

Alat

  • Microsoft Visual Studio

Kode

Untuk membuat kebijakan AWS Identity and Access management (IAM) untuk Amazon SQS:

1. Masuk ke AWS Management Console dan buka konsol IAM di https://console.aws.amazon.com/iam/.

2. Pada panel navigasi yang ada di sebelah kiri, pilih Kebijakan, lalu pilih Buat kebijakan.

3. Pilih tab JSON, dan tempel kode berikut:

{ "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. Pilih Kebijakan tinjauan, ketik nama, lalu pilih Buat kebijakan.

5. Lampirkan kebijakan yang baru dibuat ke peran IAM Anda yang ada atau buat peran baru.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan
Buat kebijakan IAM untuk Amazon SQS.

Buat kebijakan IAM yang akan menyediakan akses ke Amazon SQS. Lihat bagian Kode untuk kebijakan sampel.

Insinyur sistem
Buat profil AWS.

Buat profil baru dengan menjalankan AWS Tools untuk PowerShell perintah Set-AWSCredential. Perintah ini menyimpan kunci akses dan kunci rahasia Anda dalam file kredensi default Anda di bawah nama profil yang Anda tentukan. Tautkan kebijakan Amazon SQS yang Anda buat sebelumnya dengan akun ini. Simpan ID kunci akses AWS dan kunci akses rahasia. Ini akan diperlukan pada langkah selanjutnya.

Insinyur sistem
Buat antrian SQS.

Anda dapat membuat antrian standar atau antrian masuk pertama, keluar pertama (FIFO). Untuk petunjuk, lihat tautan di bagian Referensi.

Insinyur sistem
TugasDeskripsiKeterampilan yang dibutuhkan
Instal AWS Toolkit for Visual Studio.

Toolkit ini adalah ekstensi untuk Microsoft Visual Studio dan memudahkan Anda untuk membangun dan menyebarkan aplikasi.NET di AWS. Untuk petunjuk pemasangan dan penggunaan, lihat tautan di bagian Referensi.

Pengembang aplikasi
Instal AWSSDK paket.SQS. NuGet

Anda dapat menginstal AWSSDK .SQS dengan memilih “Manage NuGet Package” di Visual Studio atau dengan menjalankan perintah “ AWSSDKInstall-Package .SQS”.

Pengembang aplikasi
Buat AWSCredentials objek di aplikasi.NET Anda.

Contoh aplikasi dalam lampiran menunjukkan cara membuat AWSCredentials objek Basic, yang mewarisi dari AWSCredentials. Anda dapat menggunakan ID kunci akses dan kunci akses rahasia dari sebelumnya, atau biarkan objek memilih ini dari folder.aws sebagai bagian dari profil pengguna saat dijalankan.

Pengembang aplikasi
Buat objek klien SQS.

Buat objek klien SQS (AmazonSQSClient) untuk.NET Framework. Ini adalah bagian dari namespace Amazon.sqs. Objek ini diperlukan alih-alih IQueue Klien, yang merupakan bagian dari Microsoft.Azure. ServiceBus namespace.

Pengembang aplikasi
Panggil SendMessageAsync metode untuk mengirim pesan ke antrian SQS.

Ubah kode yang mengirim pesan ke antrian untuk menggunakan. amazonSqsClient SendMessageAsync metode. Untuk detailnya, lihat contoh kode terlampir.

Pengembang aplikasi
Panggil ReceiveMessageAsync metode untuk menerima pesan dari antrian SQS.

Ubah kode yang menerima pesan untuk menggunakan file amazonSqsClient. ReceiveMessageAsync metode. Untuk detailnya, lihat contoh kode terlampir.

Pengembang aplikasi
Panggil DeleteMessageAsync metode untuk menghapus pesan dari antrian SQS.

Untuk menghapus pesan, ubah kode dari QueueClient. CompleteAsync metode untuk amazonSqsClient. DeleteMessageAsync metode. Untuk detailnya, lihat contoh kode terlampir.

Pengembang aplikasi

Informasi tambahan

Pola ini mencakup dua contoh aplikasi (lihat bagian lampiran):

  • AzureSbTestApptermasuk kode yang menggunakan antrian Azure Service Bus.

  • AmazonSqsTestAppmenggunakan Amazon SQS. Ini adalah aplikasi konsol yang menggunakan.NET Core 2.2 dan termasuk contoh untuk mengirim dan menerima pesan.

Catatan:

  • QueueClient adalah objek IQueue Klien, yang merupakan bagian dari Microsoft.Azure. ServiceBus namespace (termasuk dalam Microsoft.Azure. ServiceBus NuGet paket).

  • amazonSqsClient adalah objek AmazonSQSClient, yang merupakan bagian dari namespace Amazon.sqs (termasuk dalam paket.SQS). AWSSDK NuGet

  • Tergantung di mana kode berjalan, katakanlah jika sedang berjalan EC2, peran perlu memiliki izin untuk menulis ke dalam SQS Queue.

Lampiran

Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip