我不是廚師的專家。我正在嘗試在 AWS 上部署網路基礎架構。當我使用 Knife 執行上傳到 Chef Server 的食譜時,會向 AWS 發出大量 API 請求來配置基礎設施,顯然在如此短的時間內請求太多,以至於 AWS 阻止了這些請求,最終發生了此故障:
ubuntu@ip-172-66-250-88:~/chef$ knife deployment resize -E core_1 -V
[...]
INFO: Creating security groups...
INFO: Adding rule {:ip_protocol=>:tcp, :min=>7000, :max=>7000, :group=>"sg-04463cd014cc1562c"} to mme-pgw
INFO: Adding rule {:ip_protocol=>:tcp, :min=>9160, :max=>9160, :group=>"sg-04463cd014cc1562c"} to mme-enb
[...]
ERROR: Fog::Compute::AWS::Error: RequestLimitExceeded => Request limit exceeded.
我研究過(https://github.com/chef/knife-ec2/issues/453),據我了解,一個潛在的解決方案只是減慢隨後完成的請求的速度,例如,在 Ruby 腳本中放置 SLEEP 以在請求之間暫停幾秒鐘。理解,簡單,很棒:
sleep 3
……而且不知道該把它放在哪裡。
有誰知道我必須將該程式碼放置在哪個檔案或函數中?
也許在“ec2_server_create_spec.rb”或其他地方?裡面有什麼功能?
之後我是否必須“編譯”腳本?
我嘗試了一切我認為合理的事情,但我失敗了。關於修改什麼有什麼建議嗎?
答案1
我終於找到了可以放置 SLEEP 來降低請求速度的檔案和腳本。有效。
它是特定於我的部署腳本的,因此我無法共享確切的位置,因為每種情況都不同。