我正在尝试使用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)