cdk-stack-resource-rename
Project description
StackResourceRenamer
A CDK aspect, StackResourceRenamer renames CDK stack name and stack's subordinate resources' custom physical names, so that a CDK stack can be used to create multiple stacks in same AWS environment without confliction.
API: API.md
Samples
typescript
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from cdk_stack_resource_rename import StackResourceRenamer
app = core.App()
stack = core.Stack(app, "my-stack")
alias = stack.node.try_get_context("alias")
if alias:
# if alias is defined, rename stack and resources' custom names
StackResourceRenamer.rename(stack,
rename=(origName, _)=>{
return origName+'-'+alias;
}
)
# resources in stack
bucket = s3.Bucket(stack, "bucket",
bucket_name="my-bucket"
)
python
from cdk_stack_resource_rename import (StackResourceRenamer, IRenameOperation)
@jsii.implements(IRenameOperation)
class RenameOper:
def __init__(self, alias):
self.alias=alias
def rename(self, origName, typeName):
return origName+'-'+self.alias
class AppStack(core.Stack):
def __init__(self, scope: core.Construct, construct_id: str, **kwargs) -> None:
......
alias = self.node.try_get_context("alias")
if alias != None:
# if alias is defined, rename stack/resources' custom names
StackResourceRenamer.rename(self, RenameOper(alias))
java
import cdkutils.aspects.resourcerename.StackResourceRenamer;
import cdkutils.aspects.resourcerename.IRenameOperation;
public class AppStack extends Stack {
......
String alias = (String) this.getNode().tryGetContext("alias");
if (alias != null) {
StackResourceRenamer.rename(this, new IRenameOperation() {
public String rename(String origName, String typeName) {
return origName + "-"+alias;
}
});
}
csharp
using CdkUtils.Aspects.ResourceRename;
public class RenameOper: Amazon.JSII.Runtime.Deputy.DeputyBase, IRenameOperation {
private string alias;
public RenameOper(string alias) {
this.alias=alias;
}
public string Rename(string origName, string typeName) {
return origName+"-"+alias;
}
}
public class AppStack : Stack
{
internal AppStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
{
......
var alias = (string)this.Node.TryGetContext("alias");
if (alias!=null) {
StackResourceRenamer.Rename(this, new RenameOper(alias));
}
To create multiple stacks:
cdk -c alias=a1 deploy
will create a stack: my-stack-a1 with my-bucket-a1.
To create more stacks: my-stack-a2 with my-bucket-a2, my-stack-a3 with my-bucket-a3:
cdk -c alias=a2 deploy
cdk -c alias=a3 deploy
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cdk-stack-resource-rename-0.0.11.tar.gz
.
File metadata
- Download URL: cdk-stack-resource-rename-0.0.11.tar.gz
- Upload date:
- Size: 564.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77718fe69553dfb9215a484e5e4c4baf5852257a51b404efd2e7630e2388e10b |
|
MD5 | 79295a55ac48bb248c599a1fd9988e95 |
|
BLAKE2b-256 | 27615b40304c7a37bdfd9b57d6c291962d8a18e4d9c01d01d2541f33384963c8 |
File details
Details for the file cdk_stack_resource_rename-0.0.11-py3-none-any.whl
.
File metadata
- Download URL: cdk_stack_resource_rename-0.0.11-py3-none-any.whl
- Upload date:
- Size: 567.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/54.0.0 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.7.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34f2509833ae4e2a93fedfcd5248b5547a5d493751554f3d666d78aee3589e4f |
|
MD5 | e2801b6509df811bcdd5f5ef671d3e0a |
|
BLAKE2b-256 | ce0964981e4558311622d93e12f0d26df21cc0cdaa29743b9a4c0d2d30d6b711 |