Я хочу получить список стеков на основе заданного набора состояний.Мне известно о решении, использующем клиент boto3 для облачной информации, например, из документации :
response = client.list_stacks(
NextToken='string',
StackStatusFilter=[
'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|
'ROLLBACK_IN_PROGRESS'|'ROLLBACK_FAILED'|'ROLLBACK_COMPLETE'|
'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|
'UPDATE_IN_PROGRESS'|'UPDATE_COMPLETE_CLEANUP_IN_PROGRESS'|
'UPDATE_COMPLETE'|'UPDATE_ROLLBACK_IN_PROGRESS'|'UPDATE_ROLLBACK_FAILED'|
'UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS'|'UPDATE_ROLLBACK_COMPLETE'|
'REVIEW_IN_PROGRESS',
]
)
(примечание: я думаю, что |
должно быть ,
, нов любом случае)
Однако я понимаю, что «рекомендуемый» способ - использовать ресурсы boto3 для доступа к сервисам AWS.К сожалению, у ресурса облачной информации boto3 нет метода для составления списка и фильтрации стеков (см. документацию ).
Я бы хотел избежать зацикливания всех стеков и проверки каждого полученного объекта стека на предмет его статуса..
Единственный способ, который я нашел до сих пор, - это обойти доступ к клиенту ресурса, хотя он выглядит немного хакерским, и нет способа фильтрации, например, по имени стека.
cf = boto3.Session().resource('cloudformation')
cf.meta.client.list_stacks(StackStatusFilter=['ROLLBACK_COMPLETE'])
Вопрос : Есть идеи, как я мог получить что-то вроде list_stacks(StackStatusFilter=..)
для cf
, который является cloudformation.ServiceResource
объектом, который позволяет фильтровать статус и имя стека?