Melewati Data ke Aplikasi - AWS OpsWorks

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

Melewati Data ke Aplikasi

penting

AWS OpsWorks Stacks Layanan ini mencapai akhir masa pakai pada 26 Mei 2024 dan telah dinonaktifkan untuk pelanggan baru dan yang sudah ada. Kami sangat menyarankan pelanggan untuk memindahkan beban kerja mereka ke solusi lain sesegera mungkin. Jika Anda memiliki pertanyaan tentang migrasi, hubungi AWS Support Tim di AWS re:Post atau melalui AWS Dukungan Premium.

Hal ini sering berguna untuk meneruskan data seperti pasangan kunci-nilai ke aplikasi di server. Untuk melakukannya, gunakan JSON khusus untuk menambahkan data ke tumpukan. AWS OpsWorks Stacks menambahkan data ke objek node setiap instance untuk setiap peristiwa siklus hidup.

Perhatikan, bagaimanapun, bahwa meskipun resep bisa mendapatkan data JSON kustom dari objek node dengan menggunakan atribut Chef, aplikasi tidak bisa. Salah satu pendekatan untuk mendapatkan data JSON kustom ke satu atau lebih aplikasi adalah dengan menerapkan resep khusus yang mengekstrak data dari node objek dan menulisnya ke file yang dapat dibaca aplikasi. Contoh dalam topik ini menunjukkan cara menulis data ke file YAMG, tetapi Anda dapat menggunakan pendekatan dasar yang sama untuk format lain, seperti JSON atau XHTML.

Untuk meneruskan data nilai kunci ke instance tumpukan, tambahkan JSON khusus seperti berikut ini ke tumpukan. Untuk informasi selengkapnya tentang cara menambahkan JSON kustom ke tumpukan, lihatMenggunakan JSON Kustom.

{ "my_app_data": { "app1": { "key1": "value1", "key2": "value2", "key3": "value3" }, "app2": { "key1": "value1", "key2": "value2", "key3": "value3" } } }

Contohnya mengasumsikan bahwa Anda memiliki dua aplikasi yang nama pendeknya app1 danapp2, masing-masing memiliki tiga nilai data. Resep yang menyertainya mengasumsikan bahwa Anda menggunakan nama pendek aplikasi untuk mengidentifikasi data terkait; nama lainnya bersifat arbitrer. Untuk informasi selengkapnya tentang nama pendek aplikasi, lihatPengaturan.

Resep dalam contoh berikut menunjukkan cara mengekstrak data untuk setiap aplikasi dari deploy atribut dan memasukkannya ke dalam .yml file. Resepnya mengasumsikan bahwa JSON kustom Anda berisi data untuk setiap aplikasi.

node[:deploy].each do |app, deploy| file File.join(deploy[:deploy_to], 'shared', 'config', 'app_data.yml') do content YAML.dump(node[:my_app_data][app].to_hash) end end

deployAtribut berisi atribut untuk setiap aplikasi, dinamai dengan nama pendek aplikasi. Setiap atribut aplikasi berisi sekumpulan atribut yang mewakili berbagai informasi tentang aplikasi. Contoh ini menggunakan direktori penerapan aplikasi, yang diwakili oleh [:deploy][:app_short_name][:deploy_to] atribut. Untuk informasi selengkapnya tentang [:deploy], lihat menyebarkan Atribut.

Untuk setiap aplikasi dideploy, resepnya melakukan hal berikut:

  1. Membuat file bernama app_data.yml di shared/config subdirektori direktori aplikasi. [:deploy_to]

    Untuk informasi selengkapnya tentang cara AWS OpsWorks Stacks menginstal aplikasi, lihat. Menyebarkan Resep

  2. Mengonversi nilai JSON kustom aplikasi ke YAMAL dan menulis data yang diformat ke. app_data.yml

Untuk meneruskan data ke aplikasi
  1. Tambahkan aplikasi ke tumpukan dan catat nama pendeknya. Untuk informasi selengkapnya, lihat Menambahkan Aplikasi.

  2. Tambahkan JSON khusus dengan data aplikasi ke deploy atribut, seperti yang dijelaskan sebelumnya. Untuk informasi selengkapnya tentang cara menambahkan JSON kustom ke tumpukan, lihatMenggunakan JSON Kustom.

  3. Buat buku masak dan tambahkan resep ke dalamnya dengan kode berdasarkan contoh sebelumnya, dimodifikasi sesuai kebutuhan untuk nama atribut yang Anda gunakan di JSON kustom. Untuk informasi lebih lanjut tentang cara membuat buku masak dan resep, lihatBuku Masak dan Resep. Jika Anda sudah memiliki buku masak khusus untuk tumpukan ini, Anda juga dapat menambahkan resep ke buku masak yang ada, atau bahkan menambahkan kode ke resep Deploy yang ada.

  4. Instal buku masak di tumpukan Anda. Untuk informasi selengkapnya, lihat Memasang Buku Masak Kustom.

  5. Tetapkan resep ke peristiwa siklus hidup Deploy layer server aplikasi. AWS OpsWorks Tumpukan kemudian akan menjalankan resep pada setiap instance baru, setelah di-boot. Untuk informasi selengkapnya, lihat Melaksanakan Resep.

  6. Menerapkan aplikasi, yang juga menginstal konfigurasi tumpukan dan atribut penerapan yang sekarang berisi data Anda.

catatan

Jika file data harus ada sebelum aplikasi di-deploy, Anda juga dapat menetapkan resep ke event siklus hidup Setup layer, yang terjadi sekali, tepat setelah instance selesai booting. Namun, AWS OpsWorks Stacks belum membuat direktori penerapan, jadi resep Anda harus membuat direktori yang diperlukan secara eksplisit sebelum membuat file data. Contoh berikut secara eksplisit membuat /shared/config direktori aplikasi, dan kemudian membuat file data di direktori tersebut.

node[:deploy].each do |app, deploy| directory "#{deploy[:deploy_to]}/shared/config" do owner "deploy" group "www-data" mode 0774 recursive true action :create end file File.join(deploy[:deploy_to], 'shared', 'config', 'app_data.yml') do content YAML.dump(node[:my_app_data][app].to_hash) end end

Untuk memuat data, Anda dapat menggunakan sesuatu seperti kode Sinatra berikut:

#!/usr/bin/env ruby # encoding: UTF-8 require 'sinatra' require 'yaml' get '/' do YAML.load(File.read(File.join('..', '..', 'shared', 'config', 'app_data.yml'))) End

Anda dapat memperbarui nilai data aplikasi kapan saja dengan memperbarui JSON kustom, sebagai berikut.

Untuk memperbarui data aplikasi
  1. Edit JSON kustom untuk memperbarui nilai data.

  2. Terapkan aplikasi lagi, yang mengarahkan AWS OpsWorks Stacks untuk menjalankan resep Deploy pada instance tumpukan. Resep akan menggunakan atribut dari konfigurasi tumpukan yang diperbarui dan atribut penerapan, sehingga resep kustom Anda akan memperbarui file data dengan nilai saat ini.