StackResourceRenamer
A CDK aspect, StackResourceRenamer renames CDK stack name and stack's subordinate resources' physical names, so that a CDK stack can be used to create multiple stacks in same AWS environment without confliction.
API: API.md
Two main use cases:
- rename custom resources names in stack, so that stack can be reused and replicated:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
StackResourceRenamer.rename(stack,
rename=(resName, _)=>{
return resName+'-'+alias;
}
)
- for resources without custom name, which by default will use unique id AWS auto generate as its physical id, we can create a more readable and identifiable name, for testing, debugging or metrics monitoring environments.
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
StackResourceRenamer.rename(stack, {
"rename": (_, typeName)=>{
counts[typeName]++;
return projectName+'-'+serviceName+'-'+typeName+'-'+counts[typeName];
}
}, user_custom_name_only=False)
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=(resName, _)=>{
return resName+'-'+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, resName, typeName):
return resName+'-'+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 io.github.yglcode.cdkutils.aspects.resourcerename.StackResourceRenamer;
import io.github.yglcode.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 resName, String typeName) {
return resName + "-"+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 resName, string typeName) {
return resName+"-"+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
Metadata
Release files for cdk-stack-resource-rename 0.0.23
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| cdk-stack-resource-rename-0.0.23.tar.gz | 40.3 kB | Without provenance | Details for cdk-stack-resource-rename-0.0.23.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| cdk_stack_resource_rename-0.0.23-py3-none-any.whl | Python 3 | none | any | Details for cdk_stack_resource_rename-0.0.23-py3-none-any.whl |
Total release size: 83.5 kB
Release files / cdk-stack-resource-rename-0.0.23.tar.gz
| Download URL | cdk-stack-resource-rename-0.0.23.tar.gz |
|---|---|
| Size | 40.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1e92315f3d02838ffd8be046efedaabe8ec5d5ddb6444b48b9f85405fef79b97
|
|
BLAKE2b-256 checksum How to use checksums |
69bc4e4feac0c13ae49cd4ec1afe1140207f7179ca8e371ca93c438b9f0c483b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.9
|
Release files / cdk_stack_resource_rename-0.0.23-py3-none-any.whl
| Download URL | cdk_stack_resource_rename-0.0.23-py3-none-any.whl |
|---|---|
| Size | 43.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e4398ec173b824e54736fc656612b141792895982335af4b922d3ab886b732c6
|
|
BLAKE2b-256 checksum How to use checksums |
4818b92d44e8acce2d95f4f752016048070021990cec86721c0b7f0a69cf74f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/3.10.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.7.9
|
Security for cdk-stack-resource-rename 0.0.23
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.