-
Notifications
You must be signed in to change notification settings - Fork 4k
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
(core): stack.exportValue()
does not work with ref
parameters
#13002
Comments
Confirming I was able to reproduce it, using an
|
Actually, same error happens when trying to use |
Cool. It's the |
Most L2 resources employ the "PhysicalName" protocol, which checks usage of resource names across environment borders, and can automatically turn auto-named resources into physically-named resources if the situation calls for it. Unfortunately, this wrapped token is a generic IResolvable, not a Reference, and so did not work with the `exportValue()` automatic reference detection. Make the token returned by `getResourceNameAttribute()` etc. a `Reference` that mimics the underlying `Reference` to make this work out. Fixes #13002, fixes #12918.
Most L2 resources employ the "PhysicalName" protocol, which checks usage of resource names across environment borders, and can automatically turn auto-named resources into physically-named resources if the situation calls for it. Unfortunately, this wrapped token is a generic IResolvable, not a Reference, and so did not work with the `exportValue()` automatic reference detection. Make the token returned by `getResourceNameAttribute()` etc. a `Reference` that mimics the underlying `Reference` to make this work out. Fixes #13002, fixes #12918. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
|
Most L2 resources employ the "PhysicalName" protocol, which checks usage of resource names across environment borders, and can automatically turn auto-named resources into physically-named resources if the situation calls for it. Unfortunately, this wrapped token is a generic IResolvable, not a Reference, and so did not work with the `exportValue()` automatic reference detection. Make the token returned by `getResourceNameAttribute()` etc. a `Reference` that mimics the underlying `Reference` to make this work out. Fixes aws#13002, fixes aws#12918. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
Most L2 resources employ the "PhysicalName" protocol, which checks usage of resource names across environment borders, and can automatically turn auto-named resources into physically-named resources if the situation calls for it. Unfortunately, this wrapped token is a generic IResolvable, not a Reference, and so did not work with the `exportValue()` automatic reference detection. Make the token returned by `getResourceNameAttribute()` etc. a `Reference` that mimics the underlying `Reference` to make this work out. Fixes #13002, fixes #12918. ---- *By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license*
The new
stack.exportValue()
feature introduced in #12778 does not seem to work with resource parameters that would be referenced byRef
rather thanGetAtt
.Reproduction Steps
Results in:
Error: exportValue: either supply 'name' or make sure to export a resource attribute (like 'bucket.bucketName')
What did you expect to happen?
Trying to break a deadly embrace where I used the
roleName
androleArn
in another stack. TheroleArn
is aGetAtt
and theroleName
is actually aRef
. TheroleArn
worked great, butroleName
will not synthesize without me specifying the full export name which looks something likeSTACK_NAME:ExportsOutputRefSomeSampleRole1D3A83A01C1B4250
.What actually happened?
Error:
Error: exportValue: either supply 'name' or make sure to export a resource attribute (like 'bucket.bucketName')
Environment
Other
N/A
This is 🐛 Bug Report
The text was updated successfully, but these errors were encountered: