Menggunakan AWS AppConfig Agen dengan Amazon ECS dan Amazon EKS - AWS AppConfig

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.

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)
  1. Buka konsol di https://console.aws.amazon.com/ecs/v2.

  2. Di panel navigasi, pilih Definisi tugas.

  3. Pilih definisi tugas untuk aplikasi Anda, lalu pilih revisi terbaru.

  4. Pilih Buat revisi baru, Buat revisi baru.

  5. Pilih Tambahkan lebih banyak wadah.

  6. Untuk Nama, masukkan nama unik untuk wadah AWS AppConfig Agen.

  7. Untuk Gambar URI, masukkan: public.ecr.aws/aws-appconfig/aws-appconfig-agent:2.x

  8. Untuk wadah Essential, pilih Ya.

  9. Di bagian Pemetaan port, pilih Tambahkan pemetaan port.

  10. Untuk port Kontainer, masukkan2772.

    catatan

    AWS AppConfig Agen berjalan pada port 2772, secara default. Anda dapat menentukan port yang berbeda.

  11. Pilih Buat. Amazon ECS membuat revisi kontainer baru dan menampilkan detailnya.

  12. Di panel navigasi, pilih Cluster, lalu pilih cluster aplikasi Anda dalam daftar.

  13. Pada tab Layanan, pilih layanan untuk aplikasi Anda.

  14. Pilih Perbarui.

  15. Di bawah konfigurasi Deployment, untuk Revisi, pilih revisi terbaru.

  16. Pilih Perbarui. Amazon ECS menerapkan definisi tugas terbaru.

  17. Setelah penerapan selesai, Anda dapat memverifikasi bahwa AWS AppConfig Agen berjalan di tab Konfigurasi dan tugas. Pada tab Tugas, pilih tugas yang sedang berjalan.

  18. Di bagian Kontainer, verifikasi bahwa kontainer AWS AppConfig Agen terdaftar.

  19. 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)
  1. 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
  2. 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: IfNotPresent
    catatan

    Perhatikan informasi berikut.

  3. Jalankan kubectl perintah berikut untuk menerapkan perubahan ke cluster Anda. Ganti my-deployment dengan nama manifes penerapan Anda.

    kubectl apply -f my-deployment.yml
  4. 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-agent my-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

ACCESS_TOKEN

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. Bearer Inilah contohnya.

GET /applications/my_app/... Host: localhost:2772 Authorization: Bearer <token value>
Tidak ada

BACKUP_DIRECTORY

Variabel lingkungan ini memungkinkan AWS AppConfig Agen untuk menyimpan cadangan dari setiap konfigurasi yang diambil ke direktori yang ditentukan.

penting

Konfigurasi 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

HTTP_PORT

Variabel lingkungan ini menentukan port di mana HTTP server untuk agen berjalan.

2772

LOG_LEVEL

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:debug,info,warn,error, dannone. Debugmencakup informasi terperinci, termasuk informasi waktu, tentang agen.

info

LOG_PATH

Lokasi disk tempat log ditulis. Jika tidak ditentukan, log ditulis ke stderr.

Tidak ada

MANIFEST

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:

  • "app:env:manifest-config"

  • "file:/fully/qualified/path/to/manifest.json"

Untuk informasi lebih lanjut tentang fitur ini, lihat Menggunakan manifes untuk mengaktifkan fitur pengambilan tambahan.

true

MAX_CONNECTIONS

Variabel lingkungan ini mengonfigurasi jumlah maksimum koneksi yang digunakan agen untuk mengambil konfigurasi dari. AWS AppConfig

3

POLL_INTERVAL

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

PREFETCH_LIST

Variabel lingkungan ini menentukan data konfigurasi permintaan agen AWS AppConfig segera setelah dimulai.

Tidak ada

PRELOAD_BACKUPS

Jika disetel ketrue, AWS AppConfig Agen memuat cadangan konfigurasi yang ditemukan di memori BACKUP_DIRECTORY ke dalam dan segera memeriksa untuk melihat apakah ada versi yang lebih baru dari layanan. Jika disetel kefalse, AWS AppConfig Agen hanya memuat konten dari cadangan konfigurasi jika tidak dapat mengambil data konfigurasi dari layanan, misalnya jika ada masalah dengan jaringan Anda.

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.
"header: value"
Tidak ada
PROXY_URL Variabel lingkungan ini menentukan proxy yang URL akan digunakan untuk koneksi dari agen ke AWS layanan, termasuk AWS AppConfig. HTTPSdan HTTP URLs didukung. Tidak ada

REQUEST_TIMEOUT

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

WAIT_ON_MANIFEST

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"