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-ops
File 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-ops
File 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-one
prod-two
, dan prod-three
merupakan contoh.
spec
File 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 GetServiceInstanceSyncStatus
API 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 denganserviceName
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.