"NameError: name 'self' is not defined" in CDK with python
0
I'm just using the sample code from: https://docs.aws.amazon.com/cdk/api/v1/python/aws_cdk.aws_healthlake/CfnFHIRDatastore.html#aws_cdk.aws_healthlake.CfnFHIRDatastore.add_deletion_override
And I'm adding the import statements not included in that example.
#!/usr/bin/env python3
import aws_cdk as cdk
import aws_cdk.aws_healthlake as healthlake
from constructs import Construct
from healthlake.healthlake_stack import HealthlakeStack
app = cdk.App()
class HealthlakeStack():
def __init__(self, scope: Construct, id: str, **kwargs) -> None:
super().__init__(scope, id, **kwargs)
cfn_fHIRDatastore = healthlake.CfnFHIRDatastore(self, "MyCfnFHIRDatastore",
datastore_type_version="R4"
)
HealthlakeStack(app, "HealthLake")
app.synth()
When I run cdk synth
on this, I get back:
Traceback (most recent call last):
File "app.py", line 13, in <module>
class HealthlakeStack():
File "app.py", line 17, in HealthlakeStack
cfn_fHIRDatastore = healthlake.CfnFHIRDatastore(self, "MyCfnFHIRDatastore",
NameError: name 'self' is not defined
And if I remove self
, I get:
Traceback (most recent call last):
File "app.py", line 11, in <module>
class HealthlakeStack():
File "app.py", line 15, in HealthlakeStack
cfn_fHIRDatastore = healthlake.CfnFHIRDatastore("MyCfnFHIRDatastore",
File "redacted/python/site-packages/jsii/_runtime.py", line 86, in __call__
inst = super().__call__(*args, **kwargs)
TypeError: __init__() missing 1 required positional argument: 'id'
And I tried a few other things. I'm guessing I'm just not nesting this correctly or something else basic to Python.
asked 14 days ago8 views
1 Answers
0
Accepted Answer
The problem was that I was trying to create the class in the app.py file, which is where an import statement of that same class was! I just had to revert to the code created by cdk init app --language python
and add my code in the healthlake/healthlake_stack.py file where the class definition belongs.
answered 13 days ago
Relevant questions
AWS CDK 2: Package subpath './aws-cloudfront/lib/experimental' is not defined by "exports" in xxx/node_modules/aws-cdk-lib/package.json
asked 6 months agoCode Style guide for AWS Cloudformation and CDK
Accepted Answerasked 7 months agoCDK DMS replication instance
Accepted Answerasked 2 years ago"NameError: name 'self' is not defined" in CDK with python
Accepted Answerasked 14 days agoHow to add python libraries to lambda using the CDK?
Accepted Answerasked 2 years agoException Running the Sample GameLift Code from AWS
Accepted Answerasked a year agoPackaging Java Lamba using CDK is failing in Code Build
asked 3 months agoHow to refer arn for an S3 bucket created using cfn resource in cdk python ?
asked a month agoNameError: name '_mysql' is not defined when trying to use mysql functions in aws lambda in python language
asked 4 months agoStreaming Video, Face Detection, Sample Python Code
asked 2 years ago