Skip to content

Docs: HomePage - Fix syntax errors in SAR CDK example #1206

Closed
@michaelbrewer

Description

@michaelbrewer

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:

Screen Shot 2022-05-17 at 10 24 29 AM

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

  1. Copy code for the CDK example in https://awslabs.github.io/aws-lambda-powertools-python/latest/#sar
  2. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions