首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Python CDK共享库

AWS Python CDK共享库
EN

Stack Overflow用户
提问于 2022-09-22 13:31:21
回答 1查看 68关注 0票数 0

我在VSCODE中使用AWS CDK。我的项目布局是这样的,一个目录包含多个顶级堆栈。

我希望能够在堆栈之间共享代码。具体地说,它是代码,而不是跨堆栈引用或资源。

例如,我有一个标记函数,希望能够在所有堆栈之间共享和使用。

代码语言:javascript
复制
   def default_tag_stacks(*args: cdk.Stack):
    for stack in args:
        cdk.Tags.of(stack).add("OU", "PlatformInfrastructure")
        cdk.Tags.of(stack).add("GovernanceLevel", "Production")
        cdk.Tags.of(stack).add("Owner", "Platform")

我的编辑器看到库并获取导入,但在运行时

代码语言:javascript
复制
cdk synth

我收到了一个输入错误。是否存在路径变量或其他我可以遵循的项目结构,以便共享不属于特定堆栈的代码?

项目结构如下

代码语言:javascript
复制
/
 lib/tagging.py
 stack-1/app.py
 stack-2/app.py

进口是这样的

代码语言:javascript
复制
from lib.tagging import tag_all_app_stacks_default
代码语言:javascript
复制
cd stack-1
cdk synth

给出

代码语言:javascript
复制
Traceback (most recent call last):
  File "app.py", line 7, in <module>
    from lib.tagging import tag_all_app_stacks_default
ModuleNotFoundError: No module named 'lib'
EN

回答 1

Stack Overflow用户

发布于 2022-09-25 08:17:10

您应该决定导入的顶级项目目录是什么。如果是/,那么app.pycdk.json应该在/中,而cdk synth应该可以工作。否则(即项目的工作目录是stack-1),导入应该是from tagging import tag_all_app_stacks_default。您可以更多地了解Python模块导入如何在https://docs.python.org/3/tutorial/modules.html中工作。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73815584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档