Невозможно запустить Python в AWS CDK - PullRequest
0 голосов
/ 06 ноября 2019

Привет, я работаю над Python. Я недавно начал работать с Python. Я использую Python в AWS cdk для создания ресурсов. Ниже мой код из файла app.py:

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_python_stack.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

Может кто-нибудь помочь мне исправить эту ошибку? Любая помощь будет оценена. Благодарю.

1 Ответ

0 голосов
/ 14 ноября 2019

В 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__ класса будет работать

...