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

physical names should be able to address cyclic cross-stack dependencies #2551

Closed
eladb opened this issue May 15, 2019 · 0 comments
Closed

Comments

@eladb
Copy link
Contributor

eladb commented May 15, 2019

When we introduce support for auto-generation of physical names, it should be possible to resolve cyclic dependencies for automatic cross-stack references.

See as an example the cross-stack permissions - fails with encryption due to cyclic dependecy test in the kinesis library.

I expect the cyclic dependency error to offer the user to assign a physical name to one of the resources, and then the automatic cross-stack imports/exports should not take place, but instead a physical name should be used.

Copy @skinny85

eladb pushed a commit that referenced this issue May 18, 2019
Related #2551
eladb pushed a commit that referenced this issue May 18, 2019
Implemented an awslint rule to help identify all "export" methods and remove them.

Align all AWS resource constructs (besides `events.EventRule`) to their canonical name.

Fixes #2577
Fixes #2578
Fixes #2458
Fixes #2419
Fixes #2579
Fixes #2313

Related #2551

BREAKING CHANGE: All `export` methods from all AWS resources have been removed. CloudFormation Exports are now automatically created when attributes are referenced across stacks within the same app. To export resources manually, you can explicitly define a `CfnOutput`.
* `kms.EncryptionKey` renamed to `kms.Key`
* `ec2.VpcNetwork` renamed to `ec2.Vpc`
* `ec2.VpcSubnet` renamed to `ec2.Subnet`
* `cloudtrail.CloudTrail` renamed `to `cloudtrail.Trail`
* Deleted a few `XxxAttribute` and `XxxImportProps` interfaces which were no longer in used after their corresponding `export` method was deleted and there was no use for them in imports.
* `ecs.ClusterAttributes` now accepts `IVpc` and `ISecurityGroup` instead of attributes. You can use their
corresponding `fromXxx` methods to import them as needed.
* `servicediscovery.CnameInstance.instanceCname` renamed to `cname`.
* `glue.IDatabase.locationUrl` is now only in `glue.Database` (not on the interface)
* `ec2.TcpPortFromAttribute` and `UdpPortFromAttribute` removed. Use `TcpPort` and `UdpPort` with `new Token(x).toNumber` instead.
* `ec2.VpcNetwork.importFromContext` renamed to `ec2.Vpc.fromLookup`
* `iam.IRole.roleId` has been removed from the interface, but `Role.roleId` is still available for owned resources.
@eladb eladb closed this as completed Aug 12, 2019
This was referenced Dec 12, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant