Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Langkah 2.5: Menerapkan Aplikasi
penting
Bagian AWS OpsWorks Stacks layanan 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: posting
IISInstalasi membuat C:\inetpub\wwwroot
direktori untuk kode aplikasi Anda dan file terkait. Langkah selanjutnya adalah menginstal aplikasi di direktori itu. Untuk contoh ini, Anda akan menginstal HTML halaman beranda statis,default.html
, diC:\inetpub\wwwroot
. Anda dapat dengan mudah memperluas pendekatan umum untuk menangani skenario yang lebih kompleks, sepertiASP. NETaplikasi.
Anda dapat memasukkan file aplikasi di buku masak Anda dan install.rb
menyalinnya. C:\inetpub\wwwroot
Untuk contoh cara melakukannya, lihat Contoh 6: Membuat File. Namun, pendekatan ini tidak terlalu fleksibel atau efisien, dan biasanya lebih baik untuk memisahkan pengembangan buku masak dari pengembangan aplikasi.
Solusi yang lebih disukai adalah menerapkan resep penyebaran terpisah yang mengambil kode aplikasi dan file terkait dari repositori — repositori apa pun yang Anda inginkan, bukan hanya repositori buku masak — dan menginstalnya di setiap instance server. IIS Pendekatan ini memisahkan pengembangan buku masak dari pengembangan aplikasi dan, ketika Anda perlu memperbarui aplikasi Anda, ini memungkinkan Anda untuk menjalankan resep penerapan lagi tanpa harus memperbarui buku masak Anda.
Topik ini menunjukkan cara menerapkan resep penyebaran sederhana yang disebarkan default.htm
ke server AndaIIS. Anda dapat dengan mudah memperluas contoh ini ke aplikasi yang lebih kompleks.
Topik
Buat Aplikasi dan Simpan di Repositori
Anda dapat menggunakan repositori apa pun yang Anda inginkan untuk aplikasi Anda. Untuk kesederhanaan, contoh ini disimpan default.htm
di bucket S3 publik.
Untuk membuat aplikasi
-
Buat direktori bernama
iis-application
di lokasi yang nyaman di workstation Anda. -
Tambahkan
default.htm
fileiis-application
dengan konten berikut.<!DOCTYPE html> <html> <head> <title>IIS Example</title> </head> <body> <h1>Hello World!</h1> </body> </html>
-
Buat bucket S3, unggah
default.htm
ke bucket, dan rekam URL untuk digunakan nanti. Untuk kesederhanaan, buat file publik.catatan
Ini adalah aplikasi yang sangat sederhana, tetapi Anda dapat memperluas prinsip-prinsip dasar untuk menangani aplikasi tingkat produksi.
-
Untuk aplikasi yang lebih kompleks dengan banyak file, biasanya lebih mudah untuk membuat arsip.zip
iis-application
dan mengunggahnya ke bucket S3 Anda.Anda kemudian dapat mengunduh file.zip dan mengekstrak konten ke direktori yang sesuai. Tidak perlu mengunduh banyak file, membuat struktur direktori, atau sebagainya.
-
Untuk aplikasi produksi, Anda mungkin ingin menyimpan file Anda secara pribadi. Untuk contoh cara mengunduh file resep dari bucket S3 pribadi, lihatMenggunakan SDK untuk Ruby pada AWS OpsWorks Tumpukan Instans Windows.
-
Anda dapat menyimpan aplikasi Anda di repositori yang sesuai.
Anda biasanya mengunduh aplikasi dengan menggunakan publik repositori. API Contoh ini menggunakan Amazon S3API. Jika, misalnya, Anda menyimpan aplikasi Anda GitHub, Anda dapat menggunakan GitHub API
.
-
Menerapkan Resep untuk Menyebarkan Aplikasi
Tambahkan resep bernama deploy.rb
ke iis-cookbook
recipes
direktori, dengan konten berikut.
chef_gem "aws-sdk-s3" do compile_time false action :install end ruby_block "download-object" do block do require 'aws-sdk-s3' #1 # Aws.config[:ssl_ca_bundle] = 'C:\ProgramData\Git\bin\curl-ca-bundle.crt' Aws.use_bundled_cert! #2 query = Chef::Search::Query.new app = query.search(:aws_opsworks_app, "type:other").first s3region = app[0][:environment][:S3REGION] s3bucket = app[0][:environment][:BUCKET] s3filename = app[0][:environment][:FILENAME] #3 s3_client = Aws::S3::Client.new(region: s3region) s3_client.get_object(bucket: s3bucket, key: s3filename, response_target: 'C:\inetpub\wwwroot\default.htm') end action :run end
Contoh ini menggunakan SDKRuby v2 untuk mengunduh file. Namun, AWS OpsWorks Stacks tidak menginstal ini SDK pada instance Windows, jadi resep dimulai dengan chef_gem
catatan
chef_gem
Sumber daya menginstal permata ke dalam versi Ruby khusus Chef, yang merupakan versi yang digunakan resep. Jika Anda ingin menginstal permata untuk versi Ruby seluruh sistem, gunakan sumber daya gem_package.
Sebagian besar resep adalah ruby_block
default.htm
Kode dalam ruby_block
dapat dibagi menjadi beberapa bagian berikut, yang sesuai dengan komentar bernomor dalam contoh kode.
- 1: Tentukan Bundel Sertifikat
-
Amazon S3 menggunakanSSL, jadi Anda memerlukan sertifikat yang sesuai untuk mengunduh objek dari bucket S3. SDKuntuk Ruby v2 tidak termasuk bundel sertifikat, jadi Anda harus menyediakan satu dan mengkonfigurasi Ruby SDK untuk menggunakannya. AWS OpsWorks Stacks tidak menginstal bundel sertifikat secara langsung, tetapi menginstal Git, yang mencakup bundel sertifikat (
curl-ca-bundle.crt
). Untuk kenyamanan, contoh ini mengonfigurasi Ruby SDK untuk menggunakan bundel sertifikat Git untuk. SSL Anda juga dapat menginstal bundel Anda sendiri dan mengkonfigurasi yang SDK sesuai. - 2: Ambil Data Repositori
-
Untuk mengunduh objek dari Amazon S3, Anda memerlukan AWS wilayah, nama bucket, dan nama kunci. Seperti yang dijelaskan nanti, contoh ini memberikan informasi ini dengan mengaitkan satu set variabel lingkungan dengan aplikasi. Saat Anda menerapkan aplikasi, AWS OpsWorks Stacks menambahkan satu set atribut ke objek node instance ini. Atribut ini pada dasarnya adalah tabel hash yang berisi konfigurasi aplikasi, termasuk variabel lingkungan. Atribut aplikasi untuk aplikasi ini akan terlihat seperti berikut ini, dalam JSON format.
{ "app_id": "8f71a9b5-de7f-451c-8505-3f35086e5bb3", "app_source": { "password": null, "revision": null, "ssh_key": null, "type": "other", "url": null, "user": null }, "attributes": { "auto_bundle_on_deploy": true, "aws_flow_ruby_settings": {}, "document_root": null, "rails_env": null }, "data_sources": [{"type": "None"}], "domains": ["iis_example_app"], "enable_ssl": false, "environment": { "S3REGION": "us-west-2", "BUCKET": "windows-example-app", "FILENAME": "default.htm" }, "name": "IIS-Example-App", "shortname": "iis_example_app", "ssl_configuration": { "certificate": null, "private_key": null, "chain": null }, "type": "other", "deploy": true }
Variabel lingkungan aplikasi disimpan dalam
[:environment]
atribut. Untuk mengambilnya, gunakan kueri penelusuran Chef untuk mengambil tabel hash aplikasi, yang berada di bawah node.aws_opsworks_app
Aplikasi ini akan didefinisikan sebagaiother
jenisnya, sehingga kueri mencari aplikasi jenis itu. Resepnya memanfaatkan fakta bahwa hanya ada satu aplikasi pada contoh ini, jadi tabel hash yang menarik adalah adilapp[0]
. Untuk kenyamanan, resep kemudian menetapkan wilayah, ember, dan nama file ke variabel.Untuk informasi selengkapnya tentang cara menggunakan pencarian Chef, lihat. Memperoleh Nilai Atribut dengan Pencarian Chef
- 3: Unduh file
-
Bagian ketiga dari resep membuat objek klien S3 dan menggunakan
get_object
metodenya untuk mengunduhdefault.htm
keC:\inetpub\wwwroot
direktori instance.
catatan
Resep adalah aplikasi Ruby, jadi kode Ruby tidak harus ada di file. ruby_block
Namun, kode di badan resep berjalan lebih dulu, diikuti oleh sumber daya, secara berurutan. Untuk contoh ini, jika Anda meletakkan kode unduhan di badan resep, itu akan gagal karena chef_gem
sumber daya belum menginstal SDK untuk Ruby. Kode dalam ruby_block
sumber daya mengeksekusi ketika sumber daya mengeksekusi, setelah chef_gem
sumber daya telah menginstal SDK untuk Ruby.
Perbarui Buku Masak Instance
AWS OpsWorks Stacks secara otomatis menginstal buku masak khusus pada instance baru. Namun, Anda bekerja dengan instance yang ada, jadi Anda harus memperbarui buku masak Anda secara manual.
Untuk memperbarui buku masak instans
-
Buat
.zip
arsipiis-cookbook
, dan unggah ke bucket S3.Ini menimpa buku masak yang ada, tetapi URL tetap sama, jadi Anda tidak perlu memperbarui konfigurasi tumpukan.
-
Jika instans Anda tidak online, mulai ulang.
-
Setelah instance online, pilih Stack di panel navigasi, lalu pilih Run Command.
-
Untuk Perintah, pilih Perbarui Buku Masak Kustom. Perintah ini menginstal buku masak yang diperbarui pada instance.
-
Pilih Perbarui Buku Masak Kustom. Perintah mungkin memakan waktu beberapa menit untuk menyelesaikannya.
Tambahkan Recipe ke Custom IIS Layer
Seperti halnyainstall.rb
, cara yang lebih disukai untuk menangani penerapan adalah dengan menetapkan deploy.rb
ke peristiwa siklus hidup yang sesuai. Anda biasanya menetapkan resep penyebaran ke acara Deploy, dan mereka disebut secara kolektif sebagai resep Deploy. Menetapkan resep ke acara Deploy tidak memicu peristiwa. Sebagai gantinya:
-
Untuk contoh baru, AWS OpsWorks Stacks secara otomatis menjalankan resep Deploy setelah resep Setup selesai, sehingga instance baru secara otomatis memiliki versi aplikasi saat ini.
-
Untuk instance online, Anda menggunakan perintah deploy untuk menginstal aplikasi baru atau yang diperbarui secara manual.
Perintah ini memicu peristiwa Deploy pada instance tumpukan, yang menjalankan resep Deploy.
Untuk menetapkan deploy.rb ke event Deploy layer
-
Pilih Layers di panel navigasi, dan kemudian pilih Resep di bawah Layer IISExample.
-
Di bawah Custom Chef Recipes, tambahkan
iis-cookbook::deploy
ke kotak Deploy recipes dan pilih + untuk menambahkan resep ke layer. -
Pilih Simpan untuk menyimpan konfigurasi baru. Resep Deploy kustom sekarang harus disertakan
iis-cookbook::deploy
.
Menambahkan Aplikasi
Tugas terakhir adalah menambahkan aplikasi ke tumpukan untuk mewakili aplikasi Anda di AWS OpsWorks Lingkungan tumpukan. Aplikasi menyertakan metadata seperti nama tampilan aplikasi, dan data yang diperlukan untuk mengunduh aplikasi dari repositorinya.
Untuk menambahkan aplikasi ke tumpukan
-
Pilih Aplikasi di panel navigasi, lalu pilih Tambahkan aplikasi.
-
Konfigurasikan aplikasi dengan pengaturan berikut.
-
Nama - I
IIS-Example-App
-
Jenis Repositori — Lainnya
-
Variabel Lingkungan - Tambahkan tiga variabel lingkungan berikut:
-
S3REGION
— Wilayah ember (dalam hal ini,us-west-1
). -
BUCKET
— Nama ember, sepertiwindows-example-app
. -
FILENAME
— Nama file:default.htm
.
-
-
-
Terima nilai default untuk setelan yang tersisa, lalu pilih Tambah Aplikasi untuk menambahkan aplikasi ke tumpukan.
catatan
Contoh ini menggunakan variabel lingkungan untuk menyediakan data unduhan. Pendekatan alternatif adalah dengan menggunakan jenis repositori S3 Archive dan menyediakan file. URL AWS OpsWorks Stacks menambahkan informasi, bersama dengan data opsional, seperti AWS kredensional Anda, ke atribut aplikasi. app_source
Resep penerapan Anda harus mendapatkan atribut URL dari aplikasi dan mengurainya untuk mengekstrak wilayah, nama bucket, dan nama file.
Terapkan Aplikasi dan Buka Aplikasi
AWS OpsWorks Stacks secara otomatis menyebarkan aplikasi ke instance baru, tetapi tidak ke instance online. Karena instance Anda sudah berjalan, Anda harus menerapkan aplikasi secara manual.
Untuk menyebarkan aplikasi
-
Pilih Aplikasi di panel navigasi, lalu pilih deploy di kolom Tindakan aplikasi.
-
Perintah harus diatur ke Deploy. Pilih Deploy di kanan bawah halaman Deploy App. Perintah mungkin memakan waktu beberapa menit untuk menyelesaikannya.
Setelah penerapan selesai, Anda kembali ke halaman Aplikasi. Indikator Status menunjukkan keberhasilan dalam warna hijau, dan nama aplikasi memiliki tanda centang hijau di sebelahnya untuk menunjukkan penerapan yang berhasil.
catatan
Aplikasi Windows selalu merupakan jenis aplikasi Lain, jadi menerapkan aplikasi melakukan hal berikut:
-
Menambahkan data aplikasi ke konfigurasi stack dan atribut deployment, seperti yang dijelaskan sebelumnya.
-
Memicu peristiwa Deploy pada instance tumpukan, yang menjalankan resep Deploy kustom Anda.
catatan
Untuk informasi selengkapnya tentang cara memecahkan masalah penerapan atau aplikasi yang gagal, lihat. Resep Debugging
Aplikasi ini sekarang diinstal. Anda dapat membukanya dengan memilih Instans di panel Navigasi, lalu memilih alamat IP publik instans. Ini mengirimkan HTTP permintaan ke instance, dan Anda akan melihat sesuatu seperti berikut di browser Anda.