Langkah 2.5: Menerapkan Aplikasi - AWS OpsWorks

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

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.

Instalasi IIS 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 halaman beranda HTML statis,default.html, diC:\inetpub\wwwroot. Anda dapat dengan mudah memperluas pendekatan umum untuk menangani skenario yang lebih kompleks, seperti aplikasi ASP.NET.

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 IIS Anda. Anda dapat dengan mudah memperluas contoh ini ke aplikasi yang lebih kompleks.

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
  1. Buat direktori bernama iis-application di lokasi yang nyaman di workstation Anda.

  2. Tambahkan default.htm file iis-application dengan konten berikut.

    <!DOCTYPE html> <html> <head> <title>IIS Example</title> </head> <body> <h1>Hello World!</h1> </body> </html>
  3. 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 for Ruby AWS OpsWorks pada Instans Windows Stacks.

    • Anda dapat menyimpan aplikasi Anda di repositori yang sesuai.

      Anda biasanya mengunduh aplikasi dengan menggunakan API publik repositori. Contoh ini menggunakan Amazon S3 API. 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 SDK for Ruby v2 untuk mengunduh file. Namun, AWS OpsWorks Stacks tidak menginstal SDK ini pada instance Windows, jadi resep dimulai dengan chef_gemsumber daya, yang menangani tugas itu.

catatan

chef_gemSumber 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_blocksumber daya, yang menjalankan blok kode Ruby yang menggunakan SDK for Ruby untuk diunduh. 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 menggunakan SSL, jadi Anda memerlukan sertifikat yang sesuai untuk mengunduh objek dari bucket S3. SDK for Ruby v2 tidak menyertakan bundel sertifikat, jadi Anda harus menyediakannya dan mengonfigurasi SDK for Ruby 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 SDK for Ruby untuk menggunakan bundel sertifikat Git untuk SSL. Anda juga dapat menginstal bundel Anda sendiri dan mengonfigurasi SDK yang sesuai.

2: Ambil Data Repositori

Untuk mengunduh objek dari Amazon S3, Anda memerlukan wilayah AWS, 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. Atribut ini pada dasarnya adalah tabel hash yang berisi konfigurasi aplikasi, termasuk variabel lingkungan. Atribut aplikasi untuk aplikasi ini akan terlihat seperti berikut, dalam format JSON.

{ "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 sebagai other 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 mengunduh default.htm ke C:\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 for Ruby. Kode dalam ruby_block sumber daya dijalankan ketika sumber daya dijalankan, setelah sumber chef_gem daya menginstal SDK for 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
  1. Buat .zip arsipiis-cookbook, dan unggah ke bucket S3.

    Ini menimpa buku masak yang ada, tetapi URL-nya tetap sama, jadi Anda tidak perlu memperbarui konfigurasi tumpukan.

  2. Jika instans Anda tidak online, mulai ulang.

  3. Setelah instance online, pilih Stack di panel navigasi, lalu pilih Run Command.

  4. Untuk Command, pilih Perbarui Buku Masak Kustom. Perintah ini menginstal buku masak yang diperbarui pada instance.

  5. Pilih Perbarui Buku Masak Kustom. Perintah mungkin memakan waktu beberapa menit untuk menyelesaikannya.

Tambahkan Resep ke Layer IIS Kustom

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. Sebaliknya:

  • Untuk instance 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
  1. Pilih Layers di panel navigasi, lalu pilih Recipes di bawah Layer IISExample.

  2. Di bawah Custom Chef Recipes, tambahkan iis-cookbook::deploy ke kotak Deploy recipes dan pilih + untuk menambahkan resep ke layer.

  3. Pilih Simpan untuk menyimpan konfigurasi baru. Resep Deploy khusus sekarang harus disertakaniis-cookbook::deploy.

Tambahkan Aplikasi

Tugas terakhir adalah menambahkan aplikasi ke tumpukan untuk mewakili aplikasi Anda di lingkungan AWS OpsWorks Stacks. Aplikasi menyertakan metadata seperti nama tampilan aplikasi, dan data yang diperlukan untuk mengunduh aplikasi dari repositorinya.

Untuk menambahkan aplikasi ke tumpukan
  1. Pilih Aplikasi di panel navigasi, lalu pilih Tambahkan aplikasi.

  2. 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.

  3. 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 Arsip S3 dan menyediakan URL file. AWS OpsWorks Stacks menambahkan informasi, bersama dengan data opsional, seperti kredensil AWS Anda, ke atribut aplikasi. app_source Resep penerapan Anda harus mendapatkan URL dari atribut 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
  1. Pilih Aplikasi di panel navigasi, lalu pilih deploy di kolom Tindakan aplikasi.

  2. 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:

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 permintaan HTTP ke instance, dan Anda akan melihat sesuatu seperti berikut di browser Anda.