I spent a couple of hours yesterday trying to deploy a parent stack with two nested dynamodb table stacks. Both stacks were to be built from the same template and so provided a TableName parameter for the general purpose child stack to use along with its standard settings. This is one of the primary use cases for child stacks.

It didn’t work, and looking at #1921 it appears that the code treats the child stack as though it should just run independently.

I suspect that #2079 needs the obverse of this, which is the collection of outputs from a child to use with a peer.

import re
import os
import json
import yaml
import logging
import traceback
import moto.cloudformation.utils
from six import iteritems
from six import string_types
from localstack.utils import common
from localstack.utils.aws import aws_stack
from localstack.services.s3 import s3_listener
from localstack.utils.testutil import create_zip_file
from localstack.services.awslambda.lambda_api import get_handler_file_from_name
ACTION_CREATE = 'create'
ACTION_DELETE = 'delete'
PLACEHOLDER_RESOURCE_NAME = '__resource_name__'
LOG = logging.getLogger(__name__)
UPDATEABLE_RESOURCES = ['Lambda::Function', 'ApiGateway::Method']
STATIC_REFS = ['AWS::Region', 'AWS::Partition', 'AWS::StackName']
NoDatesSafeLoader = yaml.SafeLoader
NoDatesSafeLoader.yaml_implicit_resolvers = {
    k: [r for r in v if r[0] != 'tag:yaml.org,2002:timestamp'] for
    k, v in NoDatesSafeLoader.yaml_implicit_resolvers.items()
}
def str_or_none(o):