Siapkan router sel tanpa server untuk arsitektur berbasis sel - AWS Prescriptive Guidance

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

Siapkan router sel tanpa server untuk arsitektur berbasis sel

Mian Tariq dan Ioannis Lioupras, Amazon Web Services

Ringkasan

Sebagai titik masuk ke sistem aplikasi berbasis sel global, router sel bertanggung jawab untuk secara efisien menugaskan pengguna ke sel yang sesuai dan menyediakan titik akhir kepada pengguna. Router sel menangani fungsi seperti menyimpan user-to-cell pemetaan, memantau kapasitas sel, dan meminta sel baru bila diperlukan. Penting untuk menjaga fungsionalitas router sel selama potensi gangguan.

Kerangka desain router sel dalam pola ini berfokus pada ketahanan, skalabilitas, dan pengoptimalan kinerja secara keseluruhan. Pola ini menggunakan perutean statis, di mana klien menyimpan titik akhir cache saat login awal dan berkomunikasi langsung dengan sel. Decoupling ini meningkatkan ketahanan sistem dengan membantu memastikan fungsionalitas aplikasi berbasis sel yang tidak terganggu selama gangguan router sel.

Pola ini menggunakan AWS CloudFormation template untuk menyebarkan arsitektur. Untuk detail tentang apa yang diterapkan template, atau untuk menerapkan konfigurasi yang sama dengan menggunakan AWS Management Console, lihat bagian Informasi tambahan.

penting

Demonstrasi, kode, dan AWS CloudFormation template yang disajikan dalam pola ini dimaksudkan untuk tujuan penjelasan saja. Materi yang disediakan semata-mata untuk tujuan menggambarkan pola desain dan membantu dalam pemahaman. Demo dan kode tidak siap produksi dan tidak boleh digunakan untuk kegiatan produksi langsung apa pun. Setiap upaya untuk menggunakan kode atau demo di lingkungan produksi sangat tidak dianjurkan dan merupakan risiko Anda sendiri. Kami merekomendasikan konsultasi dengan profesional yang tepat dan melakukan pengujian menyeluruh sebelum menerapkan pola ini atau komponennya dalam pengaturan produksi.

Prasyarat dan batasan

Prasyarat

Versi produk

  • Python 3.12

Arsitektur

Diagram berikut menunjukkan desain tingkat tinggi dari router sel.

Proses lima langkah dari router sel.

Diagram langkah-langkah melalui alur kerja berikut:

  1. Pengguna menghubungi Amazon API Gateway, yang berfungsi sebagai bagian depan untuk titik akhir API router sel.

  2. Amazon Cognito menangani otentikasi dan otorisasi.

  3. AWS Step Functions Alur kerja terdiri dari komponen-komponen berikut:

    • Orchestrator - Orchestrator Penggunaan AWS Step Functions untuk membuat alur kerja, atau mesin negara. Alur kerja dipicu oleh API router sel. OrchestratorMengeksekusi fungsi Lambda berdasarkan jalur sumber daya.

    • Dispatcher - Fungsi Dispatcher Lambda mengidentifikasi dan menetapkan satu sel statis per pengguna baru yang terdaftar. Fungsi mencari sel dengan jumlah pengguna paling sedikit, menetapkannya ke pengguna, dan mengembalikan titik akhir.

    • Mapper - Mapper Operasi menangani user-to-cell pemetaan dalam database RoutingDB Amazon DynamoDB yang dibuat oleh template. AWS CloudFormation Ketika dipicu, Mapper fungsi menyediakan pengguna yang sudah ditetapkan dengan endpoint mereka.

    • Scaler - Scaler Fungsi melacak hunian sel dan kapasitas yang tersedia. Bila diperlukan, Scaler fungsi dapat mengirim permintaan melalui Amazon Simple Queue Service (Amazon SQS) ke layer Provision and Deploy untuk meminta sel baru.

    • Validator - Validator Fungsi memvalidasi titik akhir sel dan mendeteksi potensi masalah.

  4. RoutingDBMenyimpan informasi dan atribut sel (titik akhir API,, status Wilayah AWS, metrik).

  5. Bila kapasitas sel yang tersedia melebihi ambang batas, router sel meminta layanan penyediaan dan penerapan melalui Amazon SQS untuk membuat sel baru.

Saat sel baru dibuat, RoutingDB akan diperbarui dari layer Provision and Deploy. Namun, proses itu berada di luar cakupan pola ini. Untuk ikhtisar bangunan desain arsitektur berbasis sel dan detail tentang desain router sel yang digunakan dalam pola ini, lihat bagian Informasi tambahan.

Alat

Layanan AWS

  • Amazon API Gateway membantu Anda membuat, menerbitkan, memelihara, memantau, dan mengamankan REST, HTTP, dan WebSocket APIs dalam skala apa pun.

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS

  • Amazon Cognito menyediakan otentikasi, otorisasi, dan manajemen pengguna untuk aplikasi web dan seluler.

  • Amazon DynamoDB adalah layanan database NoSQL yang dikelola sepenuhnya yang menyediakan kinerja yang cepat, dapat diprediksi, dan terukur.

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • Amazon Simple Storage Service (Amazon S3) adalah layanan penyimpanan objek berbasis cloud yang membantu Anda menyimpan, melindungi, dan mengambil sejumlah data.

  • Amazon Simple Queue Service (Amazon Simple Queue Service) menyediakan antrian host yang aman, tahan lama, dan tersedia yang membantu Anda mengintegrasikan dan memisahkan sistem dan komponen perangkat lunak terdistribusi.

  • AWS Step Functionsadalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan fungsi Lambda dan lainnya untuk membangun aplikasi bisnis yang penting. Layanan AWS

Alat-alat lainnya

Repositori kode

Kode untuk pola ini tersedia di repositori GitHub Serverless-Cell-Router.

Praktik terbaik

Untuk praktik terbaik saat membangun arsitektur berbasis sel, lihat panduan Well-Architected AWS berikut:

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Kloning repositori kode contoh.

Untuk mengkloning Serverless-Cell-Router GitHub repositori ke komputer Anda, gunakan perintah berikut:

git clone https://github.com/aws-samples/Serverless-Cell-Router/
Developer

Siapkan kredensial AWS CLI sementara.

Konfigurasikan kredensi AWS CLI dengan untuk Anda. Akun AWS Panduan ini menggunakan kredensil sementara yang disediakan oleh baris Perintah Pusat Identitas AWS IAM atau opsi akses terprogram. Ini menetapkan variabelAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY, dan AWS_SESSION_TOKEN AWS lingkungan dengan kredensil yang sesuai untuk digunakan dengan. AWS CLI

Developer

Buat ember S3.

Buat bucket S3 yang akan digunakan untuk menyimpan dan mengakses fungsi Serverless-Cell-Router Lambda untuk penerapan oleh template. AWS CloudFormation Untuk membuat bucket S3, gunakan perintah berikut:

aws s3api create-bucket --bucket <bucket name> --region eu-central-1 --create-bucket-configuration LocationConstraint=eu-central-1
Developer

Buat file.zip.

Buat satu file.zip untuk setiap fungsi Lambda yang terletak di direktori Functions. File.zip ini akan digunakan untuk menyebarkan fungsi Lambda. Di Mac, gunakan zip perintah berikut:

zip -j mapper-scr.zip Functions/Mapper.py zip -j dispatcher-scr.zip Functions/Dispatcher.py zip -j scaler-scr.zip Functions/Scaler.py zip -j cp validator-scr.zip Functions/Validator.py zip -j dynamodbDummyData-scr.zip Functions/DynamodbDummyData.py
Developer

Salin file.zip ke bucket S3.

Untuk menyalin semua file.zip fungsi Lambda ke bucket S3, gunakan perintah berikut:

aws s3 cp mapper-scr.zip s3://<bucket name> aws s3 cp dispatcher-scr.zip s3://<bucket name> aws s3 cp scaler-scr.zip s3://<bucket name> aws s3 cp validator-scr.zip s3://<bucket name> aws s3 cp dynamodbDummyData-scr.zip s3://<bucket name>
Developer
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan AWS CloudFormation template.

Untuk menyebarkan AWS CloudFormation template, jalankan AWS CLI perintah berikut:

aws cloudformation create-stack --stack-name serverless.cell-router \ --template-body file://Serverless-Cell-Router-Stack-v10.yaml \ --capabilities CAPABILITY_IAM \ --parameters ParameterKey=LambdaFunctionMapperS3KeyParameterSCR,ParameterValue=mapper-scr.zip \ ParameterKey=LambdaFunctionDispatcherS3KeyParameterSCR,ParameterValue=dispatcher-scr.zip \ ParameterKey=LambdaFunctionScalerS3KeyParameterSCR,ParameterValue=scaler-scr.zip \ ParameterKey=LambdaFunctionAddDynamoDBDummyItemsS3KeyParameterSCR,ParameterValue=dynamodbDummyData-scr.zip \ ParameterKey=LambdaFunctionsS3BucketParameterSCR,ParameterValue=<S3 bucket storing lambda zip files> \ ParameterKey=CognitoDomain,ParameterValue=<Cognito Domain Name> \ --region <enter your aws region id, e.g. "eu-central-1">
Developer

Periksa kemajuan.

Masuk ke AWS Management Console, buka AWS CloudFormation konsol di https://console.aws.amazon.com/cloudformation/, dan periksa kemajuan pengembangan tumpukan. Ketika statusnyaCREATE_COMPLETE, tumpukan telah berhasil digunakan.

Developer
TugasDeskripsiKeterampilan yang dibutuhkan

Tetapkan sel ke pengguna.

Untuk memulaiOrchestrator, jalankan perintah curl berikut:

curl -X POST \ -H "Authorization: Bearer {User id_token}" \ https://xxxxxx.execute-api.eu-central-1.amazonaws.com/Cell_Router_Development/cells

OrchestratorPemicu eksekusi Dispatcher fungsi. ItuDispatcher, pada gilirannya, memverifikasi keberadaan pengguna. Jika pengguna ditemukan, Dispatcher mengembalikan ID sel terkait dan titik akhir URLs. Jika pengguna tidak ditemukan, Dispatcher mengalokasikan sel ke pengguna dan mengirimkan ID sel ke Scaler fungsi untuk penilaian kapasitas sisa sel yang ditetapkan.

Respons Scaler fungsi adalah sebagai berikut:

"cellID : cell-0002 , endPoint_1 : https://xxxxx.execute-api.eu-north-1.amazonaws.com/ , endPoint_2 : https://xxxxxxx.execute-api.eu-central-1.amazonaws.com/"

Developer

Ambil sel pengguna.

Untuk menggunakan Orchestrator untuk menjalankan Mapper fungsi, jalankan perintah berikut:

curl -X POST \ -H "Authorization: Bearer {User id_token}" \ https://xxxxxxxxx.execute-api.eu-central-1.amazonaws.com/Cell_Router_Development/mapper

OrchestratorPencarian sel yang ditetapkan untuk pengguna dan mengembalikan ID sel dan URLs dalam respons berikut:

"cellID : cell-0002 , endPoint_1 : https://xxxxx.execute-api.eu-north-1.amazonaws.com/ , endPoint_2 : https://xxxxxxx.execute-api.eu-central-1.amazonaws.com/"

Developer
TugasDeskripsiKeterampilan yang dibutuhkan

Bersihkan sumber daya.

Untuk menghindari biaya tambahan di akun Anda, lakukan hal berikut:

  1. Kosongkan bucket S3 yang Anda buat untuk fungsi Lambda.

  2. Hapus bucket.

  3. Hapus AWS CloudFormation tumpukan.

Pengembang aplikasi

Sumber daya terkait

Referensi

Video

Physalia: Arsitektur Berbasis Sel untuk Memberikan Ketersediaan Lebih Tinggi di Amazon EBS

https://www.youtube-nocookie.com/embed/6Iknq? RZMFic kontrol=0

Informasi tambahan

Tempat desain arsitektur berbasis sel

Meskipun pola ini berfokus pada router sel, penting untuk memahami seluruh lingkungan. Lingkungan disusun menjadi tiga lapisan diskrit:

  • Layer Routing, atau Thin layer, yang berisi router sel

  • Lapisan sel, terdiri dari berbagai sel

  • Lapisan Penyediaan dan Penyebaran, yang menyediakan sel dan menyebarkan aplikasi

Setiap lapisan mempertahankan fungsionalitas bahkan jika terjadi gangguan yang mempengaruhi lapisan lain. Akun AWS berfungsi sebagai batas isolasi kesalahan.

Diagram berikut menunjukkan lapisan pada tingkat tinggi. Lapisan Cell dan layer Provision and Deploy berada di luar cakupan pola ini.

Layer Routing, layer Cell dengan beberapa akun sel, dan layer Provision and Deploy.

Untuk informasi selengkapnya tentang arsitektur berbasis sel, lihat Mengurangi Lingkup Dampak dengan Arsitektur Berbasis Sel: Perutean sel.

Pola desain cell-router

Router sel adalah komponen bersama di seluruh sel. Untuk mengurangi dampak potensial, penting bagi lapisan Routing untuk menggunakan desain yang sederhana dan dapat diskalakan secara horizontal yang setipis mungkin. Berfungsi sebagai titik masuk sistem, lapisan Routing hanya terdiri dari komponen yang diperlukan untuk secara efisien menetapkan pengguna ke sel yang sesuai. Komponen dalam lapisan ini tidak terlibat dalam pengelolaan atau pembuatan sel.

Pola ini menggunakan routing statis, yang berarti bahwa klien cache endpoint pada login awal dan kemudian membangun komunikasi langsung dengan sel. Interaksi berkala antara klien dan router sel dimulai untuk mengkonfirmasi status saat ini atau mengambil pembaruan apa pun. Decoupling yang disengaja ini memungkinkan operasi tanpa gangguan untuk pengguna yang ada jika terjadi downtime router sel, dan menyediakan fungsionalitas dan ketahanan berkelanjutan dalam sistem.

Dalam pola ini, router sel mendukung fungsionalitas berikut:

  • Mengambil data sel dari database sel di lapisan Provision and Deploy dan menyimpan atau memperbarui database lokal.

  • Menetapkan sel untuk setiap pengguna aplikasi terdaftar baru dengan menggunakan algoritma penugasan sel.

  • Menyimpan user-to-cells pemetaan dalam database lokal.

  • Memeriksa kapasitas sel selama penugasan pengguna dan memunculkan acara untuk mesin penjual otomatis ke lapisan Provision and Deploy untuk membuat sel.

  • Menggunakan algoritma kriteria pembuatan sel untuk menyediakan fungsi ini.

  • Menanggapi permintaan pengguna yang baru terdaftar dengan menyediakan sel statis. URLs Ini URLs akan di-cache pada klien dengan waktu untuk hidup (TTL).

  • Menanggapi permintaan pengguna yang ada dari URL yang tidak valid dengan memberikan URL baru atau yang diperbarui.

Untuk lebih memahami router sel demonstrasi yang diatur oleh AWS CloudFormation template, tinjau komponen dan langkah berikut:

  1. Siapkan dan konfigurasikan kumpulan pengguna Amazon Cognito.

  2. Siapkan dan konfigurasikan API Gateway API untuk router sel.

  3. Buat tabel DynamoDB.

  4. Buat dan konfigurasikan antrian SQS.

  5. MenerapkanOrchestrator.

  6. Menerapkan fungsi Lambda:Dispatcher,,Scaler,Mapper. Validator

  7. Keledai dan verifikasi.

Anggapannya adalah bahwa lapisan Provision dan Deploy sudah ditetapkan. Detail implementasinya berada di luar cakupan artefak ini.

Karena komponen ini diatur dan dikonfigurasi oleh AWS CloudFormation template, langkah-langkah berikut disajikan pada tingkat deskriptif dan tinggi. Asumsinya adalah Anda memiliki AWS keterampilan yang diperlukan untuk menyelesaikan pengaturan dan konfigurasi.

1. Siapkan dan konfigurasikan kumpulan pengguna Amazon Cognito

Masuk ke AWS Management Console, dan buka konsol Amazon Cognito di. https://console.aws.amazon.com/cognito/ Siapkan dan konfigurasikan kumpulan pengguna Amazon Cognito bernamaCellRouterPool, dengan integrasi aplikasi, UI yang dihosting, dan izin yang diperlukan.

2. Siapkan dan konfigurasikan API Gateway API untuk router sel

Buka konsol API Gateway di https://console.aws.amazon.com/apigateway/. Siapkan dan konfigurasikan API bernamaCellRouter, menggunakan otorisasi Amazon Cognito yang terintegrasi dengan kumpulan pengguna Amazon Cognito. CellRouterPool Menerapkan elemen-elemen berikut:

  • CellRouterSumber daya API, termasuk POST metode

  • Integrasi dengan alur kerja Step Functions diimplementasikan pada langkah 5

  • Otorisasi melalui otorisasi Amazon Cognito

  • Permintaan integrasi dan pemetaan respons

  • Alokasi izin yang diperlukan

3. Buat tabel DynamoDB

Buka konsol DynamoDB https://console.aws.amazon.com/dynamodb/di, dan buat tabel DynamoDB standar yang disebut dengan konfigurasi berikut: tbl_router

  • Kunci partisi - marketId

  • Kunci sortir cellId

  • Mode kapasitas - Disediakan

  • Point-in-time pemulihan (PITR) - Mati

Pada tab Indeks, buat indeks sekunder global yang disebutmarketId-currentCapacity-index. Fungsi Scaler Lambda akan menggunakan indeks untuk melakukan pencarian efisien untuk sel dengan jumlah pengguna yang ditugaskan terendah.

Buat struktur tabel dengan atribut berikut:

  • marketId- Eropa

  • cellId- sel-0002

  • currentCapacity- 2

  • endPoint_1- <your endpoint for the first Region>

  • endPoint_2- <your endpoint for the second Region>

  • IsHealthy- Benar

  • maxCapacity- 10

  • regionCode_1eu-north-1

  • regionCode_2eu-central-1

  • userIds- <your email address>

4. Buat dan konfigurasikan antrian SQS

Buka konsol Amazon SQS di https://console.aws.amazon.com/sqs/, dan buat antrean SQS standar yang disebut dikonfigurasi dengan enkripsi kunci CellProvisioning Amazon SQS.

5. Menerapkan Orkestrator

Kembangkan alur kerja Step Functions Orchestrator untuk berfungsi sebagai router. Alur kerja dapat dipanggil melalui API router sel. Alur kerja mengeksekusi fungsi Lambda yang ditunjuk berdasarkan jalur sumber daya. Integrasikan fungsi langkah dengan API Gateway API untuk router selCellRouter, dan konfigurasikan izin yang diperlukan untuk menjalankan fungsi Lambda.

Diagram berikut menunjukkan alur kerja. Status pilihan memanggil salah satu fungsi Lambda. Jika fungsi Lambda berhasil, alur kerja berakhir. Jika fungsi Lambda gagal, status gagal dipanggil.

Diagram alur kerja dengan empat fungsi dan berakhir dalam keadaan gagal.

6. Menerapkan fungsi Lambda

Menerapkan DispatcherMapper,,Scaler, dan Validator fungsi. Saat Anda mengatur dan mengonfigurasi setiap fungsi dalam demonstrasi, tentukan peran untuk fungsi tersebut dan tetapkan izin yang diperlukan untuk melakukan operasi yang diperlukan pada tabel DynamoDB. tbl_router Selain itu, integrasikan setiap fungsi ke dalam alur kerjaOrchestrator.

Fungsi dispatcher

DispatcherFungsi ini bertanggung jawab untuk mengidentifikasi dan menetapkan sel statis tunggal untuk setiap pengguna terdaftar baru. Ketika pengguna baru mendaftar dengan aplikasi global, permintaan masuk ke Dispatcher fungsi. Fungsi memproses permintaan dengan menggunakan kriteria evaluasi yang telah ditentukan seperti berikut:

  1. Wilayah - Pilih sel di pasar tempat pengguna berada. Misalnya, jika pengguna mengakses aplikasi global dari Eropa, pilih sel yang digunakan Wilayah AWS di Eropa.

  2. Kedekatan atau latensi - Pilih sel yang paling dekat dengan pengguna Misalnya, jika pengguna mengakses aplikasi dari Belanda, fungsi tersebut mempertimbangkan sel yang menggunakan Frankfurt dan Irlandia. Keputusan mengenai sel mana yang paling dekat didasarkan pada metrik seperti latensi antara lokasi pengguna dan Wilayah sel. Untuk pola contoh ini, informasi diumpankan secara statis dari lapisan Provision and Deploy.

  3. Kesehatan - Dispatcher Fungsi memeriksa apakah sel yang dipilih sehat berdasarkan keadaan sel yang disediakan (Sehat = benar atau salah).

  4. Kapasitas - Distribusi pengguna didasarkan pada jumlah pengguna paling sedikit dalam logika sel, sehingga pengguna ditugaskan ke sel yang memiliki jumlah pengguna paling sedikit.

catatan

Kriteria ini disajikan untuk menjelaskan pola contoh ini saja. Untuk implementasi router sel kehidupan nyata, Anda dapat menentukan kriteria berbasis kasus yang lebih halus dan menggunakan.

OrchestratorMemanggil fungsi Dispatcher untuk menetapkan pengguna ke sel. Dalam fungsi demo ini, nilai pasar adalah parameter statis yang didefinisikan sebagaieurope.

DispatcherFungsi menilai apakah sel sudah ditetapkan ke pengguna. Jika sel sudah ditetapkan, Dispatcher fungsi mengembalikan titik akhir sel. Jika tidak ada sel yang ditetapkan ke pengguna, fungsi akan mencari sel dengan jumlah pengguna paling sedikit, menetapkannya ke pengguna, dan mengembalikan titik akhir. Efisiensi permintaan pencarian sel dioptimalkan dengan menggunakan indeks sekunder global.

Fungsi pemetaan

MapperFungsi mengawasi penyimpanan dan pemeliharaan user-to-cell pemetaan dalam database. Sel tunggal dialokasikan untuk setiap pengguna terdaftar. Setiap sel memiliki dua yang berbeda URLs —satu untuk setiap Wilayah AWS. Berfungsi sebagai titik akhir API yang dihosting di API Gateway, ini URLs berfungsi sebagai titik masuk ke aplikasi global.

Ketika Mapper fungsi menerima permintaan dari aplikasi klien, ia menjalankan query pada tbl_router tabel DynamoDB untuk mengambil user-to-cell pemetaan yang terkait dengan ID email yang disediakan. Jika menemukan sel yang ditetapkan, Mapper fungsi segera menyediakan dua URLs sel. MapperFungsi ini juga secara aktif memantau perubahan pada sel URLs, dan memulai pemberitahuan atau pembaruan ke pengaturan pengguna.

Fungsi scaler

ScalerFungsi ini mengelola kapasitas residu sel. Untuk setiap permintaan pendaftaran pengguna baru, Scaler fungsi menilai kapasitas sel yang tersedia dari Dispatcher fungsi yang ditetapkan untuk pengguna. Jika sel telah mencapai batas yang telah ditentukan sesuai dengan kriteria evaluasi yang ditentukan, fungsi akan memulai permintaan melalui antrian Amazon SQS ke lapisan Penyediaan dan Penerapan, meminta penyediaan dan penerapan sel baru. Penskalaan sel dapat dijalankan berdasarkan serangkaian kriteria evaluasi seperti berikut:

  1. Pengguna maksimum - Setiap sel dapat memiliki 500 jumlah maksimum pengguna.

  2. Kapasitas buffer - Kapasitas buffer setiap sel adalah 20 persen, yang berarti bahwa setiap sel dapat ditetapkan ke 400 pengguna setiap saat. Kapasitas buffer 20 persen sisanya dicadangkan untuk kasus penggunaan di masa mendatang dan penanganan skenario yang tidak terduga (misalnya, ketika layanan pembuatan dan penyediaan sel tidak tersedia).

  3. Pembuatan sel - Segera setelah sel yang ada mencapai 70 persen kapasitas, permintaan dipicu untuk membuat sel tambahan.

catatan

Kriteria ini disajikan untuk menjelaskan pola contoh ini saja. Untuk implementasi router sel kehidupan nyata, Anda dapat menentukan kriteria berbasis kasus yang lebih halus dan menggunakan.

ScalerKode demonstrasi dijalankan oleh Orchestrator setelah Dispatcher berhasil menetapkan sel ke pengguna yang baru terdaftar. Setelah menerima ID sel dari ScalerDispatcher, mengevaluasi apakah sel yang ditunjuk memiliki kapasitas yang memadai untuk mengakomodasi pengguna tambahan, berdasarkan kriteria evaluasi yang telah ditentukan. Jika kapasitas sel tidak mencukupi, Scaler fungsi akan mengirimkan pesan ke layanan Amazon SQS. Pesan ini diambil oleh layanan dalam layer Provision and Deploy, memulai penyediaan sel baru.

Fungsi validator

ValidatorFungsi mengidentifikasi dan menyelesaikan masalah yang berkaitan dengan akses sel. Saat pengguna masuk ke aplikasi global, aplikasi mengambil sel URLs dari pengaturan profil pengguna dan merutekan permintaan pengguna ke salah satu dari dua Wilayah yang ditetapkan di dalam sel. Jika URLs tidak dapat diakses, aplikasi dapat mengirimkan permintaan URL validasi ke router sel. Router sel Orchestrator memanggil file. Validator ValidatorMemulai proses validasi. Validasi mungkin mencakup, di antara pemeriksaan lainnya, yang berikut:

  • Sel referensi silang URLs dalam permintaan dengan URLs disimpan dalam database untuk mengidentifikasi dan memproses pembaruan potensial

  • Menjalankan pemeriksaan kesehatan mendalam (misalnya, HTTP GET permintaan ke titik akhir sel)

Kesimpulannya, Validator fungsi memberikan tanggapan terhadap permintaan aplikasi klien, memberikan status validasi bersama dengan langkah-langkah remediasi yang diperlukan.

ValidatorIni dirancang untuk meningkatkan pengalaman pengguna. Pertimbangkan skenario di mana pengguna tertentu mengalami kesulitan mengakses aplikasi global karena insiden menyebabkan sel untuk sementara tidak tersedia. Alih-alih menyajikan kesalahan umum, Validator fungsi ini dapat memberikan langkah-langkah remediasi instruktif. Langkah-langkah ini mungkin termasuk tindakan berikut:

  • Beri tahu pengguna tentang insiden tersebut.

  • Berikan perkiraan waktu tunggu sebelum ketersediaan layanan.

  • Berikan nomor kontak dukungan untuk mendapatkan informasi tambahan.

Kode demo untuk Validator fungsi memverifikasi bahwa sel yang disediakan pengguna URLs dalam permintaan cocok dengan catatan yang disimpan dalam tabel. tbl_router ValidatorFungsi ini juga memeriksa apakah sel-sel sehat.