Closed
Description
Expected Behaviour
Code examples should have valid python syntax, line highlights should be correct and Powertools version should be current.
Current Behaviour
When copying the code example for SAR - CDK you will get the following error:
Code snippet
from aws_cdk import core, aws_sam as sam, aws_lambda
POWERTOOLS_BASE_NAME = 'AWSLambdaPowertools'
# Find latest from github.com/awslabs/aws-lambda-powertools-python/releases
POWERTOOLS_VER = '1.23.0'
POWERTOOLS_ARN = 'arn:aws:serverlessrepo:eu-west-1:057560766410:applications/aws-lambda-powertools-python-layer'
class SampleApp(core.Construct):
def __init__(self, scope: core.Construct, id_: str) -> None:
super().__init__(scope, id_)
# Launches SAR App as CloudFormation nested stack and return Lambda Layer
powertools_app = sam.CfnApplication(self,
f'{POWERTOOLS_BASE_NAME}Application',
location={
'applicationId': POWERTOOLS_ARN,
'semanticVersion': POWERTOOLS_VER
},
)
powertools_layer_arn = powertools_app.get_att("Outputs.LayerVersionArn").to_string()
powertools_layer_version = aws_lambda.LayerVersion.from_layer_version_arn(self, f'{POWERTOOLS_BASE_NAME}', powertools_layer_arn)
aws_lambda.Function(self,
'sample-app-lambda',
runtime=aws_lambda.Runtime.PYTHON_3_8,
function_name='sample-lambda',
code=aws_lambda.Code.asset('./src'),
handler='app.handler',
layers: [powertools_layer_version]
)
Possible Solution
Solution for this in included in PR #1113 this also fixes the line highlights and includes the latest version of powertools
from aws_cdk import aws_lambda
from aws_cdk import aws_sam as sam
from aws_cdk import core
POWERTOOLS_BASE_NAME = "AWSLambdaPowertools"
# Find latest from github.com/awslabs/aws-lambda-powertools-python/releases
POWERTOOLS_VER = "1.25.10"
POWERTOOLS_ARN = "arn:aws:serverlessrepo:eu-west-1:057560766410:applications/aws-lambda-powertools-python-layer"
class SampleApp(core.Construct):
def __init__(self, scope: core.Construct, id_: str) -> None:
super().__init__(scope, id_)
# Launches SAR App as CloudFormation nested stack and return Lambda Layer
powertools_app = sam.CfnApplication(
self,
f"{POWERTOOLS_BASE_NAME}Application",
location={"applicationId": POWERTOOLS_ARN, "semanticVersion": POWERTOOLS_VER},
)
powertools_layer_arn = powertools_app.get_att("Outputs.LayerVersionArn").to_string()
powertools_layer_version = aws_lambda.LayerVersion.from_layer_version_arn(
self, f"{POWERTOOLS_BASE_NAME}", powertools_layer_arn
)
aws_lambda.Function(
self,
"sample-app-lambda",
runtime=aws_lambda.Runtime.PYTHON_3_8,
function_name="sample-lambda",
code=aws_lambda.Code.asset("./src"),
handler="app.handler",
layers=[powertools_layer_version],
)
Steps to Reproduce
- Copy code for the CDK example in https://awslabs.github.io/aws-lambda-powertools-python/latest/#sar
- Try to compile python code.
AWS Lambda Powertools for Python version
latest
AWS Lambda function runtime
3.9
Packaging format used
Serverless Application Repository (SAR) App
Debugging logs
N/A