Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan AWS AppConfig Agen dengan Amazon ECS dan Amazon EKS
Anda dapat berintegrasi AWS AppConfig dengan Amazon Elastic Container Service (AmazonECS) dan Amazon Elastic Kubernetes Service (EKSAmazon) dengan menggunakan Agen. AWS AppConfig Agen berfungsi sebagai wadah sespan yang berjalan bersama aplikasi EKS penampung Amazon dan ECS Amazon Anda. Agen meningkatkan pemrosesan dan manajemen aplikasi kontainer dengan cara berikut:
-
Agen memanggil AWS AppConfig atas nama Anda dengan menggunakan peran AWS Identity and Access Management (IAM) dan mengelola cache lokal data konfigurasi. Dengan menarik data konfigurasi dari cache lokal, aplikasi Anda memerlukan lebih sedikit pembaruan kode untuk mengelola data konfigurasi, mengambil data konfigurasi dalam milidetik, dan tidak terpengaruh oleh masalah jaringan yang dapat mengganggu panggilan untuk data tersebut. *
-
Agen menawarkan pengalaman asli untuk mengambil dan menyelesaikan flag AWS AppConfig fitur.
-
Di luar kotak, agen menyediakan praktik terbaik untuk strategi caching, interval polling, dan ketersediaan data konfigurasi lokal sambil melacak token konfigurasi yang diperlukan untuk panggilan layanan berikutnya.
-
Saat berjalan di latar belakang, agen secara berkala melakukan polling bidang AWS AppConfig data untuk pembaruan data konfigurasi. Aplikasi kontainer Anda dapat mengambil data dengan menghubungkan ke localhost pada port 2772 (nilai port default yang dapat disesuaikan) dan memanggil untuk mengambil data. HTTP GET
-
AWS AppConfig Agen memperbarui data konfigurasi dalam wadah Anda tanpa harus memulai ulang atau mendaur ulang kontainer tersebut.
*AWS AppConfig Agen menyimpan data saat pertama kali layanan mengambil data konfigurasi Anda. Untuk alasan ini, panggilan pertama untuk mengambil data lebih lambat dari panggilan berikutnya.
Sebelum Anda mulai
Untuk berintegrasi AWS AppConfig dengan aplikasi kontainer, Anda harus membuat AWS AppConfig artefak dan data konfigurasi, termasuk flag fitur atau data konfigurasi bentuk bebas. Untuk informasi selengkapnya, lihat Membuat flag fitur dan data konfigurasi formulir gratis di AWS AppConfig.
Untuk mengambil data konfigurasi yang dihosting oleh AWS AppConfig, aplikasi kontainer Anda harus dikonfigurasi dengan akses ke bidang AWS AppConfig data. Untuk memberikan akses aplikasi Anda, IAM perbarui kebijakan izin yang digunakan oleh IAM peran layanan kontainer Anda. Secara khusus, Anda harus menambahkan appconfig:StartConfigurationSession
dan appconfig:GetLatestConfiguration
tindakan ke kebijakan. IAMPeran layanan kontainer meliputi:
-
Peran ECS tugas Amazon
-
Peran EKS simpul Amazon
-
Peran eksekusi AWS Fargate (Fargate) pod (jika EKS container Amazon Anda menggunakan Fargate untuk pemrosesan komputasi)
Untuk informasi selengkapnya tentang menambahkan izin ke kebijakan, lihat Menambahkan dan menghapus izin IAM identitas di IAMPanduan Pengguna.
Topik
Memulai AWS AppConfig agen untuk ECS integrasi Amazon
Kontainer sespan AWS AppConfig Agen tersedia secara otomatis di lingkungan Amazon ECS Anda. Untuk menggunakannya, Anda harus memulainya, seperti yang dijelaskan dalam prosedur berikut.
Untuk memulai Amazon ECS (konsol)
Buka konsol di https://console.aws.amazon.com/ecs/v2
. -
Di panel navigasi, pilih Definisi tugas.
-
Pilih definisi tugas untuk aplikasi Anda, lalu pilih revisi terbaru.
-
Pilih Buat revisi baru, Buat revisi baru.
-
Pilih Tambahkan lebih banyak wadah.
-
Untuk Nama, masukkan nama unik untuk wadah AWS AppConfig Agen.
-
Untuk Gambar URI, masukkan:
public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x
-
Untuk wadah Essential, pilih Ya.
-
Di bagian Pemetaan port, pilih Tambahkan pemetaan port.
-
Untuk port Kontainer, masukkan
2772
.catatan
AWS AppConfig Agen berjalan pada port 2772, secara default. Anda dapat menentukan port yang berbeda.
-
Pilih Buat. Amazon ECS membuat revisi kontainer baru dan menampilkan detailnya.
-
Di panel navigasi, pilih Cluster, lalu pilih cluster aplikasi Anda dalam daftar.
-
Pada tab Layanan, pilih layanan untuk aplikasi Anda.
-
Pilih Perbarui.
-
Di bawah konfigurasi Deployment, untuk Revisi, pilih revisi terbaru.
-
Pilih Perbarui. Amazon ECS menerapkan definisi tugas terbaru.
-
Setelah penerapan selesai, Anda dapat memverifikasi bahwa AWS AppConfig Agen berjalan di tab Konfigurasi dan tugas. Pada tab Tugas, pilih tugas yang sedang berjalan.
-
Di bagian Kontainer, verifikasi bahwa kontainer AWS AppConfig Agen terdaftar.
-
Untuk memverifikasi bahwa AWS AppConfig Agen dimulai, pilih tab Log. Temukan pernyataan seperti berikut untuk wadah AWS AppConfig Agen:
[appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772
catatan
Anda dapat menyesuaikan perilaku default AWS AppConfig Agen dengan memasukkan atau mengubah variabel lingkungan. Untuk informasi tentang variabel lingkungan yang tersedia, lihat(Opsional) Menggunakan variabel lingkungan untuk mengonfigurasi AWS AppConfig Agen untuk Amazon ECS dan Amazon EKS. Untuk informasi tentang cara mengubah variabel lingkungan di AmazonECS, lihat Meneruskan variabel lingkungan ke wadah di Panduan Pengembang Layanan Kontainer Elastis Amazon.
Memulai AWS AppConfig agen untuk EKS integrasi Amazon
Kontainer sespan AWS AppConfig Agen tersedia secara otomatis di lingkungan Amazon EKS Anda. Untuk menggunakannya, Anda harus memulainya. Prosedur berikut menjelaskan cara menggunakan alat baris EKS kubectl
perintah Amazon untuk memulai agen.
catatan
Sebelum melanjutkan, pastikan kubeconfig
file Anda mutakhir. Untuk informasi selengkapnya tentang membuat atau mengedit kubeconfig
file, lihat Membuat atau memperbarui file kubeconfig untuk EKS klaster Amazon di Panduan Pengguna Amazon EKS.
Untuk memulai AWS AppConfig Agen (alat baris perintah kubectl)
-
Buka manifes untuk aplikasi Anda dan verifikasi bahwa EKS aplikasi Amazon Anda berjalan sebagai penerapan kontainer tunggal. Isi file akan terlihat mirip dengan yang berikut ini.
apiVersion: apps/v1 kind: Deployment metadata: name:
my-app
namespace:my-namespace
labels: app:my-application-label
spec: replicas: 1 selector: matchLabels: app:my-application-label
template: metadata: labels: app:my-application-label
spec: containers: - name:my-app
image:my-repo
/my-image
imagePullPolicy: IfNotPresent -
Tambahkan detail definisi kontainer AWS AppConfig Agen ke manifes penerapan Anda.
- name: appconfig-agent image: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x ports: - name: http containerPort: 2772 protocol: TCP env: - name:
SERVICE_REGION
value: region imagePullPolicy: IfNotPresentcatatan
Perhatikan informasi berikut.
-
AWS AppConfig Agen berjalan pada port 2772, secara default. Anda dapat menentukan port yang berbeda.
-
Anda dapat menyesuaikan perilaku default AWS AppConfig Agen dengan memasukkan variabel lingkungan. Untuk informasi selengkapnya, lihat (Opsional) Menggunakan variabel lingkungan untuk mengonfigurasi AWS AppConfig Agen untuk Amazon ECS dan Amazon EKS.
-
Untuk
SERVICE_REGION
, tentukan Wilayah AWS kode (misalnya,us-west-1
) tempat AWS AppConfig Agen mengambil data konfigurasi.
-
-
Jalankan
kubectl
perintah berikut untuk menerapkan perubahan ke cluster Anda. Gantimy-deployment
dengan nama manifes penerapan Anda.kubectl apply -f
my-deployment
.yml -
Setelah penerapan selesai, verifikasi bahwa AWS AppConfig Agen sedang berjalan. Gunakan perintah berikut untuk melihat file log pod aplikasi.
kubectl logs -n
my-namespace
-c appconfig-agentmy-pod
Temukan pernyataan seperti berikut untuk wadah AWS AppConfig Agen:
[appconfig agent] 1970/01/01 00:00:00 INFO serving on localhost:2772
catatan
Anda dapat menyesuaikan perilaku default AWS AppConfig Agen dengan memasukkan atau mengubah variabel lingkungan. Untuk informasi tentang variabel lingkungan yang tersedia, lihat(Opsional) Menggunakan variabel lingkungan untuk mengonfigurasi AWS AppConfig Agen untuk Amazon ECS dan Amazon EKS.
(Opsional) Menggunakan variabel lingkungan untuk mengonfigurasi AWS AppConfig Agen untuk Amazon ECS dan Amazon EKS
Anda dapat mengonfigurasi AWS AppConfig Agen dengan mengubah variabel lingkungan berikut untuk wadah agen Anda.
Variabel lingkungan | Detail | Nilai default |
---|---|---|
|
Variabel lingkungan ini mendefinisikan token yang harus disediakan saat meminta data konfigurasi dari server agenHTTP. Nilai token harus diatur dalam header otorisasi HTTP permintaan dengan jenis otorisasi.
|
Tidak ada |
|
Variabel lingkungan ini memungkinkan AWS AppConfig Agen untuk menyimpan cadangan dari setiap konfigurasi yang diambil ke direktori yang ditentukan. pentingKonfigurasi yang dicadangkan ke disk tidak dienkripsi. Jika konfigurasi Anda berisi data sensitif, AWS AppConfig sarankan Anda mempraktikkan prinsip hak istimewa paling sedikit dengan izin sistem file Anda. Untuk informasi selengkapnya, lihat Keamanan di AWS AppConfig. |
Tidak ada |
|
Variabel lingkungan ini menentukan port di mana HTTP server untuk agen berjalan. |
2772 |
|
Variabel lingkungan ini menentukan tingkat detail yang dicatat agen. Setiap level mencakup level saat ini dan semua level yang lebih tinggi. Variabelnya peka huruf besar/kecil. Dari sebagian besar hingga yang paling tidak detail, level log adalah: |
|
|
Lokasi disk tempat log ditulis. Jika tidak ditentukan, log ditulis ke stderr. |
Tidak ada |
|
Variabel lingkungan ini mengonfigurasi AWS AppConfig Agen untuk memanfaatkan fitur per-konfigurasi tambahan seperti pengambilan multi-akun dan menyimpan konfigurasi ke disk. Anda dapat memasukkan salah satu nilai berikut:
Untuk informasi lebih lanjut tentang fitur ini, lihat Menggunakan manifes untuk mengaktifkan fitur pengambilan tambahan. |
true |
|
Variabel lingkungan ini mengonfigurasi jumlah maksimum koneksi yang digunakan agen untuk mengambil konfigurasi dari. AWS AppConfig |
3 |
|
Variabel lingkungan ini mengontrol seberapa sering agen melakukan polling AWS AppConfig untuk data konfigurasi yang diperbarui. Anda dapat menentukan sejumlah detik untuk interval tersebut. Anda juga dapat menentukan angka dengan satuan waktu: s untuk detik, m untuk menit, dan h selama berjam-jam. Jika unit tidak ditentukan, agen default ke detik. Misalnya, 60, 60-an, dan 1m menghasilkan interval jajak pendapat yang sama. |
45 detik |
|
Variabel lingkungan ini menentukan data konfigurasi permintaan agen AWS AppConfig segera setelah dimulai. |
Tidak ada |
|
Jika disetel ke |
true |
PROXY_HEADERS |
Variabel lingkungan ini menentukan header yang diperlukan oleh proxy yang direferensikan dalam variabel lingkungan. PROXY_URL Nilainya adalah daftar header yang dipisahkan koma. Setiap header menggunakan formulir berikut.
|
Tidak ada |
PROXY_URL |
Variabel lingkungan ini menentukan proxy yang URL akan digunakan untuk koneksi dari agen ke AWS layanan, termasuk AWS AppConfig. HTTPS dan HTTP URLs didukung. |
Tidak ada |
|
Variabel lingkungan ini mengontrol jumlah waktu agen menunggu respons. AWS AppConfig Jika layanan tidak merespons, permintaan gagal. Jika permintaan untuk pengambilan data awal, agen mengembalikan kesalahan ke aplikasi Anda. Jika batas waktu terjadi selama pemeriksaan latar belakang untuk data yang diperbarui, agen mencatat kesalahan dan mencoba lagi setelah penundaan singkat. Anda dapat menentukan jumlah milidetik untuk batas waktu. Anda juga dapat menentukan angka dengan satuan waktu: ms untuk milidetik dan s untuk detik. Jika unit tidak ditentukan, agen default ke milidetik. Sebagai contoh, 5000, 5000 ms dan 5s menghasilkan nilai batas waktu permintaan yang sama. |
3000 milidetik |
ROLE_ARN |
Variabel lingkungan ini menentukan Amazon Resource Name (ARN) IAM peran. AWS AppConfig Agen mengasumsikan peran ini untuk mengambil data konfigurasi. | Tidak ada |
ROLE_EXTERNAL_ID |
Variabel lingkungan ini menentukan ID eksternal untuk digunakan dengan peran ARN yang diasumsikan. | Tidak ada |
ROLE_SESSION_NAME |
Variabel lingkungan ini menentukan nama sesi yang akan dikaitkan dengan kredensyal untuk peran yang diasumsikan. IAM | Tidak ada |
SERVICE_REGION |
Variabel lingkungan ini menentukan alternatif Wilayah AWS yang digunakan AWS AppConfig Agen untuk memanggil AWS AppConfig layanan. Jika dibiarkan tidak terdefinisi, agen mencoba menentukan Wilayah saat ini. Jika tidak bisa, agen gagal untuk memulai. | Tidak ada |
|
Variabel lingkungan ini mengonfigurasi AWS AppConfig Agen untuk menunggu hingga manifes diproses sebelum menyelesaikan startup. |
true |
Mengambil data konfigurasi
Anda dapat mengambil data konfigurasi dari AWS AppConfig Agen dengan menggunakan panggilan HTTP localhost. Contoh berikut digunakan curl
dengan HTTP klien. Anda dapat menghubungi agen menggunakan HTTP klien yang tersedia yang didukung oleh bahasa aplikasi Anda atau pustaka yang tersedia.
catatan
Untuk mengambil data konfigurasi jika aplikasi Anda menggunakan garis miring maju, misalnya “test-backend/test-service”, Anda harus menggunakan encoding. URL
Untuk mengambil konten lengkap dari konfigurasi yang diterapkan
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
"
Untuk mengambil bendera tunggal dan atributnya dari AWS AppConfig
konfigurasi tipe Feature Flag
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name
"
Untuk mengakses beberapa flag dan atributnya dari AWS AppConfig
konfigurasi tipe Feature Flag
$ curl "http://localhost:2772/applications/
application_name
/environments/environment_name
/configurations/configuration_name
?flag=flag_name_one
&flag=flag_name_two
"