Обычно при удалении стека секрет также должен быть удален; и CFN выполняет вышеупомянутое немедленное удаление. Это должно произойти, даже если секрет был запланирован для удаления вне стека CFN.
Если (после удаления вашего стека) секрет был создан другим стеком формирования облаков или тот же тест, запущенный в другом конвейере CI, заново создал секрет, вы можете увидеть эту ошибку. Кроме того, большинство систем AWS (включая Secrets Manager) в конечном итоге становятся согласованными, и вы можете увидеть задержку между удалением стека и фактическим удалением секрета. Если ваши тесты выполняются достаточно быстро или одно и то же секретное имя повторно используется в нескольких тестах, предыдущее удаление может не завершиться до следующего создания.
Мы столкнулись с похожими проблемами в наших стеках CI, и способ, которым мы работаем с ним, заключается в использовании генерируемого случайного имени для каждого теста. Например, вы можете передать случайный префикс стекам в качестве параметра и использовать его для построения имени (при условии, что в каждом тесте используется уникальный суффикс).
Кстати - вы можете проверить, был ли секрет запланирован для удаления или фактически отсутствует, запустив get-secret-value для секрета. Если он запланирован для удаления, вы увидите ошибку "... Вы не можете выполнить эту операцию с секретом, потому что он был удален", тогда как если секрет действительно удален, вы увидите "Диспетчер секретов не может найти указанное секрет». Если вы запланируете секрет для удаления, а затем удалите его с помощью --force-delete-без-восстановления, вы можете увидеть короткую задержку в несколько секунд между двумя состояниями.