Skip to content

Instantly share code, notes, and snippets.

@thorin-schiffer
Last active May 13, 2022 14:06
Show Gist options
  • Save thorin-schiffer/ce17c58fab26c9feaf46c065d6591db1 to your computer and use it in GitHub Desktop.
Save thorin-schiffer/ce17c58fab26c9feaf46c065d6591db1 to your computer and use it in GitHub Desktop.
CDK Stack creation and lambda in it
import os
import subprocess
from pathlib import Path
from aws_cdk import (
Stack,
aws_lambda as lambda_,
Duration,
aws_sqs,
aws_lambda_event_sources,
)
from constructs import Construct
LAMBDA_VISIBILITY_TIMEOUT = Duration.seconds(900)
LAMBDA_RUNTIME = lambda_.Runtime.PYTHON_3_9
LAMBDA_MEMORY = 512
SENTRY_DSN = os.environ.get("SENTRY_DSN")
class MainStack(Stack):
def __init__(
self, **kwargs
) -> None:
super().__init__(scope, construct_id, **kwargs)
function_name = 'test'
# creating lambda
function = lambda_.Function(
self,
function_name,
function_name=function_name,
code=get_code(name, base_path),
handler="sentry_sdk.integrations.init_serverless_sdk.sentry_lambda_handler",
timeout=LAMBDA_VISIBILITY_TIMEOUT,
runtime=LAMBDA_RUNTIME,
memory_size=LAMBDA_MEMORY,
role=role,
environment={
"SENTRY_DSN": SENTRY_DSN,
"SENTRY_INITIAL_HANDLER": "lambda_function.lambda_handler",
"SENTRY_TRACES_SAMPLE_RATE": str(SENTRY_TRACES_SAMPLE_RATE),
"SENTRY_RELEASE": "dev",
"SENTRY_ENVIRONMENT": "dev",
}
)
# creating sqs trigger for it
queue_name = f"{function_name}-queue"
queue = aws_sqs.Queue(self, queue_name, queue_name=queue_name, visibility_timeout=LAMBDA_VISIBILITY_TIMEOUT)
sqs_event_source = aws_lambda_event_sources.SqsEventSource(queue)
function.add_event_source(sqs_event_source)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment