Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AWS::CloudFormation::Stack - Region #562

Open
jk2l opened this issue Jul 17, 2020 · 4 comments
Open

AWS::CloudFormation::Stack - Region #562

jk2l opened this issue Jul 17, 2020 · 4 comments
Labels
enhancement New feature or request

Comments

@jk2l
Copy link

jk2l commented Jul 17, 2020

2. Scope of request

Currently certain resources (e.g. ACM for CloudFront) require it is being deploy from within us-east-1. Or if i want a multi region codepipeline, each region also need bucket and kms...etc

I wonder can the multi region deployment simplify into a single nested stack and using it to refrence via the output of each nested stack.

e.g.
main root stack - ap-southeast-1
|- child stack - us-east-1
|- child stack - ap-southeast-1 use us-east-1's stack output as parameter

3. Expected behavior

In Create: it create a stack in target region
In Update: it update eh stack in target region
In Delete: it delete the stack in target region
Can mix multi region in one stack

4. Suggest specific test cases

Resources:
  CognitoACM:
    Type: AWS::CloudFormation::Stack
    Properties:
      Region: us-east-1
      Parameters:
        FDQN: auth.my-example.com
      TemplateURL:  !Sub 'https://s3-${AWS::Region}.amazonaws.com/my-bucket/acm-cert.yaml'

  Cognito:
    Type: AWS::CloudFormation::Stack
    Properties:
      Region: ap-southeast-2
      Parameters:
        FQDN: auth.my-example.com
        AcmArn: !GetAtt 'ACMCert.Outputs.AcmArn'
      TemplateURL:  !Sub 'https://s3-${AWS::Region}.amazonaws.com/my-bucket/cognito.yaml'

  MyAPIAcm:
    Type: AWS::CloudFormation::Stack
    Properties:
      Region: ap-southeast-2
      Parameters:
        FDQN: api.my-example.com
      TemplateURL:  !Sub 'https://s3-${AWS::Region}.amazonaws.com/my-bucket/acm-cert.yaml'

  ApiGateway:
    Type: AWS::CloudFormation::Stack
    Properties:
      Region: ap-southeast-2
      Parameters:
        FQDN: api.my-example.com
        AcmArn: !GetAtt 'MyAPIAcm.Outputs.AcmArn'
        CognitoId: !GetAtt 'Cognito.Outputs.CognitoId'
      TemplateURL:  !Sub 'https://s3-${AWS::Region}.amazonaws.com/my-bucket/apigateway.yaml'

5. Helpful Links to speed up research and evaluation

#546
#523
aws/aws-cdk#8552

@jk2l
Copy link
Author

jk2l commented Jul 17, 2020

Example like aws-cdk have to resolve to use custom resource to bridge the incompatibility is always an issue in CloudFormation when a multi region support required. having native support via solution like nested stack should be able to close this bridge and make multi region support deployment much easier

@max-allan-surevine
Copy link

See my answer to #630 . This is probably now possible with stacksets as cloudformation objects.

@jk2l
Copy link
Author

jk2l commented Mar 12, 2021

Come accros this issue again, but this time it is AWS::WAFv2::IPSet. Basically I will need the resource deploy in us-east-1 (yes i can do it via StackSet object) but the problem will be to get it back from StackSet's output back into the original region

@brianterry brianterry added the enhancement New feature or request label Jun 21, 2021
@theswerd
Copy link

This would be a very helpful feature for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants