Я использую .NET SDK и пытаюсь пометить новый экземпляр сразу после его создания - CreateTags сразу после RunInstances.
В большинстве случаев это просто работает, но иногда я получаю сообщение об ошибке, что идентификатор экземпляра недействителен (после проверки в консоли или повторной попытки, он действителен).
Я понимаю, что с SQS, SDB и т. Д. Они «в конечном итоге согласованы», и может потребоваться повторить вызовы (хотя я считаю, что SDK сделает это за вас в любом случае) - но с общими вызовами для создания экземпляров я не думал это было необходимо. Более того, я не думаю, что это хорошая вещь; искать конкретное исключение и повторять попытки почти бесконечно, пока оно не заработает.
Если процесс создания экземпляра и его пометки необходимо ввести в распределенный рабочий процесс с избыточной централизованной системой для опроса и повторного запуска, я думаю, что это плохая ситуация!
Кажется, я не могу найти что-либо релевантное в документации по этому поводу. Я подумал, что если я вызову RunInstances и получу ответ с идентификатором экземпляра, этот идентификатор экземпляра должен быть немедленно действителен для тегирования.
Мои мысли о возможных решениях:
- Исправлена задержка в несколько секунд после RunInstances (плохая, произвольная задержка)
- Попробуйте немедленно, иначе задержите 5сек и повторите попытку до 'n' раз (ОК, но произвольно)
- Создание распределенного рабочего процесса для обработки любых связанных вызовов API, таких как эта, потребует, чтобы центральная избыточная ферма экземпляров EC2 была надежной (плохой, с большим перегрузом)
- Найдите другое объяснение, где я могу вызвать другой метод API или задать что-то в запросе для вызова, чтобы он работал
Кто-нибудь еще испытывал это, имел какие-либо знания в этой области и т. Д.?
(У меня есть ветка на форумах сообщества AWS, но пока ничего: https://forums.aws.amazon.com/thread.jspa?threadID=80489&tstart=0)