2016-12-09 49 views
0

我使用this鏈接作爲啓動實例的教程。以下是我的代碼,AWS SDK是否提供基於事件的體系結構?

instance = resource.create_instances.first 
sleep 10 until instance.state.name == "running" 
//Do something once instance is up and running 

上面的代碼啓動一個實例並等待循環,直到實例狀態正在運行。一旦它運行,我會對它做一些處理。正如你所看到的,我正在等待實例做好準備,然後才能進行處理。這是一個壞主意,因爲我每10秒輪詢一次AWS(輪詢模式)。

AWS SDK是否有內置的東西,當實例改變它的狀態時會觸發一個事件(類似於推模式)?如果是的話,你能分享一下嗎?

回答

1

SDK確實提供了一個功能,但我不確定它使用的是什麼模型(推或拉)。這可能是拉,但我不確定。不管模型如何,這是推薦的等待方式。

begin 
    instance.wait_until(max_attempts:10, delay:10) {|instance| 
    instance.state.name == 'running' 
    } 
rescue Aws::Waiters::Errors::WaiterFailed 
    # resource did not enter the desired state in time 
end 

更多細節在這裏: http://docs.aws.amazon.com/sdkforruby/api/Aws/Resources/Resource.html#wait_until-instance_method

+0

真棒.. +1讓我知道'wait_until'事件。這是拉模型:| – Abhishek

相關問題