Как описано здесь https://aws.amazon.com/blogs/aws/new-amazon-ec2-feature-idempotent-instance-creation/ AWS CLI обеспечивает идемпотентность aws ec2 run-instances --cli-input-json
команда. К сожалению, нет документации о том, как генерируется клиентский токен.
Я обнаружил, что есть ClientToken
поле в aws ec2 describe-instances
результаты, но, конечно, вы все равно получите следующую ошибку, если попытаетесь ее использовать:
An error occurred (IdempotentParameterMismatch) when calling the RunInstances operation: Arguments on this idempotent request are inconsistent with arguments used in previous request(s).
Как получить токен для использования с --client-token
?
Вы придумали!
Ввод любой строки <64 символа будет работать. Вызов описания просто возвращает вам строку токена клиента, используемую для создания экземпляра.
Идея тогда в том, что вы справляетесь с подобными сбоями.
Предлагаю прочитать http://docs.aws.amazon.com/AWSEC2/latest/APIReference/Run_Instance_Idempotency.html для получения дополнительной информации об идемпотентности.
Прошло много времени с тех пор, как я кодировал это, но я считаю, что когда я это сделал, мои рабочие использовали идентификатор сообщения SQS в качестве токена клиента, поэтому, если мои рабочие терпят неудачу или sqs доставляются дважды, я не буду утечка экземпляров.