io.github.yglcode.cdkutils.aspects.resourcerename:cdk-stack-resource-rename

cdk-stack-resource-rename

Лицензия

Лицензия

Группа

Группа

io.github.yglcode.cdkutils.aspects.resourcerename
Идентификатор

Идентификатор

cdk-stack-resource-rename
Последняя версия

Последняя версия

0.0.23
Дата

Дата

Тип

Тип

jar
Описание

Описание

io.github.yglcode.cdkutils.aspects.resourcerename:cdk-stack-resource-rename
cdk-stack-resource-rename
Ссылка на сайт

Ссылка на сайт

https://github.com/yglcode/cdk-stack-resource-rename.git
Система контроля версий

Система контроля версий

https://github.com/yglcode/cdk-stack-resource-rename.git

Скачать cdk-stack-resource-rename

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/io.github.yglcode.cdkutils.aspects.resourcerename/cdk-stack-resource-rename/ -->
<dependency>
    <groupId>io.github.yglcode.cdkutils.aspects.resourcerename</groupId>
    <artifactId>cdk-stack-resource-rename</artifactId>
    <version>0.0.23</version>
</dependency>
// https://jarcasting.com/artifacts/io.github.yglcode.cdkutils.aspects.resourcerename/cdk-stack-resource-rename/
implementation 'io.github.yglcode.cdkutils.aspects.resourcerename:cdk-stack-resource-rename:0.0.23'
// https://jarcasting.com/artifacts/io.github.yglcode.cdkutils.aspects.resourcerename/cdk-stack-resource-rename/
implementation ("io.github.yglcode.cdkutils.aspects.resourcerename:cdk-stack-resource-rename:0.0.23")
'io.github.yglcode.cdkutils.aspects.resourcerename:cdk-stack-resource-rename:jar:0.0.23'
<dependency org="io.github.yglcode.cdkutils.aspects.resourcerename" name="cdk-stack-resource-rename" rev="0.0.23">
  <artifact name="cdk-stack-resource-rename" type="jar" />
</dependency>
@Grapes(
@Grab(group='io.github.yglcode.cdkutils.aspects.resourcerename', module='cdk-stack-resource-rename', version='0.0.23')
)
libraryDependencies += "io.github.yglcode.cdkutils.aspects.resourcerename" % "cdk-stack-resource-rename" % "0.0.23"
[io.github.yglcode.cdkutils.aspects.resourcerename/cdk-stack-resource-rename "0.0.23"]

Зависимости

compile (5)

Идентификатор библиотеки Тип Версия
software.amazon.awscdk : core jar [1.91.0,2.0.0)
software.constructs : constructs jar [3.2.27,4.0.0)
software.amazon.jsii : jsii-runtime jar [1.24.0,2.0.0)
org.jetbrains : annotations jar [16.0.3,20.0.0)
javax.annotation : javax.annotation-api jar [1.3.2,1.4.0)

Модули Проекта

Данный проект не имеет модулей.

NPM version PyPI version Nuget version Maven Central Release

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:

  1. rename custom resources names in stack, so that stack can be reused and replicated:
StackResourceRenamer.rename(stack, {
    rename: (resName, _)=>{
        return resName+'-'+alias;
    },
});
  1. 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.
StackResourceRenamer.rename(stack, {
    rename: (_, typeName)=>{
        counts[typeName]++;
        return projectName+'-'+serviceName+'-'+typeName+'-'+counts[typeName];
    },
}, { userCustomNameOnly: false });

Samples

typescript

import { StackResourceRenamer } from 'cdk-stack-resource-rename';

const app = new core.App();
const stack = new core.Stack(app, 'my-stack');

let alias = stack.node.tryGetContext('alias');
if (alias) {
    //if alias is defined, rename stack and resources' custom names
    StackResourceRenamer.rename(stack, {
        rename: (resName, _)=>{
            return resName+'-'+alias;
        },
    });
}

//resources in stack
const bucket = new s3.Bucket(stack, 'bucket', {
    bucketName: '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

Версии библиотеки

Версия
0.0.23
0.0.22
0.0.21