I recently had a similar problem. I really tried to install the MSDeploy package for a shell containing several child packages and runCommand to install them.
I found that AWSDeploy will fail if the MSDeploy package submitted to CloudFormation is itself an iisApp package. After research, it turns out that AWSDeploy runs an MSDeploy script with -setParam: "IIS Web Application Name" = "value set in config", and that is why it failed.
To avoid this error and successfully install a non-website with AWSDeploy and CloudFormation, you just need to pack the settings file into the MSDeploy package that contains this setting.
Here is an example file.
<parameters> <parameter name="IIS Web Application Name" defaultValue="Default Web Site/" tags="isIisApp" /> </parameters>
You can then create the MSDeploy package with a manifest or contentPath, as shown in the file below.
msdeploy -verb:sync -source:contentPath=C:\ConsoleApp\ -dest:package=deploy.zip -declareParamFile=parameters.xml
You can use this with the CloudFormation template successfully. Remember to disable health monitoring for the instance if the site is not running.
source share