Konfigurasi sinkronisasi layanan - AWS Proton

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

Konfigurasi sinkronisasi layanan

Dengan sinkronisasi layanan, Anda dapat mengonfigurasi dan menerapkan AWS Proton layanan Anda menggunakan Git. Anda dapat menggunakan sinkronisasi layanan untuk mengelola penerapan awal dan pembaruan ke AWS Proton layanan Anda dengan konfigurasi yang ditentukan dalam repositori Git. Melalui Git, Anda dapat menggunakan fitur seperti pelacakan versi dan permintaan tarik untuk mengonfigurasi, mengelola, dan menyebarkan layanan Anda. Service sync menggabungkan AWS Proton dan Git untuk membantu Anda menyediakan infrastruktur standar yang didefinisikan dan dikelola melalui AWS Proton template. Ini mengelola definisi layanan di repositori Git Anda dan mengurangi peralihan alat. Dibandingkan dengan menggunakan Git saja, standarisasi template dan penerapan di AWS Proton membantu Anda menghabiskan lebih sedikit waktu mengelola infrastruktur Anda. AWS Proton juga memberikan transparansi dan auditabilitas yang lebih tinggi untuk pengembang dan tim platform.

AWS Proton Berkas OPS

proton-opsFile menentukan tempat AWS Proton menemukan file spesifikasi yang digunakan untuk memperbarui instance layanan Anda. Ini juga mendefinisikan urutan apa untuk memperbarui instance layanan dan kapan harus mempromosikan perubahan dari satu instance ke instance lainnya.

proton-opsFile ini mendukung sinkronisasi instance layanan menggunakan file spesifikasi, atau beberapa file spesifikasi, yang ditemukan di repositori tertaut Anda. Anda dapat melakukan ini dengan mendefinisikan blok sinkronisasi dalam proton-ops file, seperti pada contoh berikut.

Contoh. /konfigurasi/proton-ops.yaml:

sync: services: frontend-svc: alpha: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml beta: branch: dev spec: ./frontend-svc/test/frontend-spec.yaml gamma: branch: pre-prod spec: ./frontend-svc/pre-prod/frontend-spec.yaml prod-one: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-two: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml prod-three: branch: prod spec: ./frontend-svc/prod/frontend-spec-second.yaml

Dalam contoh sebelumnya, frontend-svc adalah nama layanan, dan,,alpha,beta, gamma prod-oneprod-two, dan prod-three merupakan contoh.

specFile dapat berupa semua instance atau subset dari instance yang didefinisikan dalam file. proton-ops Namun, setidaknya, itu harus memiliki instance yang ditentukan di dalam cabang dan spesifikasi yang disinkronkannya. Jika instance tidak ditentukan dalam proton-ops file, dengan cabang dan lokasi spec file tertentu, sinkronisasi layanan tidak akan membuat atau memperbarui instance tersebut.

Contoh berikut menunjukkan seperti apa spec file tersebut. Ingat, proton-ops file tersebut disinkronkan dari spec file-file ini.

Contoh./frontend-svc/test/frontend-spec.yaml:

proton: "ServiceSpec" instances: - name: "alpha" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "beta" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Contoh./frontend-svc/pre-prod/frontend-spec.yaml:

proton: "ServiceSpec" instances: - name: "gamma" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Contoh./frontend-svc/prod/frontend-spec-second.yaml:

proton: "ServiceSpec" instances: - name: "prod-one" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-two" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0" - name: "prod-three" environment: "frontend-env" spec: port: 80 desired_count: 1 task_size: "x-small" image: "public.ecr.aws/z9d2n7e1/nginx:1.21.0"

Jika sebuah instance tidak disinkronkan, dan ada masalah yang berkelanjutan saat mencoba menyinkronkannya, memanggil GetServiceInstanceSyncStatusAPI dapat membantu menyelesaikan masalah.

catatan

Pelanggan yang menggunakan sinkronisasi layanan masih dibatasi oleh AWS Proton batasan.

Pemblokir

Dengan menyinkronkan layanan Anda menggunakan sinkronisasi AWS Proton layanan, Anda dapat memperbarui spesifikasi layanan Anda dan membuat serta memperbarui instance layanan dari repositori Git Anda. Namun, mungkin ada saat-saat di mana Anda perlu memperbarui layanan atau instance secara manual melalui AWS Management Console atau AWS CLI.

AWS Proton membantu menghindari menimpa setiap perubahan manual yang Anda buat melalui AWS Management Console atau AWS CLI, seperti memperbarui instance layanan atau menghapus instance layanan. Untuk mencapai hal ini, AWS Proton secara otomatis membuat pemblokir sinkronisasi layanan dengan menonaktifkan sinkronisasi layanan saat mendeteksi perubahan manual.

Untuk mendapatkan semua pemblokir yang terkait dengan layanan, Anda harus melakukan hal berikut agar masing-masing serviceInstance terkait dengan layanan:

  • Panggil getServiceSyncBlockerSummary API hanya dengan fileserviceName.

  • Panggil getServiceSyncBlockerSummary API dengan serviceName danserviceInstanceName.

Ini mengembalikan daftar pemblokir terbaru dan status yang terkait dengannya. Jika ada pemblokir yang ditandai AKTIF, Anda harus menyelesaikannya dengan memanggil UpdateServiceSyncBlocker API dengan blockerId dan resolvedReason untuk masing-masing pemblokir.

Jika Anda memperbarui atau membuat instance layanan secara manual, AWS Proton buat pemblokir sinkronisasi layanan pada instance layanan. AWS Proton terus menyinkronkan semua instance layanan lainnya, tetapi menonaktifkan sinkronisasi instance layanan ini hingga pemblokir diselesaikan. Jika Anda menghapus instance layanan dari layanan, AWS Proton buat pemblokir sinkronisasi layanan pada layanan. Ini AWS Proton mencegah sinkronisasi salah satu instance layanan hingga pemblokir telah diselesaikan.

Setelah Anda memiliki semua pemblokir aktif, Anda harus menyelesaikannya dengan memanggil UpdateServiceSyncBlocker API dengan blockerId dan resolvedReason untuk masing-masing pemblokir aktif.

Dengan menggunakan AWS Management Console, Anda dapat menentukan apakah sinkronisasi layanan dinonaktifkan dengan menavigasi ke AWS Proton dan memilih tab Sinkronisasi Layanan. Jika instance layanan atau layanan diblokir, tombol Aktifkan akan muncul. Untuk mengaktifkan sinkronisasi layanan, pilih Aktifkan.