Class NestedStack
- All Implemented Interfaces:
ITaggable
,software.amazon.jsii.JsiiSerializable
,software.constructs.IConstruct
,software.constructs.IDependable
- Direct Known Subclasses:
KubectlProvider
When you apply template changes to update a top-level stack, CloudFormation updates the top-level stack and initiates an update to its nested stacks. CloudFormation updates the resources of modified nested stacks, but does not update the resources of unmodified nested stacks.
Furthermore, this stack will not be treated as an independent deployment artifact (won't be listed in "cdk list" or deployable through "cdk deploy"), but rather only synthesized as a template and uploaded as an asset to S3.
Cross references of resource attributes between the parent stack and the nested stack will automatically be translated to stack parameters and outputs.
Example:
import software.amazon.awscdk.*; import software.amazon.awscdk.customresources.CustomResourceConfig; import software.amazon.awscdk.services.s3.deployment.*; App app = new App(); Stack stack = new Stack(app, "Stack"); CustomResourceConfig.of(app).addLogRetentionLifetime(RetentionDays.TEN_YEARS); NestedStack nestedStackA = new NestedStack(stack, "NestedStackA"); Bucket websiteBucketA = Bucket.Builder.create(nestedStackA, "WebsiteBucketA").build(); BucketDeployment.Builder.create(nestedStackA, "s3deployA") .sources(List.of(Source.jsonData("file.json", Map.of("a", "b")))) .destinationBucket(websiteBucketA) .logRetention(RetentionDays.ONE_DAY) .build(); NestedStack nestedStackB = new NestedStack(stack, "NestedStackB"); Bucket websiteBucketB = Bucket.Builder.create(nestedStackB, "WebsiteBucketB").build(); BucketDeployment.Builder.create(nestedStackB, "s3deployB") .sources(List.of(Source.jsonData("file.json", Map.of("a", "b")))) .destinationBucket(websiteBucketB) .logRetention(RetentionDays.ONE_DAY) .build();
-
Nested Class Summary
Nested classes/interfaces inherited from class software.amazon.jsii.JsiiObject
software.amazon.jsii.JsiiObject.InitializationMode
Nested classes/interfaces inherited from interface software.constructs.IConstruct
software.constructs.IConstruct.Jsii$Default, software.constructs.IConstruct.Jsii$Proxy
Nested classes/interfaces inherited from interface software.amazon.awscdk.ITaggable
ITaggable.Jsii$Default, ITaggable.Jsii$Proxy
-
Constructor Summary
ModifierConstructorDescriptionprotected
NestedStack
(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) protected
NestedStack
(software.amazon.jsii.JsiiObjectRef objRef) NestedStack
(software.constructs.Construct scope, String id) NestedStack
(software.constructs.Construct scope, String id, NestedStackProps props) -
Method Summary
Modifier and TypeMethodDescriptionIf this is a nested stack, this represents itsAWS::CloudFormation::Stack
resource.An attribute that represents the ID of the stack.An attribute that represents the name of the nested stack.The name of the CloudFormation template file emitted to the output directory during synthesis.static Boolean
Checks ifx
is an object of typeNestedStack
.void
setParameter
(String name, String value) Assign a value to one of the nested stack parameters.Methods inherited from class software.amazon.awscdk.Stack
addDependency, addDependency, addMetadata, addTransform, allocateLogicalId, exportStringListValue, exportStringListValue, exportValue, exportValue, formatArn, getAccount, getArtifactId, getAvailabilityZones, getBundlingRequired, getDependencies, getEnvironment, getLogicalId, getNested, getNestedStackParent, getNotificationArns, getPartition, getRegion, getSynthesizer, getTags, getTemplateOptions, getTerminationProtection, getUrlSuffix, isStack, of, regionalFact, regionalFact, renameLogicalId, reportMissingContextKey, resolve, setTerminationProtection, splitArn, toJsonString, toJsonString, toYamlString
Methods inherited from class software.constructs.Construct
getNode, isConstruct, toString
Methods inherited from class software.amazon.jsii.JsiiObject
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSet
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface software.amazon.jsii.JsiiSerializable
$jsii$toJson
-
Constructor Details
-
NestedStack
protected NestedStack(software.amazon.jsii.JsiiObjectRef objRef) -
NestedStack
protected NestedStack(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) -
NestedStack
@Stability(Stable) public NestedStack(@NotNull software.constructs.Construct scope, @NotNull String id, @Nullable NestedStackProps props) - Parameters:
scope
- This parameter is required.id
- This parameter is required.props
-
-
NestedStack
@Stability(Stable) public NestedStack(@NotNull software.constructs.Construct scope, @NotNull String id) - Parameters:
scope
- This parameter is required.id
- This parameter is required.
-
-
Method Details
-
isNestedStack
Checks ifx
is an object of typeNestedStack
.- Parameters:
x
- This parameter is required.
-
setParameter
Assign a value to one of the nested stack parameters.- Parameters:
name
- The parameter name (ID). This parameter is required.value
- The value to assign. This parameter is required.
-
getStackId
An attribute that represents the ID of the stack.This is a context aware attribute:
- If this is referenced from the parent stack, it will return
{ "Ref": "LogicalIdOfNestedStackResource" }
. - If this is referenced from the context of the nested stack, it will return
{ "Ref": "AWS::StackId" }
Example value:
arn:aws:cloudformation:us-east-2:123456789012:stack/mystack-mynestedstack-sggfrhxhum7w/f449b250-b969-11e0-a185-5081d0136786
- Overrides:
getStackId
in classStack
- If this is referenced from the parent stack, it will return
-
getStackName
An attribute that represents the name of the nested stack.This is a context aware attribute:
- If this is referenced from the parent stack, it will return a token that parses the name from the stack ID.
- If this is referenced from the context of the nested stack, it will return
{ "Ref": "AWS::StackName" }
Example value:
mystack-mynestedstack-sggfrhxhum7w
- Overrides:
getStackName
in classStack
-
getTemplateFile
The name of the CloudFormation template file emitted to the output directory during synthesis.Example value:
MyStack.template.json
- Overrides:
getTemplateFile
in classStack
-
getNestedStackResource
If this is a nested stack, this represents itsAWS::CloudFormation::Stack
resource.undefined
for top-level (non-nested) stacks.- Overrides:
getNestedStackResource
in classStack
-