Первым делом необходимо решить что означает "автоинкремент" .
Например, если эти экземпляры уже существуют:
тогда, очевидно, следующий экземпляр будет foo3
.
Но допустим, что экземпляр ранее был прерван из-за уменьшения нагрузки, и в настоящий момент запущены следующие экземпляры:
Тогда возникает вопрос, должен ли следующий экземпляр быть foo2
или foo4
.
Если ответ foo4
, то подумайте о ситуации, когда foo4
позднее завершается и запускается другой экземпляр. Должно ли это быть foo4
или foo5
(поскольку ранее было foo4
).
Это действительно сводится к , определяющему , почему вам нужно автоинкрементное имя .
Причины, как правило:
- Потребность в уникальном имени
- Потребность в понятном человеку имени
- Необходимость подсказки относительно порядка , в котором запускаются экземпляры
Если вам нужно уникальное имя , то ID экземпляра может удовлетворить эту потребность без необходимости в дополнительном имени.
Предположим, вы хотите использовать удобное для человека имя, и вы можете повторно использовать ранее использованные имена (например, если существуют foo1
и foo3
, тогда используйте foo2
далее). В таком случае вам потребуется что-то, что логически проверяет существующие экземпляры и находит первое неиспользуемое число .
Если, с другой стороны, вы никогда не хотели повторно использовать имена, вам понадобится какое-то место для хранения «текущего» числа , чтобы его можно было увеличивать для следующего экземпляра.
Затем, наконец, встает вопрос , как назначить автоинкрементное имя (это ваш первоначальный вопрос, но сначала важно понять и вышесказанное). Моя рекомендация будет:
- Добавьте некоторый код к каждому экземпляру, который запускается через Пользовательские данные , чтобы он запускался при запуске экземпляра (например, PowerShell)
- Код проверяет существующие экземпляры с помощью
describe-instances
или места, где ведется счет , затем присваивает себе следующий номер
- Затем код может вызвать
create-tags
для себя, добавив тег Name
с соответствующим именем