Lambda Example using AWS CDK
Aug 10, 2022
In this article we are going to cover some of the most common properties we use to create and configure an lambda in AWS CDK.
At the time of writing I was using CDK version: 2.34.2
Importing Dependencies
from aws_cdk import ( aws_iam as iam,aws_lambda as lambda_, aws_lambda_destinations as destinations, )
Lambda Role
lambda_role = iam.Role(
self,
"lambda-role",
assumed_by=iam.CompositePrincipal(
iam.ServicePrincipal("lambda.amazonaws.com"),
),
)
lambda_role.add_to_policy(
iam.PolicyStatement(actions=["sns:Publish"], resources=[snstopic])
)
)
lambda_role.add_managed_policy(
iam.ManagedPolicy.from_aws_managed_policy_name(
"service-role/AWSLambdaBasicExecutionRole"
)
)
Create Lambda
snstopic = "<SNS_TOPIC_ARN>"
lambda_.Function(
self,
"lambda-function",
runtime=lambda_.Runtime.PYTHON_3_9,
code=lambda_.Code.from_asset("resources/lambda"),
role=lambda_role,
handler="lambda_function.lambda_handler",
timeout=Duration.seconds(600),
environment={"snstopic": snstopic},
on_failure=destinations.SnsDestination(
sns.Topic.from_topic_arn(self, "LambdaSNSTopic", snstopic)
),
)
Create Layer
model_layer = lambda_.LayerVersion(
self,
"model-layer",
code=lambda_.Code.from_asset("resources/model-layer"),
compatible_runtimes=[lambda_.Runtime.PYTHON_3_9],
)