Menggunakan SDK for Ruby pada Instans Windows AWS OpsWorks 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 pada Instans Windows AWS OpsWorks 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 Dukungan 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 RDP akses 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 AWS sumber daya, Anda harus menyediakannya dengan satu set AWS kredensyal dengan izin yang sesuai. Untuk resep, pilihan terbaik Anda untuk memberikan AWS kredensi adalah dengan menggunakan peran AWS Identity and Access Management (IAM). IAMPeran bekerja seperti IAM pengguna, ia memiliki kebijakan terlampir yang memberikan izin untuk menggunakan berbagai AWS layanan. Namun, Anda menetapkan peran ke instans Amazon Elastic Compute Cloud EC2 (Amazon), bukan 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 IAM peran. Contoh ini mengambil pendekatan paling sederhana, yaitu menggunakan EC2 peran Amazon 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 IAM identitas (konsol) di Panduan IAM Pengguna.

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 IAM instans 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 untuk Ruby v2.

Contoh menggunakan SDK untuk Ruby untuk men-download objek. Namun, AWS OpsWorks Stacks tidak menginstal ini SDK pada instance Windows, jadi bagian pertama dari 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 SDK kode Ruby v2 untuk diunduh myfile.txt dari bucket S3 yang diberi nama windows-cookbooks ke direktori instance. /chef windows-cookbooksUbah nama bucket 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 untuk Ruby, dan chef_gem sumber daya yang menginstal SDK belum dijalankan. Kode dalam ruby_block sumber daya mengeksekusi ketika sumber daya mengeksekusi, dan itu terjadi setelah chef_gem sumber daya telah menginstal SDK untuk 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.

    • Repositori URL — Arsip buku masak URL 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 isic:\chef.