У меня недавно была похожая проблема. На самом деле я пытался установить пакет-оболочку MSDeploy, который содержал несколько дочерних пакетов и команду runCommand для их установки.
Я обнаружил, что AWSDeploy не будет работать, если пакет MSDeploy, переданный в CloudFormation, сам не является пакетом iisApp. После расследования выясняется, что это происходит потому, что AWSDeploy выполняет сценарий MSDeploy с параметром -setParam: «Имя веб-приложения IIS» = «значение, заданное в конфигурации», и именно поэтому он завершился ошибкой.
Чтобы избежать этой ошибки и успешно установить не веб-сайт с AWSDeploy и CloudFormation, вам просто нужно упаковать файл параметров в пакет MSDeploy, который содержит этот параметр.
Вот пример файла.
<parameters>
<parameter name="IIS Web Application Name" defaultValue="Default Web Site/" tags="isIisApp" />
</parameters>
Затем вы можете создать пакет MSDeploy с помощью manifest или contentPath, как показано ниже, передавая файл.
msdeploy -verb:sync -source:contentPath=C:\ConsoleApp\ -dest:package=deploy.zip -declareParamFile=parameters.xml
Затем вы можете успешно использовать это с вашим шаблоном CloudFormation. Не забудьте отключить мониторинг работоспособности для экземпляра, если сайт не запущен.