Я хотел бы знать, есть ли способ распечатать информацию во время работы модуля - прежде всего как средство продемонстрировать, что процесс работает и не висел. В частности, я пытаюсь получить обратную связь во время выполнения модуля cloudformation. Я попытался изменить исходный код (Python), чтобы включить следующее:
def debug(msg):
print json.dumps({
"DEBUG" : msg
})
...
debug("The stack operation is still working...")
Что это, конечно, хранит весь этот вывод и только распечатывает все это после завершения работы модуля. Поэтому для особо больших шаблонов облаков это означает, что я жду около 5 минут или около того, а затем внезапно вижу, что на экране появляется большое количество текста. Я ожидал увидеть, что "Операция стека все еще работает..." печатается каждые х секунд.
Казалось бы, что Асинхронные действия и опрос - это то, что я ищу... но это тоже не сработало. Вся задача "Запустить CloudFormation для {{stackname}}" была полностью пропущена. См. Ниже соответствующий фрагмент (YAML) из моей пьесы:
- name: Launch CloudFormation for {{ stackname }}
cloudformation: >
stack_name="{{ stackname }}" state=present
region="{{ region }}" disable_rollback=true
template="{{ template }}"
register: cloud
args:
template_parameters:
KeyName: "{{ keyName }}"
Region: "{{ region }}"
SecurityGroup: "{{ securityGroup }}"
BootStrapper: "{{ bootStrapper }}"
BootStrapCommand: "powershell.exe -executionpolicy unrestricted -File C:\\{{ bootStrapper }} {{ region }}"
S3Bucket: "{{ s3Bucket }}"
async: 3600
poll: 30
Это говорит мне, что async предназначен для типичных команд оболочки, а не для сложных модулей, таких как cloudformation. ИЛИ. Возможно, я сделал что-то неправильно.
Может ли кто-нибудь пролить свет на эту ситуацию? Опять же, для больших задач облачной обработки, которые занимают некоторое время, я хотел бы, чтобы некоторые периодические указания о том, что задача все еще работает, а не висит. Я ценю помощь!