Я считаю, что запуск "amazon-cloudwatch-agent-ctl" из ваших пользовательских данных, вероятно, то, что они хотят, чтобы вы делали. Они нигде не сообщают вам об этом, не то, что я нашел, но это должно создать TOML (если вы убедитесь, что он еще не существует), а затем запустить / перезапустить службу. Но у «start» есть часть загрузки, и я не был уверен, что там, учитывая, что мой JSON-файл является локальным.
Итак, я сделал что-то другое, но идея та же:
- Установите сервис AmazonCloudWatchAgent на ручной запуск
- Запустите приведенный ниже пакетный файл при загрузке с помощью Task Scheduler
Приведенный ниже пакетный файл создаст TOML, а затем запустит службу:
SET CLOUD_WATCH="C:\Program Files\Amazon\AmazonCloudWatchAgent"
SET CLOUD_WATCH_DATA=C:\ProgramData\Amazon\AmazonCloudWatchAgent
SET JSON=%CLOUD_WATCH_DATA%\amazon-cloudwatch-agent.json
SET TOML=%CLOUD_WATCH_DATA%\amazon-cloudwatch-agent.toml
SET CONFIG=%CLOUD_WATCH_DATA%\common-config.toml
SET TRANSLATOR=%CLOUD_WATCH%\config-translator.exe
rem Translate JSON into TOML
%TRANSLATOR% --input %JSON% --output %TOML% --mode ec2 --config %CONFIG%
rem Start the service
sc start AmazonCloudWatchAgent
Кажется, это работает для меня. Также я проверяю, чтобы в моем AMI были пустые файлы журналов, как в журнале агента CloudWatch, так и в моих собственных журналах. Так что каждый экземпляр начинается заново.
Но я мог бы в какой-то момент переключиться на запуск пользовательских данных "amazon-cloudwatch-agent-ctl start", если смогу заставить его работать.