AWS CDK Python-在其他项目堆栈文件中重新使用config.py文件中的代码块



我正在尝试使用config.py文件来包含要在其他项目堆栈文件中执行的资源标记的代码。这样,当需要更改时,config.py文件将是唯一需要更新标记信息的位置。我仍在学习Python,所以如果有任何帮助,我们将不胜感激。

在配置py中

from aws_cdk import core
class ResourceTags():

def __init__(self):
core.Tags.of(self).add("createdPurpose", "value")
core.Tags.of(self).add("createdBy", "value")
core.Tags.of(self).add("project", "value")
core.Tags.of(self).add("stackName", self.stack_name)

在stack.py文件中

from config import ResourceTags

您可以有一个助手类,该类具有一个方法,该方法接收实现Stack类的类的实例。在您的示例中,您正试图将标记应用于不实现"的类;堆叠";班你需要传递一些有用的东西。

下面是一个快速的C#示例

class ResourceTags
{
private void ApplyTags(Construct scope)
{
Tags.Of(scope).Add("Tag1", "Val1");
Tags.Of(scope).Add("Tag1", "Val1");
Tags.Of(scope).Add("Tag1", "Val1");

}
public void ApplyTags(Construct scope)
{
this.ApplyTags(scope);
}
}

class MyStack : Stack
{
internal MyStack()
{

new ResourceTags().ApplyTags(this);
}
}

以下是我最终得到的结果。我绝对愿意接受任何更好的想法。我对面向对象的方面还很陌生。感谢所有参与的人。

在配置py中

from aws_cdk import core
class Config(object):
'''Configuration options for the different stacks
'''
def ResourceTags(self):
core.Tags.of(self).add("createdPurpose", "value")
core.Tags.of(self).add("createdBy", "value")
core.Tags.of(self).add("project", "value")
core.Tags.of(self).add("stackName", self.stack_name)

堆栈内.py

from config import Config
...Other stack code
# To add tags from config.py
Config.ResourceTags(self)

相关内容

  • 没有找到相关文章

最新更新