Tutorial Alur Kerja Berlangganan Bagian 1: Menggunakan Amazon SWF denganAWS SDK for Ruby - Amazon Simple Workflow Service

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

Tutorial Alur Kerja Berlangganan Bagian 1: Menggunakan Amazon SWF denganAWS SDK for Ruby

Termasuk AWS SDK for Ruby

Mulailah dengan membuat file bernama utils.rb. Kode dalam file ini akan memperoleh, atau membuat jika perlu, domain Amazon SWF yang digunakan oleh kode alur kerja dan aktivitas dan akan menyediakan tempat untuk meletakkan kode yang umum untuk semua kelas kita.

Pertama, kita perlu menyertakan pustaka aws-sdk-v1 dalam kode kita, sehingga kita dapat menggunakan fitur yang disediakan oleh SDK for Ruby.

require 'aws-sdk-v1'

Proses ini memberi kami akses ke namespace AWS, yang menyediakan kemampuan untuk mengatur nilai-nilai terkait sesi global, seperti kredensial dan wilayah AWS, dan juga menyediakan akses ke API layanan AWS.

Mengonfigurasi AWS Session

Kami akan mengkonfigurasi AWS Session dengan mengatur kredensial AWS kami (yang diperlukan untuk mengakses layananAWS) dan wilayah AWS untuk digunakan.

Ada beberapa cara untuk mengatur kredensial AWS di AWS SDK for Ruby: dengan mengaturnya di variabel lingkungan (AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY) atau dengan mengaturnya dengan AWS.config. Kami akan menggunakan metode terakhir, yaitu memuatnya dari file konfigurasi YAML, disebut aws-config.txt, yang terlihat seperti ini.

--- :access_key_id: REPLACE_WITH_ACCESS_KEY_ID :secret_access_key: REPLACE_WITH_SECRET_ACCESS_KEY

Buat file ini sekarang, ganti string yang diawali dengan REPLACE_WITH_ dengan AWS access key ID dan secret access key. Selengkapnya tentang AWS access keys, lihat Bagaimana Cara Mendapatkan Kredensial Keamanan? di Referensi Umum Amazon Web Services.

Kita juga perlu mengatur wilayah AWS untuk digunakan. Karena kami akan menggunakan Short Message Service (SMS) (Layanan Pesan Singkat) untuk mengirim pesan teks ke ponsel pengguna dengan Amazon SNS, kami perlu memastikan bahwa kami menggunakan wilayah yang didukung oleh Amazon SNS. Lihat Wilayah dan Negara yang Didukung di Panduan Developer Amazon Simple Notification Service.

catatan

Jika Anda tidak memiliki akses ke us-east-1, atau tidak tertarik untuk menjalankan demo dengan mengaktifkan olahpesan SMS, jangan ragu untuk menggunakan wilayah mana pun yang Anda inginkan. Anda dapat menghapus fungsionalitas SMS dari sampel dan menggunakan email sebagai satu-satunya endpoint untuk berlangganan topik Amazon SNS.

Untuk informasi selengkapnya tentang mengirim pesan SMS, lihat Mengirim dan Menerima Notifikasi SMS Menggunakan Amazon SNS di Panduan Developer Amazon Simple Notification Service.

Sekarang kita akan menambahkan beberapa kode ke utils.rb untuk memuat file konfigurasi, mendapatkan kredensial pengguna, lalu memberikan kredensial dan wilayah ke AWS.config.

require 'yaml' # Load the user's credentials from a file, if it exists. begin config_file = File.open('aws-config.txt') { |f| f.read } rescue puts "No config file! Hope you set your AWS credentials in the environment..." end if config_file.nil? options = { } else options = YAML.load(config_file) end # SMS Messaging (which can be used by Amazon SNS) is available only in the # `us-east-1` region. $SMS_REGION = 'us-east-1' options[:region] = $SMS_REGION # Now, set the options AWS.config = options

Mendaftarkan Domain Amazon SWF

Untuk menggunakan Amazon SWF, Anda perlu mengatur domain: entitas bernama yang akan menampung alur kerja dan aktivitas Anda. Anda dapat memiliki banyak domain Amazon SWF terdaftar, tetapi mereka semua harus memiliki nama unik dalam AndaAWSakun, dan alur kerja tidak dapat berinteraksi di seluruh domain: Semua alur kerja dan aktivitas untuk aplikasi Anda harus berada dalam domain yang sama untuk berinteraksi satu sama lain.

Karena kita akan menggunakan domain yang sama di seluruh aplikasi kita, kita akan membuat fungsi di utils.rb yang disebut init_domain, yang akan mengambil domain Amazon SWF bernama SWFSampleDomain.

Setelah Anda mendaftarkan domain, Anda dapat menggunakannya kembali untuk eksekusi alur kerja yang banyak. Namun, itu adalah kesalahan untuk mencoba mendaftarkan domain yang sudah ada, jadi kode kami akan memeriksa terlebih dahulu untuk melihat apakah domain itu ada, dan akan menggunakan domain yang ada jika dapat ditemukan. Jika domain tidak dapat ditemukan, kami akan membuatnya.

Untuk bekerja dengan domain Amazon SWF di SDK for Ruby, gunakan AWS::SimpleWorkflow.domains, yang mengembalikan DomainCollection yang dapat digunakan untuk menghitung dan mendaftarkan domain:

Berikut adalah kode untuk init_domain di utils.rb.

# Registers the domain that the workflow will run in. def init_domain domain_name = 'SWFSampleDomain' domain = nil swf = AWS::SimpleWorkflow.new # First, check to see if the domain already exists and is registered. swf.domains.registered.each do | d | if(d.name == domain_name) domain = d break end end if domain.nil? # Register the domain for one day. domain = swf.domains.create( domain_name, 1, { :description => "#{domain_name} domain" }) end return domain end

Langkah selanjutnya

Selanjutnya, Anda akan membuat alur kerja dan kode starter di Tutorial Alur Kerja Langganan Bagian 2: Menerapkan Alur Kerja.