This is a change to the CreateStack API, to support retrieval from locations other than S3 (for example, GitHub or a corporate artifact server).
When given a publicly-accessible HTTP/S URL, CloudFormation should be able to use that URL as a template.
What this solves: currently, creating nested stacks is a two-step process. First, copy the child templates from a working directory into S3, and second, create the parent stack.
Nice-to-have: support authentication tokens for access to non-public URLs.
Happy path: create a stack from a simple template in the documentation GitHub.
Sad path: attempt to create a stack from http:///www.example.com/i-do-not-exist.template.
This is a problem for me at the moment, as there appears to be no way of having a non-public stack template within or outside s3 used as a nested stack. Perhaps the TemplateURL field could be changed to allow an s3 reference accessed via api (with permissions from the cloudformation role) rather than https (with no auth).
I could imagine something a bit like Fn::GetAttributeAtt for codepipeline artifacts, which also come from s3. https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-parameter-override-functions.html. This could even allow it to pull template files from within a codepipeline artifact zip, which would make creating nested cloudformation stacks from codepipeline far easier.
Not being able to pulled curated, version controlled templates from e.g. Github is one of the biggest failings of Cloudformation and ensures that every template is a snowflake.
Had to ditch cloudformation in favour of Terraform a few years ago, thought I'd come back to make it easy to spin up cloud9 instances and I can't believe this is a thing.
Most helpful comment
Not being able to pulled curated, version controlled templates from e.g. Github is one of the biggest failings of Cloudformation and ensures that every template is a snowflake.