

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

# Melewati Data ke Aplikasi
<a name="apps-data"></a>

**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 Dukungan Tim di [AWS re:Post](https://repost.aws/) atau melalui [AWS Dukungan](https://aws.amazon.com/support) Premium.

Hal ini sering berguna untuk meneruskan data seperti pasangan kunci-nilai ke aplikasi di server. Untuk melakukannya, gunakan [JSON khusus](workingstacks-json.md) untuk menambahkan data ke tumpukan. 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, lihat[Menggunakan JSON Kustom](workingstacks-json.md).

```
{
  "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` dan`app2`, 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, lihat[Pengaturan](workingapps-creating.md#workingapps-creating-settings).

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
```

`deploy`Atribut 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](attributes-json-deploy.md).

Untuk setiap aplikasi di`deploy`, resepnya melakukan hal berikut:

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

   Untuk informasi selengkapnya tentang cara OpsWorks Stacks menginstal aplikasi, lihat. [Menyebarkan Resep](create-custom-deploy.md)

1. 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](workingapps-creating.md).

1. Tambahkan JSON khusus dengan data aplikasi ke `deploy` atribut, seperti yang dijelaskan sebelumnya. Untuk informasi selengkapnya tentang cara menambahkan JSON kustom ke tumpukan, lihat[Menggunakan JSON Kustom](workingstacks-json.md).

1. 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, lihat[Buku Masak dan Resep](workingcookbook.md). 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.

1. Instal buku masak di tumpukan Anda. Untuk informasi selengkapnya, lihat [Memasang Buku Masak Kustom](workingcookbook-installingcustom-enable.md).

1. Tetapkan resep ke peristiwa siklus hidup Deploy layer server aplikasi. OpsWorks Tumpukan kemudian akan menjalankan resep pada setiap instance baru, setelah di-boot. Untuk informasi selengkapnya, lihat [Melaksanakan Resep](workingcookbook-executing.md).

1. 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, 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](http://www.sinatrarb.com/) 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.

1. Terapkan aplikasi lagi, yang mengarahkan 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.