Как устранить ошибку «Fog::Compute::AWS::Error: RequestLimitExceeded => Превышен лимит запросов» при выполнении кулинарной книги Chef

Как устранить ошибку «Fog::Compute::AWS::Error: RequestLimitExceeded => Превышен лимит запросов» при выполнении кулинарной книги Chef

Я не эксперт в Chef. Я пытаюсь развернуть сетевую инфраструктуру на AWS. Когда я запускаю книгу рецептов, которую я загрузил на свой сервер Chef с помощью knife, к 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), и я понимаю, что потенциальное решение — просто замедлить скорость запросов, выполняемых впоследствии, например, поместив SLEEP в скрипт Ruby, чтобы сделать паузу на несколько секунд между запросами. Понятно, просто, потрясающе:

sleep 3

...И понятия не имею, куда это пристроить.

Кто-нибудь знает, куда мне следует поместить этот код, в какой файл или функцию?

Может быть, на "ec2_server_create_spec.rb" или где-то еще? Внутри какой функции?

Нужно ли мне вообще потом «компилировать» скрипт?

Я попробовал все, что я считаю разумным со своей стороны, я потерпел неудачу. Есть предложения, что изменить?

решение1

Я наконец нашел файл и скрипт, где можно было бы использовать SLEEP для снижения скорости запросов. Это сработало.

Это было связано с моими сценариями развертывания, поэтому я не могу сказать, где именно, поскольку каждый случай индивидуален.

Связанный контент