Menggunakan SDK for Ruby AWS OpsWorks pada Instans Windows Stacks - AWS OpsWorks

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

Menggunakan SDK for Ruby AWS OpsWorks pada Instans Windows Stacks

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.

catatan

Contoh ini mengasumsikan bahwa Anda telah melakukan Menjalankan Resep pada Instance Windows contoh. Jika tidak, Anda harus melakukan contoh itu terlebih dahulu. Secara khusus, ini menjelaskan cara mengaktifkan akses RDP ke instance Anda.

Konten yang dikirimkan ke bucket Amazon S3 mungkin berisi konten pelanggan. Untuk informasi selengkapnya tentang menghapus data sensitif, lihat Bagaimana Cara Mengosongkan Bucket S3? atau Bagaimana Saya Menghapus Bucket S3? .

Topik ini menjelaskan cara menggunakan instans Windows AWS OpsWorks Stacks untuk mengunduh file dari bucket S3. AWS SDK for Ruby

Jika aplikasi Ruby perlu mengakses sumber daya AWS, Anda harus menyediakannya dengan satu set kredensi AWS dengan izin yang sesuai. Untuk resep, opsi terbaik Anda untuk memberikan kredensyal AWS adalah dengan menggunakan peran AWS Identity and Access Management (IAM). Peran IAM bekerja seperti pengguna IAM, ia memiliki kebijakan terlampir yang memberikan izin untuk menggunakan berbagai layanan. AWS Namun, Anda menetapkan peran ke instans Amazon Elastic Compute Cloud (Amazon EC2) alih-alih ke individu. Aplikasi yang berjalan pada instance itu kemudian dapat memperoleh izin yang diberikan oleh kebijakan terlampir. Dengan peran, kredensyal tidak pernah muncul dalam kode Anda, bahkan secara tidak langsung.

Langkah pertama adalah mengatur peran IAM. Contoh ini mengambil pendekatan paling sederhana, yaitu menggunakan peran Amazon EC2 yang dibuat AWS OpsWorks Stacks saat Anda membuat tumpukan pertama Anda. Itu dinamaiaws-opsworks-ec2-role. Namun, AWS OpsWorks Stacks tidak melampirkan kebijakan ke peran itu, jadi secara default tidak memberikan izin.

Anda harus melampirkan AmazonS3ReadOnlyAccess kebijakan ke aws-opsworks-ec2-role peran untuk memberikan izin yang sesuai. Untuk informasi selengkapnya tentang cara melampirkan kebijakan ke peran, lihat Menambahkan izin identitas (konsol) IAM di Panduan Pengguna IAM.

Anda menentukan peran saat membuat atau memperbarui tumpukan. Siapkan tumpukan dengan lapisan khusus, seperti yang dijelaskan dalamMenjalankan Resep pada Instance Windows, dengan satu tambahan. Pada halaman Add Stack, konfirmasikan bahwa profil instans IAM Default diatur ke aws-opsworks-ec2-role. AWS OpsWorks Tumpukan kemudian akan menetapkan peran itu ke semua instance tumpukan.

Prosedur untuk menyiapkan buku masak mirip dengan yang digunakan olehMenjalankan Resep pada Instance Linux. Berikut ini adalah ringkasan singkat; lihat contoh itu untuk detailnya.

Untuk mengatur buku masak
  1. Buat direktori bernama s3bucket_ops dan navigasikan ke sana.

  2. Buat metadata.rb file dengan konten berikut dan simpan kes3bucket_ops.

    name "s3download" version "0.1.0"
  3. Buat recipes direktori di dalamnyas3download.

  4. Buat default.rb file dengan resep berikut, dan simpan ke recipes direktori. Ganti windows-cookbooks dengan nama bucket S3 yang akan Anda gunakan untuk menyimpan file yang akan diunduh.

    Chef::Log.info("******Downloading an object from S3******") chef_gem "aws-sdk-s3" do compile_time false action :install end ruby_block "download-object" do block do require 'aws-sdk-s3' Aws.use_bundled_cert! s3_client = Aws::S3::Client.new(region:'us-west-2') s3_client.get_object(bucket: 'windows-cookbooks', key: 'myfile.txt', response_target: '/chef/myfile.txt') end action :run end
  5. Buat .zip arsip s3download dan unggah file ke bucket S3. Jadikan file publik dan rekam URL untuk digunakan nanti.

  6. Buat file teks bernama myfile.txt dan unggah ke bucket S3. Ini adalah file yang akan diunduh resep Anda, sehingga Anda dapat menggunakan ember yang nyaman.

Resepnya melakukan tugas-tugas berikut.

1: Instal SDK for Ruby v2.

Contoh menggunakan SDK for Ruby untuk men-download objek. Namun, AWS OpsWorks Stacks tidak menginstal SDK ini pada instance Windows, jadi bagian pertama resep menggunakan chef_gemsumber daya untuk menangani tugas itu. Anda menggunakan sumber daya ini untuk menginstal permata untuk digunakan oleh Chef, yang mencakup resep.

2: Unduh file.

Bagian ketiga dari resep menggunakan ruby_blocksumber daya untuk menjalankan kode myfile.txt SDK for Ruby v2 untuk mengunduh dari windows-cookbooks bucket S3 yang diberi nama ke direktori instans. /chef Ubah windows-cookbooks ke nama ember yang berisimyfile.txt.

catatan

Resep adalah aplikasi Ruby, jadi Anda dapat memasukkan kode Ruby ke dalam badan resep; itu tidak harus ada di sumber daya. ruby_block Namun, Chef mengeksekusi kode Ruby di tubuh resep terlebih dahulu, diikuti oleh setiap sumber daya, secara berurutan. Untuk contoh ini, jika Anda meletakkan kode unduhan di badan resep, itu akan gagal karena tergantung pada SDK for Ruby, chef_gem dan sumber daya yang menginstal SDK belum dieksekusi. Kode dalam ruby_block sumber daya dijalankan ketika sumber daya dijalankan, dan itu terjadi setelah chef_gem sumber daya menginstal SDK for Ruby.

Buat tumpukan untuk contoh ini sebagai berikut. Anda juga dapat menggunakan tumpukan Windows yang ada. Cukup perbarui buku masak, seperti yang dijelaskan nanti.

Buat tumpukan
  1. Buka konsol AWS OpsWorks Stacks dan pilih Add Stack. Tentukan pengaturan berikut, terima default untuk pengaturan lainnya, dan pilih Tambah Tumpukan.

    • Nama — S3Download

    • Wilayah - AS Barat (Oregon)

      Contoh ini akan bekerja di wilayah mana pun, tetapi kami sarankan menggunakan US West (Oregon) untuk tutorial.

    • Sistem operasi default - Microsoft Windows Server 2012 R2

  2. Pilih Tambahkan lapisan dan tambahkan lapisan khusus ke tumpukan dengan pengaturan berikut.

    • Nama — S3Download

    • Nama pendek — s3download

  3. Tambahkan instance 24/7 dengan pengaturan default ke layer S3Download dan mulai.

Anda sekarang dapat menginstal dan menjalankan resep

Untuk menjalankan resep
  1. Edit tumpukan untuk mengaktifkan buku masak khusus, dan tentukan pengaturan berikut.

    • Jenis repositori - Arsip S3.

    • URL Repositori — URL arsip buku masak yang Anda rekam sebelumnya.

    Terima nilai default untuk pengaturan lain dan pilih Simpan untuk memperbarui konfigurasi tumpukan.

  2. Jalankan perintah tumpukan Update Custom Cookbooks, yang menginstal versi terbaru dari buku masak kustom Anda pada instance online stack. Jika versi sebelumnya dari buku masak Anda ada, perintah ini menimpanya.

  3. Jalankan resep dengan menjalankan perintah tumpukan Execute Recipes dengan Recipes untuk mengeksekusi set kes3download::default. Perintah ini memulai menjalankan Chef, dengan daftar run yang terdiri dari. s3download::default

    catatan

    Anda biasanya memiliki AWS OpsWorks Stacks menjalankan resep Anda secara otomatis dengan menetapkannya ke acara siklus hidup yang sesuai. Anda juga dapat menjalankan resep tersebut dengan memicu acara secara manual. Anda dapat menggunakan perintah stack untuk memicu peristiwa Setup dan Configure, dan perintah deploy untuk memicu peristiwa Deploy dan Undeploy.

Setelah resep berjalan dengan sukses, Anda dapat memverifikasinya.

Untuk memverifikasi s3download
  1. Langkah pertama adalah memeriksa log Chef. Tumpukan Anda harus memiliki satu instance bernama s3download1. Pada halaman Instans, pilih tampilkan di kolom Log instance untuk menampilkan log Chef. Gulir ke bawah untuk menemukan pesan log Anda di dekat bagian bawah.

    ... [2015-05-01T21:11:04+00:00] INFO: Loading cookbooks [s3download@0.0.0] [2015-05-01T21:11:04+00:00] INFO: Storing updated cookbooks/s3download/recipes/default.rb in the cache. [2015-05-01T21:11:04+00:00] INFO: ******Downloading an object from S3****** [2015-05-01T21:11:04+00:00] INFO: Processing chef_gem[aws-sdk] action install (s3download::default line 3) [2015-05-01T21:11:05+00:00] INFO: Processing ruby_block[download-object] action run (s3download::default line 8) ...
  2. Gunakan RDP untuk masuk ke instance dan memeriksa isi. c:\chef