无法在AWS CDK中运行Python

2024-09-19 23:30:18 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在研究Python。我最近开始使用Python。我在AWS cdk中使用Python来创建资源。下面是我的代码应用程序类型文件:

from aws_cdk import core
from cdk_python.cdk_python_stack import CdkPythonStack
app = core.App()
CdkPythonStack(app, "cdk-python-1", env={'region': 'ap-southeast-2'})

app.synth()

下面是我的代码来自cdk\u python_堆栈.py文件。你知道吗

from aws_cdk import (
    aws_ec2 as ec2,
    aws_ecs as ecs,
    aws_elasticloadbalancingv2 as elbv2,
    aws_ecr as ecr,
    core,
)
class CdkPythonStack(core.Stack):
    def __init__(self, app: core.Construct, id: str, **kwargs) -> None:
        super().__init__(app, id, **kwargs)


vpc = ec2.Vpc.from_lookup(self, vpc_id='vpc-d45072b3', id="test")

当我运行cdk synth时,出现以下错误:

File "C:\Users\ngodbole\Documents\MerchWebServices\CDKPython\cdk_python\cdk_python_stack.py", line 13, in <module>
    vpc = ec2.Vpc.from_lookup(self, vpc_id='vpc-d45072b3', id="test")
NameError: name 'self' is not defined

有人能帮我纠正这个错误吗?任何帮助都将不胜感激。谢谢。你知道吗


Tags: 文件代码fromcoreimportselfawsid
1条回答
网友
1楼 · 发布于 2024-09-19 23:30:18

在python中,缩进很重要。self为您引用类构造本身,调用它的代码是它的一部分。你的情况不是这样的

class CdkPythonStack(core.Stack):
    def __init__(self, app: core.Construct, id: str, **kwargs) -> None:
        super().__init__(app, id, **kwargs)


        vpc = ec2.Vpc.from_lookup(self, vpc_id='vpc-d45072b3', id="test")

修复缩进(将vpc = ec2.Vpc...代码移到类的__init__方法中)将起作用

相关问题 更多 >