From 87dd969fce6a024b5a4d217c52788b16f8268c06 Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Thu, 23 Jan 2025 14:56:59 -0300 Subject: [PATCH 1/7] rewrite data classes docs --- docs/media/utilities_data_classes.png | Bin 317980 -> 161851 bytes docs/utilities/data_classes.md | 259 +++++++++----------------- 2 files changed, 88 insertions(+), 171 deletions(-) diff --git a/docs/media/utilities_data_classes.png b/docs/media/utilities_data_classes.png index 94ed83bde976e32c1a22e20b1b37a33f3ff826cc..bb224772355e5260bbb070f508813cd0713268a6 100644 GIT binary patch literal 161851 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 QZ-Rfva2m=Pis!xm5C4H%%m4rY literal 317980 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 diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index 01fe21e20b8..e4151c52e17 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -5,115 +5,105 @@ description: Utility <!-- markdownlint-disable MD043 --> -Event Source Data Classes utility provides classes self-describing Lambda event sources. +Event Source Data Classes provides self-describing and strongly-typed classes for various AWS Lambda event sources. ## Key features * Type hinting and code completion for common event types * Helper functions for decoding/deserializing nested fields * Docstrings for fields contained in event schemas - -**Background** - -When authoring Lambda functions, you often need to understand the schema of the event dictionary which is passed to the -handler. There are several common event types which follow a specific schema, depending on the service triggering the -Lambda function. +* Standardized attribute-based access to event properties ## Getting started -### Utilizing the data classes +???+ tip + All examples shared in this documentation are available within the [project repository](https://github.com/aws-powertools/powertools-lambda-python/tree/develop/examples){target="_blank"}. -The classes are initialized by passing in the Lambda event object into the constructor of the appropriate data class or -by using the `event_source` decorator. +There are two ways to use Event Source Data Classes in your Lambda functions. -For example, if your Lambda function is being triggered by an API Gateway proxy integration, you can use the -`APIGatewayProxyEvent` class. +**Method 1: Direct Initialization** -=== "app.py" +You can initialize the appropriate data class by passing the Lambda event object to its constructor. - ```python hl_lines="1 4" - from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent +=== "getting_started_data_classes.py" - def lambda_handler(event: dict, context): - event = APIGatewayProxyEvent(event) - if 'helloworld' in event.path and event.http_method == 'GET': - do_something_with(event.body, user) + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/getting_started_data_classes.py" ``` -Same example as above, but using the `event_source` decorator - -=== "app.py" +=== "apigw_event.json" - ```python hl_lines="1 3" - from aws_lambda_powertools.utilities.data_classes import event_source, APIGatewayProxyEvent - - @event_source(data_class=APIGatewayProxyEvent) - def lambda_handler(event: APIGatewayProxyEvent, context): - if 'helloworld' in event.path and event.http_method == 'GET': - do_something_with(event.body, user) + ```json hl_lines="3-4" + --8<-- "examples/event_sources/events/apigw_event.json" ``` -Log Data Event for Troubleshooting +**Method 2: Using the event_source Decorator** -=== "app.py" +Alternatively, you can use the `event_source` decorator to automatically parse the event. - ```python hl_lines="4 8" - from aws_lambda_powertools.utilities.data_classes import event_source, APIGatewayProxyEvent - from aws_lambda_powertools.logging.logger import Logger +=== "getting_started_data_classes_decorator.py" - logger = Logger(service="hello_logs", level="DEBUG") + ```python hl_lines="1 3" + --8<-- "examples/event_sources/src/getting_started_data_classes_decorator.py" + ``` - @event_source(data_class=APIGatewayProxyEvent) - def lambda_handler(event: APIGatewayProxyEvent, context): - logger.debug(event) +=== "apigw_event.json" + + ```json hl_lines="3-4" + --8<-- "examples/event_sources/events/apigw_event.json" ``` -**Autocomplete with self-documented properties and methods** +### Autocomplete with self-documented properties and methods + +Event Source Data Classes has the ability to leverage IDE autocompletion and inline documentation. +When using the APIGatewayProxyEvent class, for example, the IDE will offer autocomplete suggestions for various properties and methods.  ## Supported event sources -| Event Source | Data_class | -|-------------------------------------------------------------------------------|----------------------------------------------------| -| [Active MQ](#active-mq) | `ActiveMQEvent` | -| [API Gateway Authorizer](#api-gateway-authorizer) | `APIGatewayAuthorizerRequestEvent` | -| [API Gateway Authorizer V2](#api-gateway-authorizer-v2) | `APIGatewayAuthorizerEventV2` | -| [API Gateway Proxy](#api-gateway-proxy) | `APIGatewayProxyEvent` | -| [API Gateway Proxy V2](#api-gateway-proxy-v2) | `APIGatewayProxyEventV2` | -| [Application Load Balancer](#application-load-balancer) | `ALBEvent` | -| [AppSync Authorizer](#appsync-authorizer) | `AppSyncAuthorizerEvent` | -| [AppSync Resolver](#appsync-resolver) | `AppSyncResolverEvent` | -| [AWS Config Rule](#aws-config-rule) | `AWSConfigRuleEvent` | -| [Bedrock Agent](#bedrock-agent) | `BedrockAgent` | -| [CloudFormation Custom Resource](#cloudformation-custom-resource) | `CloudFormationCustomResourceEvent` | -| [CloudWatch Alarm State Change Action](#cloudwatch-alarm-state-change-action) | `CloudWatchAlarmEvent` | -| [CloudWatch Dashboard Custom Widget](#cloudwatch-dashboard-custom-widget) | `CloudWatchDashboardCustomWidgetEvent` | -| [CloudWatch Logs](#cloudwatch-logs) | `CloudWatchLogsEvent` | -| [CodeDeploy Lifecycle Hook](#codedeploy-lifecycle-hook) | `CodeDeployLifecycleHookEvent` | -| [CodePipeline Job Event](#codepipeline-job) | `CodePipelineJobEvent` | -| [Cognito User Pool](#cognito-user-pool) | Multiple available under `cognito_user_pool_event` | -| [Connect Contact Flow](#connect-contact-flow) | `ConnectContactFlowEvent` | -| [DynamoDB streams](#dynamodb-streams) | `DynamoDBStreamEvent`, `DynamoDBRecordEventName` | -| [EventBridge](#eventbridge) | `EventBridgeEvent` | -| [Kafka](#kafka) | `KafkaEvent` | -| [Kinesis Data Stream](#kinesis-streams) | `KinesisStreamEvent` | -| [Kinesis Firehose Delivery Stream](#kinesis-firehose-delivery-stream) | `KinesisFirehoseEvent` | -| [Lambda Function URL](#lambda-function-url) | `LambdaFunctionUrlEvent` | -| [Rabbit MQ](#rabbit-mq) | `RabbitMQEvent` | -| [S3](#s3) | `S3Event` | -| [S3 Batch Operations](#s3-batch-operations) | `S3BatchOperationEvent` | -| [S3 Object Lambda](#s3-object-lambda) | `S3ObjectLambdaEvent` | -| [S3 EventBridge Notification](#s3-eventbridge-notification) | `S3EventBridgeNotificationEvent` | -| [SES](#ses) | `SESEvent` | -| [SNS](#sns) | `SNSEvent` | -| [SQS](#sqs) | `SQSEvent` | -| [VPC Lattice V2](#vpc-lattice-v2) | `VPCLatticeV2Event` | -| [VPC Lattice V1](#vpc-lattice-v1) | `VPCLatticeEvent` | +Each event source is linked to its corresponding GitHub file with the full set of properties, methods, and docstrings specific to each event type. + +| Event Source | Data_class | Properties | +|--------------|------------|------------| +| [Active MQ](#active-mq) | `ActiveMQEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/active_mq_event.py) | +| [API Gateway Authorizer](#api-gateway-authorizer) | `APIGatewayAuthorizerRequestEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py) | +| [API Gateway Authorizer V2](#api-gateway-authorizer-v2) | `APIGatewayAuthorizerEventV2` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/api_gateway_authorizer_event.py) | +| [API Gateway Proxy](#api-gateway-proxy) | `APIGatewayProxyEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py) | +| [API Gateway Proxy V2](#api-gateway-proxy-v2) | `APIGatewayProxyEventV2` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/api_gateway_proxy_event.py) | +| [Application Load Balancer](#application-load-balancer) | `ALBEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/alb_event.py) | +| [AppSync Authorizer](#appsync-authorizer) | `AppSyncAuthorizerEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/appsync_authorizer_event.py) | +| [AppSync Resolver](#appsync-resolver) | `AppSyncResolverEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/appsync_resolver_event.py) | +| [AWS Config Rule](#aws-config-rule) | `AWSConfigRuleEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/aws_config_rule_event.py) | +| [Bedrock Agent](#bedrock-agent) | `BedrockAgent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/bedrock_agent_event.py) | +| [CloudFormation Custom Resource](#cloudformation-custom-resource) | `CloudFormationCustomResourceEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/cloudformation_custom_resource_event.py) | +| [CloudWatch Alarm State Change Action](#cloudwatch-alarm-state-change-action) | `CloudWatchAlarmEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/cloud_watch_alarm_event.py) | +| [CloudWatch Dashboard Custom Widget](#cloudwatch-dashboard-custom-widget) | `CloudWatchDashboardCustomWidgetEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/cloud_watch_custom_widget_event.py) | +| [CloudWatch Logs](#cloudwatch-logs) | `CloudWatchLogsEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/cloud_watch_logs_event.py) | +| [CodeDeploy Lifecycle Hook](#codedeploy-lifecycle-hook) | `CodeDeployLifecycleHookEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/code_deploy_lifecycle_hook_event.py) | +| [CodePipeline Job Event](#codepipeline-job) | `CodePipelineJobEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/code_pipeline_job_event.py) | +| [Cognito User Pool](#cognito-user-pool) | Multiple available under `cognito_user_pool_event` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/cognito_user_pool_event.py) | +| [Connect Contact Flow](#connect-contact-flow) | `ConnectContactFlowEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/connect_contact_flow_event.py) | +| [DynamoDB streams](#dynamodb-streams) | `DynamoDBStreamEvent`, `DynamoDBRecordEventName` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/dynamo_db_stream_event.py) | +| [EventBridge](#eventbridge) | `EventBridgeEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/event_bridge_event.py) | +| [Kafka](#kafka) | `KafkaEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/kafka_event.py) | +| [Kinesis Data Stream](#kinesis-streams) | `KinesisStreamEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/kinesis_stream_event.py) | +| [Kinesis Firehose Delivery Stream](#kinesis-firehose-delivery-stream) | `KinesisFirehoseEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/kinesis_firehose_event.py) | +| [Lambda Function URL](#lambda-function-url) | `LambdaFunctionUrlEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/lambda_function_url_event.py) | +| [Rabbit MQ](#rabbit-mq) | `RabbitMQEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/rabbit_mq_event.py) | +| [S3](#s3) | `S3Event` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/s3_event.py) | +| [S3 Batch Operations](#s3-batch-operations) | `S3BatchOperationEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/s3_batch_operation_event.py) | +| [S3 Object Lambda](#s3-object-lambda) | `S3ObjectLambdaEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/s3_object_event.py) | +| [S3 EventBridge Notification](#s3-eventbridge-notification) | `S3EventBridgeNotificationEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/s3_event.py) | +| [SES](#ses) | `SESEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/ses_event.py) | +| [SNS](#sns) | `SNSEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/sns_event.py) | +| [SQS](#sqs) | `SQSEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/sqs_event.py) | +| [VPC Lattice V2](#vpc-lattice-v2) | `VPCLatticeV2Event` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py) | +| [VPC Lattice V1](#vpc-lattice-v1) | `VPCLatticeEvent` | [Github](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/data_classes/vpc_lattice.py) | ???+ info - The examples provided below are far from exhaustive - the data classes themselves are designed to provide a form of - documentation inherently (via autocompletion, types and docstrings). + The examples showcase a subset of Event Source Data Classes capabilities - for comprehensive details, leverage your IDE's + autocompletion, refer to type hints and docstrings, and explore the [full API reference](https://docs.powertools.aws.dev/lambda/python/latest/api/utilities/data_classes/) for complete property listings of each event source. ### Active MQ @@ -121,119 +111,46 @@ It is used for [Active MQ payloads](https://docs.aws.amazon.com/lambda/latest/dg the [AWS blog post](https://aws.amazon.com/blogs/compute/using-amazon-mq-as-an-event-source-for-aws-lambda/){target="_blank"} for more details. -=== "app.py" +=== "active_mq_example.py" - ```python hl_lines="4-5 9-10" - from typing import Dict + ```python hl_lines="2 8" + --8<-- "examples/event_sources/src/active_mq_example.py" + ``` - from aws_lambda_powertools import Logger - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.active_mq_event import ActiveMQEvent +=== "active_mq_event.json" - logger = Logger() - - @event_source(data_class=ActiveMQEvent) - def lambda_handler(event: ActiveMQEvent, context): - for message in event.messages: - logger.debug(f"MessageID: {message.message_id}") - data: Dict = message.json_data - logger.debug("Process json in base64 encoded data str", data) + ```json hl_lines="6 9 18 21" + --8<-- "examples/event_sources/events/active_mq_event_example.json" ``` ### API Gateway Authorizer -> New in 1.20.0 - It is used for [API Gateway Rest API Lambda Authorizer payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html){target="_blank"}. Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayAuthorizerTokenEvent`** for type `TOKEN`. -=== "app_type_request.py" - - This example uses the `APIGatewayAuthorizerResponse` to decline a given request if the user is not found. - - When the user is found, it includes the user details in the request context that will be available to the back-end, and returns a full access policy for admin users. - - ```python hl_lines="2-6 29 36-42 47 49" - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( - DENY_ALL_RESPONSE, - APIGatewayAuthorizerRequestEvent, - APIGatewayAuthorizerResponse, - HttpVerb, - ) - from secrets import compare_digest - - - def get_user_by_token(token): - if compare_digest(token, "admin-foo"): - return {"id": 0, "name": "Admin", "isAdmin": True} - elif compare_digest(token, "regular-foo"): - return {"id": 1, "name": "Joe"} - else: - return None - - - @event_source(data_class=APIGatewayAuthorizerRequestEvent) - def handler(event: APIGatewayAuthorizerRequestEvent, context): - user = get_user_by_token(event.headers["Authorization"]) +=== "apigw_type_request.py" - if user is None: - # No user was found - # to return 401 - `{"message":"Unauthorized"}`, but pollutes lambda error count metrics - # raise Exception("Unauthorized") - # to return 403 - `{"message":"Forbidden"}` - return DENY_ALL_RESPONSE - - # parse the `methodArn` as an `APIGatewayRouteArn` - arn = event.parsed_arn - - # Create the response builder from parts of the `methodArn` - # and set the logged in user id and context - policy = APIGatewayAuthorizerResponse( - principal_id=user["id"], - context=user, - region=arn.region, - aws_account_id=arn.aws_account_id, - api_id=arn.api_id, - stage=arn.stage, - ) + ```python hl_lines="2-4 7" + --8<-- "examples/event_sources/src/apigw_authorizer_request.py" + ``` - # Conditional IAM Policy - if user.get("isAdmin", False): - policy.allow_all_routes() - else: - policy.allow_route(HttpVerb.GET.value, "/user-profile") +=== "apiGatewayAuthorizerRequestEvent.json" - return policy.asdict() + ```json hl_lines="11" + --8<-- "examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json" ``` -=== "app_type_token.py" - - ```python hl_lines="2-5 12-18 21 23-24" - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( - APIGatewayAuthorizerTokenEvent, - APIGatewayAuthorizerResponse, - ) +=== "apigw_type_token.py" - @event_source(data_class=APIGatewayAuthorizerTokenEvent) - def handler(event: APIGatewayAuthorizerTokenEvent, context): - arn = event.parsed_arn + ```python hl_lines="2 8" + --8<-- "examples/event_sources/src/apigw_authorizer_token.py" + ``` - policy = APIGatewayAuthorizerResponse( - principal_id="user", - region=arn.region, - aws_account_id=arn.aws_account_id, - api_id=arn.api_id, - stage=arn.stage - ) +=== "apiGatewayAuthorizerTokentEvent.json" - if event.authorization_token == "42": - policy.allow_all_routes() - else: - policy.deny_all_routes() - return policy.asdict() + ```json hl_lines="6 9 18 21" + --8<-- "examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json" ``` ### API Gateway Authorizer V2 From ae2a8f18faaccebf5a8336a71a5338279b32c674 Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Thu, 23 Jan 2025 17:34:39 -0300 Subject: [PATCH 2/7] update examples up to CloudFormation Custom Resource --- docs/utilities/data_classes.md | 265 +++++------------- .../events/active_mq_event_example.json | 27 ++ examples/event_sources/events/albEvent.json | 28 ++ .../apiGatewayAuthorizerRequestEvent.json | 29 ++ .../apiGatewayAuthorizerTokenEvent.json | 5 + .../events/apiGatewayAuthorizerV2Event.json | 52 ++++ .../events/apiGatewayProxyV2Event.json | 69 +++++ .../event_sources/events/apigw_event.json | 20 ++ .../events/appSyncAuthorizerEvent.json | 13 + .../events/appSyncResolverEvent.json | 71 +++++ .../events/awsConfigRuleScheduled.json | 13 + .../events/bedrockAgentEvent.json | 16 ++ .../cloudformationCustomResourceCreate.json | 13 + .../event_sources/src/active_mq_example.py | 18 ++ examples/event_sources/src/albEvent.py | 9 + examples/event_sources/src/apigw_auth_v2.py | 30 ++ .../src/apigw_authorizer_request.py | 29 ++ .../src/apigw_authorizer_token.py | 29 ++ .../src/apigw_proxy_decorator.py | 9 + examples/event_sources/src/apigw_proxy_v2.py | 9 + .../src/appSyncAuthorizerEvent.py | 33 +++ .../event_sources/src/appSyncResolverEvent.py | 57 ++++ examples/event_sources/src/aws_config_rule.py | 3 +- .../event_sources/src/bedrock_agent_event.py | 3 +- .../cloudformation_custom_resource_handler.py | 28 +- .../src/getting_started_data_classes.py | 9 + 26 files changed, 667 insertions(+), 220 deletions(-) create mode 100644 examples/event_sources/events/active_mq_event_example.json create mode 100644 examples/event_sources/events/albEvent.json create mode 100644 examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json create mode 100644 examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json create mode 100644 examples/event_sources/events/apiGatewayAuthorizerV2Event.json create mode 100644 examples/event_sources/events/apiGatewayProxyV2Event.json create mode 100644 examples/event_sources/events/apigw_event.json create mode 100644 examples/event_sources/events/appSyncAuthorizerEvent.json create mode 100644 examples/event_sources/events/appSyncResolverEvent.json create mode 100644 examples/event_sources/events/awsConfigRuleScheduled.json create mode 100644 examples/event_sources/events/bedrockAgentEvent.json create mode 100644 examples/event_sources/events/cloudformationCustomResourceCreate.json create mode 100644 examples/event_sources/src/active_mq_example.py create mode 100644 examples/event_sources/src/albEvent.py create mode 100644 examples/event_sources/src/apigw_auth_v2.py create mode 100644 examples/event_sources/src/apigw_authorizer_request.py create mode 100644 examples/event_sources/src/apigw_authorizer_token.py create mode 100644 examples/event_sources/src/apigw_proxy_decorator.py create mode 100644 examples/event_sources/src/apigw_proxy_v2.py create mode 100644 examples/event_sources/src/appSyncAuthorizerEvent.py create mode 100644 examples/event_sources/src/appSyncResolverEvent.py create mode 100644 examples/event_sources/src/getting_started_data_classes.py diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index e4151c52e17..968b79e3f71 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -41,10 +41,10 @@ You can initialize the appropriate data class by passing the Lambda event object Alternatively, you can use the `event_source` decorator to automatically parse the event. -=== "getting_started_data_classes_decorator.py" +=== "apigw_proxy_decorator.py" ```python hl_lines="1 3" - --8<-- "examples/event_sources/src/getting_started_data_classes_decorator.py" + --8<-- "examples/event_sources/src/apigw_proxy_decorator.py" ``` === "apigw_event.json" @@ -137,270 +137,133 @@ Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayA === "apiGatewayAuthorizerRequestEvent.json" - ```json hl_lines="11" + ```json hl_lines="3 11" --8<-- "examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json" ``` === "apigw_type_token.py" - ```python hl_lines="2 8" + ```python hl_lines="2-4 7" --8<-- "examples/event_sources/src/apigw_authorizer_token.py" ``` === "apiGatewayAuthorizerTokentEvent.json" - ```json hl_lines="6 9 18 21" + ```json hl_lines="2 3" --8<-- "examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json" ``` ### API Gateway Authorizer V2 -> New in 1.20.0 - It is used for [API Gateway HTTP API Lambda Authorizer payload version 2](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html){target="_blank"}. See also [this blog post](https://aws.amazon.com/blogs/compute/introducing-iam-and-lambda-authorizers-for-amazon-api-gateway-http-apis/){target="_blank"} for more details. -=== "app.py" - - This example looks up user details via `x-token` header. It uses `APIGatewayAuthorizerResponseV2` to return a deny policy when user is not found or authorized. - - ```python hl_lines="2-5 21 24" - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( - APIGatewayAuthorizerEventV2, - APIGatewayAuthorizerResponseV2, - ) - from secrets import compare_digest - - - def get_user_by_token(token): - if compare_digest(token, "Foo"): - return {"name": "Foo"} - return None +=== "apigw_auth_v2.py" + ```python hl_lines="2-4 15" + --8<-- "examples/event_sources/src/apigw_auth_v2.py" + ``` - @event_source(data_class=APIGatewayAuthorizerEventV2) - def handler(event: APIGatewayAuthorizerEventV2, context): - user = get_user_by_token(event.headers["x-token"]) - - if user is None: - # No user was found, so we return not authorized - return APIGatewayAuthorizerResponseV2().asdict() +=== "apiGatewayAuthorizerV2Event.json" - # Found the user and setting the details in the context - return APIGatewayAuthorizerResponseV2(authorize=True, context=user).asdict() + ```json + --8<-- "examples/event_sources/events/apiGatewayAuthorizerV2Event.json" ``` ### API Gateway Proxy It is used for either API Gateway REST API or HTTP API using v1 proxy event. -=== "app.py" +=== "apigw_proxy_decorator.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, APIGatewayProxyEvent + ```python hl_lines="1 3" + --8<-- "examples/event_sources/src/apigw_proxy_decorator.py" + ``` + +=== "apiGatewayProxyEvent.json" - @event_source(data_class=APIGatewayProxyEvent) - def lambda_handler(event: APIGatewayProxyEvent, context): - if "helloworld" in event.path and event.http_method == "GET": - request_context = event.request_context - identity = request_context.identity - user = identity.user - do_something_with(event.json_body, user) + ```json hl_lines="3 4" + --8<-- "examples/event_sources/events/apigw_event.json" ``` ### API Gateway Proxy V2 It is used for HTTP API using v2 proxy event. -=== "app.py" +=== "apigw_proxy_v2.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, APIGatewayProxyEventV2 + ```python hl_lines="1 3" + --8<-- "examples/event_sources/src/apigw_proxy_v2.py" + ``` + +=== "apiGatewayProxyEvent.json" - @event_source(data_class=APIGatewayProxyEventV2) - def lambda_handler(event: APIGatewayProxyEventV2, context): - if "helloworld" in event.path and event.http_method == "POST": - do_something_with(event.json_body, event.query_string_parameters) + ```json + --8<-- "examples/event_sources/events/apiGatewayProxyV2Event.json" ``` ### Application Load Balancer -Is it used for Application load balancer event. +Is it used for [Application load balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) event. -=== "app.py" +=== "albEvent.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, ALBEvent + ```python hl_lines="1 3" + --8<-- "examples/event_sources/src/albEvent.py" + ``` + +=== "albEvent.json" - @event_source(data_class=ALBEvent) - def lambda_handler(event: ALBEvent, context): - if "helloworld" in event.path and event.http_method == "POST": - do_something_with(event.json_body, event.query_string_parameters) + ```json hl_lines="7 8" + --8<-- "examples/event_sources/events/albEvent.json" ``` ### AppSync Authorizer -> New in 1.20.0 - Used when building an [AWS_LAMBDA Authorization](https://docs.aws.amazon.com/appsync/latest/devguide/security-authz.html#aws-lambda-authorization){target="_blank"} with AppSync. See blog post [Introducing Lambda authorization for AWS AppSync GraphQL APIs](https://aws.amazon.com/blogs/mobile/appsync-lambda-auth/){target="_blank"} or read the Amplify documentation on using [AWS Lambda for authorization](https://docs.amplify.aws/lib/graphqlapi/authz/q/platform/js#aws-lambda){target="_blank"} with AppSync. -In this example extract the `requestId` as the `correlation_id` for logging, used `@event_source` decorator and builds the AppSync authorizer using the `AppSyncAuthorizerResponse` helper. - -=== "app.py" - - ```python - from typing import Dict - - from aws_lambda_powertools.logging import correlation_paths - from aws_lambda_powertools.logging.logger import Logger - from aws_lambda_powertools.utilities.data_classes.appsync_authorizer_event import ( - AppSyncAuthorizerEvent, - AppSyncAuthorizerResponse, - ) - from aws_lambda_powertools.utilities.data_classes.event_source import event_source - - logger = Logger() - - - def get_user_by_token(token: str): - """Look a user by token""" - ... +=== "appSyncAuthorizerEvent.py" + ```python hl_lines="5-7 20" + --8<-- "examples/event_sources/src/appSyncAuthorizerEvent.py" + ``` - @logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_AUTHORIZER) - @event_source(data_class=AppSyncAuthorizerEvent) - def lambda_handler(event: AppSyncAuthorizerEvent, context) -> Dict: - user = get_user_by_token(event.authorization_token) - - if not user: - # No user found, return not authorized - return AppSyncAuthorizerResponse().asdict() +=== "appSyncAuthorizerEvent.json" - return AppSyncAuthorizerResponse( - authorize=True, - resolver_context={"id": user.id}, - # Only allow admins to delete events - deny_fields=None if user.is_admin else ["Mutation.deleteEvent"], - ).asdict() + ```json + --8<-- "examples/event_sources/events/appSyncAuthorizerEvent.json" ``` ### AppSync Resolver -> New in 1.12.0 - Used when building Lambda GraphQL Resolvers with [Amplify GraphQL Transform Library](https://docs.amplify.aws/cli/graphql-transformer/function){target="_blank"} (`@function`), and [AppSync Direct Lambda Resolvers](https://aws.amazon.com/blogs/mobile/appsync-direct-lambda/){target="_blank"}. -In this example, we also use the new Logger `correlation_id` and built-in `correlation_paths` to extract, if available, X-Ray Trace ID in AppSync request headers: - -=== "app.py" - - ```python hl_lines="2-5 12 14 19 21 29-30" - from aws_lambda_powertools.logging import Logger, correlation_paths - from aws_lambda_powertools.utilities.data_classes.appsync_resolver_event import ( - AppSyncResolverEvent, - AppSyncIdentityCognito - ) - - logger = Logger() - - def get_locations(name: str = None, size: int = 0, page: int = 0): - """Your resolver logic here""" +The example serves as an AppSync resolver for the `locations` field of the `Merchant` type. It uses the `@event_source` decorator to parse the AppSync event, handles pagination and filtering for locations, and demonstrates `AppSyncIdentityCognito`. - @logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_RESOLVER) - def lambda_handler(event, context): - event: AppSyncResolverEvent = AppSyncResolverEvent(event) - - # Case insensitive look up of request headers - x_forwarded_for = event.headers.get("x-forwarded-for") - - # Support for AppSyncIdentityCognito or AppSyncIdentityIAM identity types - assert isinstance(event.identity, AppSyncIdentityCognito) - identity: AppSyncIdentityCognito = event.identity - - # Logging with correlation_id - logger.debug({ - "x-forwarded-for": x_forwarded_for, - "username": identity.username - }) - - if event.type_name == "Merchant" and event.field_name == "locations": - return get_locations(**event.arguments) - - raise ValueError(f"Unsupported field resolver: {event.field_name}") +=== "appSyncResolverEvent.py" + ```python hl_lines="2-4 8" + --8<-- "examples/event_sources/src/appSyncResolverEvent.py" ``` -=== "Example AppSync Event" +=== "appSyncResolverEvent.json" - ```json hl_lines="2-8 14 19 20" - { - "typeName": "Merchant", - "fieldName": "locations", - "arguments": { - "page": 2, - "size": 1, - "name": "value" - }, - "identity": { - "claims": { - "iat": 1615366261 - ... - }, - "username": "mike", - ... - }, - "request": { - "headers": { - "x-amzn-trace-id": "Root=1-60488877-0b0c4e6727ab2a1c545babd0", - "x-forwarded-for": "127.0.0.1" - ... - } - }, - ... - } - ``` - -=== "Example CloudWatch Log" - - ```json hl_lines="5 6 16" - { - "level":"DEBUG", - "location":"lambda_handler:22", - "message":{ - "x-forwarded-for":"127.0.0.1", - "username":"mike" - }, - "timestamp":"2021-03-10 12:38:40,062", - "service":"service_undefined", - "sampling_rate":0.0, - "cold_start":true, - "function_name":"func_name", - "function_memory_size":512, - "function_arn":"func_arn", - "function_request_id":"6735a29c-c000-4ae3-94e6-1f1c934f7f94", - "correlation_id":"Root=1-60488877-0b0c4e6727ab2a1c545babd0" - } + ```json + --8<-- "examples/event_sources/events/appSyncResolverEvent.json" ``` ### AWS Config Rule +The example utilizes AWSConfigRuleEvent to parse the incoming event. The function logs the message type of the invoking event and returns a simple success response. The example event receives a Scheduled Event Notification, but could also be ItemChanged and Oversized. + === "aws_config_rule.py" ```python hl_lines="3 11" --8<-- "examples/event_sources/src/aws_config_rule.py" ``` -=== "Event - ItemChanged" - ```json - --8<-- "examples/event_sources/src/aws_config_rule_item_changed.json" - ``` -=== "Event - Oversized" - ```json - --8<-- "examples/event_sources/src/aws_config_rule_oversized.json" - ``` === "Event - ScheduledNotification" ```json --8<-- "examples/event_sources/src/aws_config_rule_scheduled.json" @@ -408,20 +271,34 @@ In this example, we also use the new Logger `correlation_id` and built-in `corre ### Bedrock Agent -=== "app.py" +The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/) with `BedrockAgentEvent` to parse the incoming event. The function logs the action group and input text, then returns a structured response compatible with Bedrock Agent's expected format, including a mock response body. + +=== "bedrock_agent_event.py" - ```python hl_lines="2 8 10" + ```python hl_lines="2 6" --8<-- "examples/event_sources/src/bedrock_agent_event.py" ``` +=== "bedrockAgentEvent.json" + ```json + --8<-- "examples/event_sources/events/bedrockAgentEvent.json" + ``` + ### CloudFormation Custom Resource -=== "app.py" +The example focuses on the "Create" request type, generating a unique physical resource ID and logging the process. The function is structured to potentially handle "Update" and "Delete" operations as well. + +=== "cloudformation_custom_resource_handler.py" - ```python hl_lines="11 13 15 17 19" + ```python hl_lines="2-3 10 14 19" --8<-- "examples/event_sources/src/cloudformation_custom_resource_handler.py" ``` +=== "cloudformationCustomResourceCreate.json" + ```json + --8<-- "examples/event_sources/events/cloudformationCustomResourceCreate.json" + ``` + ### CloudWatch Dashboard Custom Widget === "app.py" diff --git a/examples/event_sources/events/active_mq_event_example.json b/examples/event_sources/events/active_mq_event_example.json new file mode 100644 index 00000000000..50da9596682 --- /dev/null +++ b/examples/event_sources/events/active_mq_event_example.json @@ -0,0 +1,27 @@ +{ + "eventSource": "aws:mq", + "eventSourceArn": "arn:aws:mq:us-east-2:111122223333:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8", + "messages": [ + { + "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1.mq.us-east-2.amazonaws.com-37557-1234520418293-4:1:1:1:1", + "messageType": "jms/text-message", + "destination": { + "physicalName": "testQueue" + }, + "data": "QUJDOkFBQUE=", + "timestamp": 1598827811958, + "properties": { + "index": "1" + } + }, + { + "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1.mq.us-east-2.amazonaws.com-37557-1234520418293-4:1:1:1:2", + "messageType": "jms/bytes-message", + "destination": { + "physicalName": "testQueue2" + }, + "data": "LQaGQ82S48k=", + "timestamp": 1598827811959 + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/events/albEvent.json b/examples/event_sources/events/albEvent.json new file mode 100644 index 00000000000..9328cb39e12 --- /dev/null +++ b/examples/event_sources/events/albEvent.json @@ -0,0 +1,28 @@ +{ + "requestContext": { + "elb": { + "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/lambda-279XGJDqGZ5rsrHC2Fjr/49e9d65c45c6791a" + } + }, + "httpMethod": "GET", + "path": "/lambda", + "queryStringParameters": { + "query": "1234ABCD" + }, + "headers": { + "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", + "accept-encoding": "gzip", + "accept-language": "en-US,en;q=0.9", + "connection": "keep-alive", + "host": "lambda-alb-123578498.us-east-2.elb.amazonaws.com", + "upgrade-insecure-requests": "1", + "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", + "x-amzn-trace-id": "Root=1-5c536348-3d683b8b04734faae651f476", + "x-forwarded-for": "72.12.164.125", + "x-forwarded-port": "80", + "x-forwarded-proto": "http", + "x-imforwards": "20" + }, + "body": "Test", + "isBase64Encoded": false +} diff --git a/examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json b/examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json new file mode 100644 index 00000000000..920258aa396 --- /dev/null +++ b/examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json @@ -0,0 +1,29 @@ +{ + "version": "1.0", + "type": "REQUEST", + "methodArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", + "identitySource": "user1,123", + "resource": "/request", + "path": "/request", + "httpMethod": "GET", + "headers": { + "X-AMZ-Date": "20170718T062915Z", + "HeaderAuth1": "headerValue1" + }, + "queryStringParameters": { + "QueryString1": "queryValue1" + }, + "stageVariables": { + "StageVar1": "stageValue1" + }, + "requestContext": { + "accountId": "123456789012", + "apiId": "abcdef123", + "httpMethod": "GET", + "identity": { + "sourceIp": "test-invoke-source-ip" + }, + "path": "/request", + "stage": "test" + } +} \ No newline at end of file diff --git a/examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json b/examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json new file mode 100644 index 00000000000..f30f360f6d8 --- /dev/null +++ b/examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json @@ -0,0 +1,5 @@ +{ + "type": "TOKEN", + "authorizationToken": "allow", + "methodArn": "arn:aws:execute-api:us-west-2:123456789012:ymy8tbxw7b/*/GET/" +} diff --git a/examples/event_sources/events/apiGatewayAuthorizerV2Event.json b/examples/event_sources/events/apiGatewayAuthorizerV2Event.json new file mode 100644 index 00000000000..83c3c9d8d61 --- /dev/null +++ b/examples/event_sources/events/apiGatewayAuthorizerV2Event.json @@ -0,0 +1,52 @@ +{ + "version": "2.0", + "type": "REQUEST", + "routeArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", + "identitySource": ["user1", "123"], + "routeKey": "GET /merchants", + "rawPath": "/merchants", + "rawQueryString": "parameter1=value1¶meter1=value2¶meter2=value", + "cookies": ["cookie1", "cookie2"], + "headers": { + "x-amzn-trace-id": "Root=1-611cc4a7-0746ebee281cfd967db97b64", + "Header1": "value1", + "Header2": "value2", + "Authorization": "value" + }, + "queryStringParameters": { + "parameter1": "value1,value2", + "parameter2": "value" + }, + "requestContext": { + "accountId": "123456789012", + "apiId": "api-id", + "authentication": { + "clientCert": { + "clientCertPem": "CERT_CONTENT", + "subjectDN": "www.example.com", + "issuerDN": "Example issuer", + "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", + "validity": { + "notBefore": "May 28 12:30:02 2019 GMT", + "notAfter": "Aug 5 09:36:04 2021 GMT" + } + } + }, + "domainName": "id.execute-api.us-east-1.amazonaws.com", + "domainPrefix": "id", + "http": { + "method": "POST", + "path": "/merchants", + "protocol": "HTTP/1.1", + "sourceIp": "10.10.10.10", + "userAgent": "agent" + }, + "requestId": "id", + "routeKey": "GET /merchants", + "stage": "$default", + "time": "12/Mar/2020:19:03:58 +0000", + "timeEpoch": 1583348638390 + }, + "pathParameters": { "parameter1": "value1" }, + "stageVariables": { "stageVariable1": "value1", "stageVariable2": "value2" } +} diff --git a/examples/event_sources/events/apiGatewayProxyV2Event.json b/examples/event_sources/events/apiGatewayProxyV2Event.json new file mode 100644 index 00000000000..9de632b8e3d --- /dev/null +++ b/examples/event_sources/events/apiGatewayProxyV2Event.json @@ -0,0 +1,69 @@ +{ + "version": "2.0", + "routeKey": "$default", + "rawPath": "/my/path", + "rawQueryString": "parameter1=value1¶meter1=value2¶meter2=value", + "cookies": [ + "cookie1", + "cookie2" + ], + "headers": { + "Header1": "value1", + "Header2": "value1,value2" + }, + "queryStringParameters": { + "parameter1": "value1,value2", + "parameter2": "value" + }, + "requestContext": { + "accountId": "123456789012", + "apiId": "api-id", + "authentication": { + "clientCert": { + "clientCertPem": "CERT_CONTENT", + "subjectDN": "www.example.com", + "issuerDN": "Example issuer", + "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", + "validity": { + "notBefore": "May 28 12:30:02 2019 GMT", + "notAfter": "Aug 5 09:36:04 2021 GMT" + } + } + }, + "authorizer": { + "jwt": { + "claims": { + "claim1": "value1", + "claim2": "value2" + }, + "scopes": [ + "scope1", + "scope2" + ] + } + }, + "domainName": "id.execute-api.us-east-1.amazonaws.com", + "domainPrefix": "id", + "http": { + "method": "POST", + "path": "/my/path", + "protocol": "HTTP/1.1", + "sourceIp": "192.168.0.1/32", + "userAgent": "agent" + }, + "requestId": "id", + "routeKey": "$default", + "stage": "$default", + "time": "12/Mar/2020:19:03:58 +0000", + "timeEpoch": 1583348638390 + }, + "body": "{\"message\": \"hello world\", \"username\": \"tom\"}", + "pathParameters": { + "parameter1": "value1" + }, + "isBase64Encoded": false, + "stageVariables": { + "stageVariable1": "value1", + "stageVariable2": "value2" + } +} diff --git a/examples/event_sources/events/apigw_event.json b/examples/event_sources/events/apigw_event.json new file mode 100644 index 00000000000..dc0efd36604 --- /dev/null +++ b/examples/event_sources/events/apigw_event.json @@ -0,0 +1,20 @@ +{ + "resource": "/helloworld", + "path": "/hello", + "httpMethod": "GET", + "headers": { + "Accept": "*/*", + "Host": "api.example.com" + }, + "queryStringParameters": { + "name": "John" + }, + "pathParameters": null, + "stageVariables": null, + "requestContext": { + "requestId": "c6af9ac6-7b61-11e6-9a41-93e8deadbeef", + "stage": "prod" + }, + "body": null, + "isBase64Encoded": false +} \ No newline at end of file diff --git a/examples/event_sources/events/appSyncAuthorizerEvent.json b/examples/event_sources/events/appSyncAuthorizerEvent.json new file mode 100644 index 00000000000..8820f2ab00d --- /dev/null +++ b/examples/event_sources/events/appSyncAuthorizerEvent.json @@ -0,0 +1,13 @@ +{ + "authorizationToken": "123", + "requestContext": { + "apiId": "1234", + "accountId": "11111111", + "requestId": "1111", + "queryString": "mutation MyNewTask($desc: String!) {\n createTask(description: $desc, owner: \"ccc\", taskStatus: \"cc\", title: \"ccc\") {\n id\n }\n}\n", + "operationName": "MyNewTask", + "variables": { + "desc": "Foo" + } + } +} \ No newline at end of file diff --git a/examples/event_sources/events/appSyncResolverEvent.json b/examples/event_sources/events/appSyncResolverEvent.json new file mode 100644 index 00000000000..84ac71951c6 --- /dev/null +++ b/examples/event_sources/events/appSyncResolverEvent.json @@ -0,0 +1,71 @@ +{ + "typeName": "Merchant", + "fieldName": "locations", + "arguments": { + "page": 2, + "size": 1, + "name": "value" + }, + "identity": { + "claims": { + "sub": "07920713-4526-4642-9c88-2953512de441", + "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_POOL_ID", + "aud": "58rc9bf5kkti90ctmvioppukm9", + "event_id": "7f4c9383-abf6-48b7-b821-91643968b755", + "token_use": "id", + "auth_time": 1615366261, + "name": "Michael Brewer", + "exp": 1615369861, + "iat": 1615366261 + }, + "defaultAuthStrategy": "ALLOW", + "groups": null, + "issuer": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_POOL_ID", + "sourceIp": [ + "11.215.2.22" + ], + "sub": "07920713-4526-4642-9c88-2953512de441", + "username": "mike" + }, + "source": { + "name": "Value", + "nested": { + "name": "value", + "list": [] + } + }, + "request": { + "headers": { + "x-forwarded-for": "11.215.2.22, 64.44.173.11", + "cloudfront-viewer-country": "US", + "cloudfront-is-tablet-viewer": "false", + "via": "2.0 SOMETHING.cloudfront.net (CloudFront)", + "cloudfront-forwarded-proto": "https", + "origin": "https://console.aws.amazon.com", + "content-length": "156", + "accept-language": "en-US,en;q=0.9", + "host": "SOMETHING.appsync-api.us-east-1.amazonaws.com", + "x-forwarded-proto": "https", + "sec-gpc": "1", + "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) etc.", + "accept": "*/*", + "cloudfront-is-mobile-viewer": "false", + "cloudfront-is-smarttv-viewer": "false", + "accept-encoding": "gzip, deflate, br", + "referer": "https://console.aws.amazon.com/", + "content-type": "application/json", + "sec-fetch-mode": "cors", + "x-amz-cf-id": "Fo5VIuvP6V6anIEt62WzFDCK45mzM4yEdpt5BYxOl9OFqafd-WR0cA==", + "x-amzn-trace-id": "Root=1-60488877-0b0c4e6727ab2a1c545babd0", + "authorization": "AUTH-HEADER", + "sec-fetch-dest": "empty", + "x-amz-user-agent": "AWS-Console-AppSync/", + "cloudfront-is-desktop-viewer": "true", + "sec-fetch-site": "cross-site", + "x-forwarded-port": "443" + } + }, + "prev": { + "result": {} + } +} diff --git a/examples/event_sources/events/awsConfigRuleScheduled.json b/examples/event_sources/events/awsConfigRuleScheduled.json new file mode 100644 index 00000000000..02ce2a0700c --- /dev/null +++ b/examples/event_sources/events/awsConfigRuleScheduled.json @@ -0,0 +1,13 @@ +{ + "version":"1.0", + "invokingEvent":"{\"awsAccountId\":\"0123456789012\",\"notificationCreationTime\":\"2023-04-27T13:26:17.741Z\",\"messageType\":\"ScheduledNotification\",\"recordVersion\":\"1.0\"}", + "ruleParameters":"{\"test\":\"x\"}", + "resultToken":"eyJlbmNyeXB0ZWREYXRhIjpbLTQyLDEyNiw1MiwtMzcsLTI5LDExNCwxMjYsLTk3LDcxLDIyLC0xMTAsMTEyLC0zMSwtOTMsLTQ5LC0xMDEsODIsMyw1NCw0OSwzLC02OSwtNzEsLTcyLDYyLDgxLC03MiwtODEsNTAsMzUsLTUwLC03NSwtMTE4LC0xMTgsNzcsMTIsLTEsMTQsMTIwLC03MCwxMTAsLTMsNTAsLTYwLDEwNSwtNTcsNDUsMTAyLC0xMDksLTYxLC0xMDEsLTYxLDQsNDcsLTg0LC0yNSwxMTIsNTQsLTcxLC0xMDksNDUsMTksMTIzLC0yNiwxMiwtOTYsLTczLDU0LC0xMDksOTIsNDgsLTU5LC04MywtMzIsODIsLTM2LC05MCwxOSw5OCw3Nyw3OCw0MCw4MCw3OCwtMTA1LDg3LC0xMTMsLTExNiwtNzIsMzAsLTY4LC00MCwtODksMTA5LC0xMDgsLTEyOCwyMiw3Miw3NywtMjEsNzYsODksOTQsLTU5LDgxLC0xMjEsLTEwNywtNjcsNjMsLTcsODIsLTg5LC00NiwtMzQsLTkyLDEyMiwtOTAsMTcsLTEyMywyMCwtODUsLTU5LC03MCw4MSwyNyw2Miw3NCwtODAsODAsMzcsNDAsMTE2LDkxLC0yNCw1MSwtNDEsLTc5LDI4LDEyMCw1MywtMTIyLC04MywxMjYsLTc4LDI1LC05OCwtMzYsMTMsMzIsODYsLTI1LDQ4LDMsLTEwMiwtMTYsMjQsLTMsODUsNDQsLTI4LDE0LDIyLDI3LC0xMjIsMTE4LDEwMSw3Myw1LDE4LDU4LC02NCwyMywtODYsLTExNCwyNCwwLDEwMCwyLDExNywtNjIsLTExOSwtMTI4LDE4LDY1LDkwLDE0LC0xMDIsMjEsODUsMTAwLDExNyw1NSwyOSwxMjcsNTQsNzcsNzIsNzQsMzIsNzgsMywtMTExLDExOCwtNzAsLTg2LDEyNywtNzQsNjAsMjIsNDgsMzcsODcsMTMsMCwtMTA1LDUsLTEyMiwtNzEsLTEwMCwxMDQsLTEyNiwtMTYsNzksLTMwLDEyMCw3NywtNzYsLTQxLC0xMDksMiw5NywtMTAxLC0xLDE1LDEyMywxMTksMTA4LDkxLC0yMCwtMTI1LC05NiwyLC05MiwtMTUsLTY3LC03NiwxMjEsMTA0LDEwNSw2NCwtNjIsMTAyLDgsNCwxMjEsLTQ1LC04MCwtODEsLTgsMTE4LDQ0LC04MiwtNDEsLTg0LDczLC0zNiwxMTcsODAsLTY5LC03MywxNCwtMTgsNzIsMzEsLTUsLTExMSwtMTI3LC00MywzNCwtOCw1NywxMDMsLTQyLDE4LC0zMywxMTcsLTI2LC0xMjQsLTEyNCwxNSw4OCwyMywxNiwtNTcsNTQsLTYsLTEwMiwxMTYsLTk5LC00NSwxMDAsLTM1LDg3LDM3LDYsOTgsMiwxMTIsNjAsLTMzLDE3LDI2LDk5LC0xMDUsNDgsLTEwNCwtMTE5LDc4LDYsLTU4LDk1LDksNDEsLTE2LDk2LDQxLC0yMiw5Niw3MiwxMTYsLTk1LC0xMDUsLTM2LC0xMjMsLTU1LDkxLC00NiwtNywtOTIsMzksNDUsODQsMTYsLTEyNCwtMTIyLC02OCwxLC0yOCwxMjIsLTYwLDgyLDEwMywtNTQsLTkyLDI3LC05OSwtMTI4LDY1LDcsLTcyLC0xMjcsNjIsLTIyLDIsLTExLDE4LC04OSwtMTA2LC03NCw3MSw4NiwtMTE2LC0yNSwtMTE1LC05Niw1NywtMzQsMjIsLTEyNCwtMTI1LC00LC00MSw0MiwtNTcsLTEwMyw0NSw3OCwxNCwtMTA2LDExMSw5OCwtOTQsLTcxLDUsNzUsMTksLTEyNCwtMzAsMzQsLTUwLDc1LC04NCwtNTAsLTU2LDUxLC0xNSwtMzYsNjEsLTk0LC03OSwtNDUsMTI2LC03NywtMTA1LC0yLC05MywtNiw4LC0zLDYsLTQyLDQ2LDEyNSw1LC05OCwxMyw2NywtMTAsLTEzLC05NCwtNzgsLTEyNywxMjEsLTI2LC04LC0xMDEsLTkxLDEyMSwtNDAsLTEyNCwtNjQsODQsLTcyLDYzLDE5LC04NF0sIm1hdGVyaWFsU2V0U2VyaWFsTnVtYmVyIjoxLCJpdlBhcmFtZXRlclNwZWMiOnsiaXYiOlszLC0xMCwtODUsMTE0LC05MCwxMTUsNzcsNTUsNTQsMTUsMzgsODQsLTExNiwxNCwtNDAsMjhdfX0=", + "eventLeftScope":false, + "executionRoleArn":"arn:aws:iam::0123456789012:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig", + "configRuleArn":"arn:aws:config:us-east-1:0123456789012:config-rule/config-rule-pdmyw1", + "configRuleName":"rule-ec2-test", + "configRuleId":"config-rule-pdmyw1", + "accountId":"0123456789012", + "evaluationMode":"DETECTIVE" + } diff --git a/examples/event_sources/events/bedrockAgentEvent.json b/examples/event_sources/events/bedrockAgentEvent.json new file mode 100644 index 00000000000..b7ad75b3c43 --- /dev/null +++ b/examples/event_sources/events/bedrockAgentEvent.json @@ -0,0 +1,16 @@ +{ + "actionGroup": "ClaimManagementActionGroup", + "messageVersion": "1.0", + "sessionId": "12345678912345", + "sessionAttributes": {}, + "promptSessionAttributes": {}, + "inputText": "I want to claim my insurance", + "agent": { + "alias": "TSTALIASID", + "name": "test", + "version": "DRAFT", + "id": "8ZXY0W8P1H" + }, + "httpMethod": "GET", + "apiPath": "/claims" +} diff --git a/examples/event_sources/events/cloudformationCustomResourceCreate.json b/examples/event_sources/events/cloudformationCustomResourceCreate.json new file mode 100644 index 00000000000..5c32d8c7aa1 --- /dev/null +++ b/examples/event_sources/events/cloudformationCustomResourceCreate.json @@ -0,0 +1,13 @@ +{ + "RequestType": "Create", + "ServiceToken": "arn:aws:lambda:us-east-1:xxx:function:xxxx-CrbuiltinfunctionidProvi-2vKAalSppmKe", + "ResponseURL": "https://cloudformation-custom-resource-response-useast1.s3.amazonaws.com/7F%7Cb1f50fdfc25f3b", + "StackId": "arn:aws:cloudformation:us-east-1:xxxx:stack/xxxx/271845b0-f2e8-11ed-90ac-0eeb25b8ae21", + "RequestId": "xxxxx-d2a0-4dfb-ab1f-xxxxxx", + "LogicalResourceId": "xxxxxxxxx", + "ResourceType": "Custom::MyType", + "ResourceProperties": { + "ServiceToken": "arn:aws:lambda:us-east-1:xxxxx:function:xxxxx", + "MyProps": "ss" + } +} \ No newline at end of file diff --git a/examples/event_sources/src/active_mq_example.py b/examples/event_sources/src/active_mq_example.py new file mode 100644 index 00000000000..983233606ec --- /dev/null +++ b/examples/event_sources/src/active_mq_example.py @@ -0,0 +1,18 @@ +import json + +from aws_lambda_powertools import Logger +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.active_mq_event import ActiveMQEvent + +logger = Logger() + + +@event_source(data_class=ActiveMQEvent) +def lambda_handler(event: ActiveMQEvent, context): + for message in event.messages: + msg = message.message_id + msg_pn = message.destination_physicalname + + logger.info(f"Message ID: {msg} and physical name: {msg_pn}") + + return {"statusCode": 200, "body": json.dumps("Processing complete")} diff --git a/examples/event_sources/src/albEvent.py b/examples/event_sources/src/albEvent.py new file mode 100644 index 00000000000..fd2b6aef05b --- /dev/null +++ b/examples/event_sources/src/albEvent.py @@ -0,0 +1,9 @@ +from aws_lambda_powertools.utilities.data_classes import ALBEvent, event_source + + +@event_source(data_class=ALBEvent) +def lambda_handler(event: ALBEvent, context): + if "lambda" in event.path and event.http_method == "GET": + return {"statusCode": 200, "body": f"Hello from path: {event.path}"} + else: + return {"statusCode": 400, "body": "No Hello from path"} diff --git a/examples/event_sources/src/apigw_auth_v2.py b/examples/event_sources/src/apigw_auth_v2.py new file mode 100644 index 00000000000..128c7a57a6a --- /dev/null +++ b/examples/event_sources/src/apigw_auth_v2.py @@ -0,0 +1,30 @@ +from secrets import compare_digest + +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( + APIGatewayAuthorizerEventV2, + APIGatewayAuthorizerResponseV2, +) + + +def get_user_by_token(token): + if compare_digest(token, "value"): + return {"name": "Foo"} + return None + + +@event_source(data_class=APIGatewayAuthorizerEventV2) +def lambda_handler(event: APIGatewayAuthorizerEventV2, context): + user = get_user_by_token(event.headers.get("Authorization")) + + if user is None: + # No user was found, so we return not authorized + return APIGatewayAuthorizerResponseV2(authorize=False).asdict() + + # Found the user and setting the details in the context + response = APIGatewayAuthorizerResponseV2( + authorize=True, + context=user, + ) + + return response.asdict() diff --git a/examples/event_sources/src/apigw_authorizer_request.py b/examples/event_sources/src/apigw_authorizer_request.py new file mode 100644 index 00000000000..e0d81196af2 --- /dev/null +++ b/examples/event_sources/src/apigw_authorizer_request.py @@ -0,0 +1,29 @@ +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( + APIGatewayAuthorizerRequestEvent, + APIGatewayAuthorizerResponse, +) + + +@event_source(data_class=APIGatewayAuthorizerRequestEvent) +def lambda_handler(event: APIGatewayAuthorizerRequestEvent, context): + # Simple auth check (replace with your actual auth logic) + is_authorized = event.headers.get("HeaderAuth1") == "headerValue1" + + if not is_authorized: + return {"principalId": "", "policyDocument": {"Version": "2012-10-17", "Statement": []}} + + arn = event.parsed_arn + + policy = APIGatewayAuthorizerResponse( + principal_id="user", + context={"user": "example"}, + region=arn.region, + aws_account_id=arn.aws_account_id, + api_id=arn.api_id, + stage=arn.stage, + ) + + policy.allow_all_routes() + + return policy.asdict() diff --git a/examples/event_sources/src/apigw_authorizer_token.py b/examples/event_sources/src/apigw_authorizer_token.py new file mode 100644 index 00000000000..e27eded5c7a --- /dev/null +++ b/examples/event_sources/src/apigw_authorizer_token.py @@ -0,0 +1,29 @@ +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.api_gateway_authorizer_event import ( + APIGatewayAuthorizerResponse, + APIGatewayAuthorizerTokenEvent, +) + + +@event_source(data_class=APIGatewayAuthorizerTokenEvent) +def lambda_handler(event: APIGatewayAuthorizerTokenEvent, context): + # Simple token check (replace with your actual token validation logic) + is_valid_token = event.authorization_token == "allow" + + if not is_valid_token: + return {"principalId": "", "policyDocument": {"Version": "2012-10-17", "Statement": []}} + + arn = event.parsed_arn + + policy = APIGatewayAuthorizerResponse( + principal_id="user", + context={"user": "example"}, + region=arn.region, + aws_account_id=arn.aws_account_id, + api_id=arn.api_id, + stage=arn.stage, + ) + + policy.allow_all_routes() + + return policy.asdict() diff --git a/examples/event_sources/src/apigw_proxy_decorator.py b/examples/event_sources/src/apigw_proxy_decorator.py new file mode 100644 index 00000000000..81db0b1a6aa --- /dev/null +++ b/examples/event_sources/src/apigw_proxy_decorator.py @@ -0,0 +1,9 @@ +from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent, event_source + + +@event_source(data_class=APIGatewayProxyEvent) +def lambda_handler(event: APIGatewayProxyEvent, context): + if "hello" in event.path and event.http_method == "GET": + return {"statusCode": 200, "body": f"Hello from path: {event.path}"} + else: + return {"statusCode": 400, "body": "No Hello from path"} diff --git a/examples/event_sources/src/apigw_proxy_v2.py b/examples/event_sources/src/apigw_proxy_v2.py new file mode 100644 index 00000000000..fb468973e15 --- /dev/null +++ b/examples/event_sources/src/apigw_proxy_v2.py @@ -0,0 +1,9 @@ +from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEventV2, event_source + + +@event_source(data_class=APIGatewayProxyEventV2) +def lambda_handler(event: APIGatewayProxyEventV2, context): + if "hello" in event.path and event.http_method == "POST": + return {"statusCode": 200, "body": f"Hello from path: {event.path}"} + else: + return {"statusCode": 400, "body": "No Hello from path"} diff --git a/examples/event_sources/src/appSyncAuthorizerEvent.py b/examples/event_sources/src/appSyncAuthorizerEvent.py new file mode 100644 index 00000000000..012f7beb016 --- /dev/null +++ b/examples/event_sources/src/appSyncAuthorizerEvent.py @@ -0,0 +1,33 @@ +from typing import Dict + +from aws_lambda_powertools.logging import correlation_paths +from aws_lambda_powertools.logging.logger import Logger +from aws_lambda_powertools.utilities.data_classes.appsync_authorizer_event import ( + AppSyncAuthorizerEvent, + AppSyncAuthorizerResponse, +) +from aws_lambda_powertools.utilities.data_classes.event_source import event_source + +logger = Logger() + + +def get_user_by_token(token: str): + """Look a user by token""" + ... + + +@logger.inject_lambda_context(correlation_id_path=correlation_paths.APPSYNC_AUTHORIZER) +@event_source(data_class=AppSyncAuthorizerEvent) +def lambda_handler(event: AppSyncAuthorizerEvent, context) -> Dict: + user = get_user_by_token(event.authorization_token) + + if not user: + # No user found, return not authorized + return AppSyncAuthorizerResponse().asdict() + + return AppSyncAuthorizerResponse( + authorize=True, + resolver_context={"id": user.id}, + # Only allow admins to delete events + deny_fields=None if user.is_admin else ["Mutation.deleteEvent"], + ).asdict() diff --git a/examples/event_sources/src/appSyncResolverEvent.py b/examples/event_sources/src/appSyncResolverEvent.py new file mode 100644 index 00000000000..6884b0649fd --- /dev/null +++ b/examples/event_sources/src/appSyncResolverEvent.py @@ -0,0 +1,57 @@ +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.appsync_resolver_event import ( + AppSyncIdentityCognito, + AppSyncResolverEvent, +) +from aws_lambda_powertools.utilities.typing import LambdaContext + + +@event_source(data_class=AppSyncResolverEvent) +def lambda_handler(event: AppSyncResolverEvent, context: LambdaContext): + # Access the AppSync event details + type_name = event.type_name + field_name = event.field_name + arguments = event.arguments + source = event.source + + print(f"Resolving field '{field_name}' for type '{type_name}'") + print(f"Arguments: {arguments}") + print(f"Source: {source}") + + # Check if the identity is Cognito-based + if isinstance(event.identity, AppSyncIdentityCognito): + user_id = event.identity.sub + username = event.identity.username + print(f"Request from Cognito user: {username} (ID: {user_id})") + else: + print("Request is not from a Cognito-authenticated user") + + if type_name == "Merchant" and field_name == "locations": + page = arguments.get("page", 1) + size = arguments.get("size", 10) + name_filter = arguments.get("name") + + # Here you would typically fetch locations from a database + # This is a mock implementation + locations = [ + {"id": "1", "name": "Location 1", "address": "123 Main St"}, + {"id": "2", "name": "Location 2", "address": "456 Elm St"}, + {"id": "3", "name": "Location 3", "address": "789 Oak St"}, + ] + + # Apply name filter if provided + if name_filter: + locations = [loc for loc in locations if name_filter.lower() in loc["name"].lower()] + + # Apply pagination + start = (page - 1) * size + end = start + size + paginated_locations = locations[start:end] + + return { + "items": paginated_locations, + "totalCount": len(locations), + "nextToken": str(page + 1) if end < len(locations) else None, + } + else: + raise Exception(f"Unhandled field: {field_name} for type: {type_name}") diff --git a/examples/event_sources/src/aws_config_rule.py b/examples/event_sources/src/aws_config_rule.py index b81ae39bd25..07d87999982 100644 --- a/examples/event_sources/src/aws_config_rule.py +++ b/examples/event_sources/src/aws_config_rule.py @@ -3,13 +3,12 @@ AWSConfigRuleEvent, event_source, ) -from aws_lambda_powertools.utilities.typing import LambdaContext logger = Logger() @event_source(data_class=AWSConfigRuleEvent) -def lambda_handler(event: AWSConfigRuleEvent, context: LambdaContext): +def lambda_handler(event: AWSConfigRuleEvent, context): message_type = event.invoking_event.message_type logger.info(f"Logging {message_type} event rule", invoke_event=event.raw_invoking_event) diff --git a/examples/event_sources/src/bedrock_agent_event.py b/examples/event_sources/src/bedrock_agent_event.py index b16d3c86bad..31d5684fa08 100644 --- a/examples/event_sources/src/bedrock_agent_event.py +++ b/examples/event_sources/src/bedrock_agent_event.py @@ -1,12 +1,11 @@ from aws_lambda_powertools import Logger from aws_lambda_powertools.utilities.data_classes import BedrockAgentEvent, event_source -from aws_lambda_powertools.utilities.typing import LambdaContext logger = Logger() @event_source(data_class=BedrockAgentEvent) -def lambda_handler(event: BedrockAgentEvent, context: LambdaContext) -> dict: +def lambda_handler(event: BedrockAgentEvent, context) -> dict: input_text = event.input_text logger.info(f"Bedrock Agent {event.action_group} invoked with input", input_text=input_text) diff --git a/examples/event_sources/src/cloudformation_custom_resource_handler.py b/examples/event_sources/src/cloudformation_custom_resource_handler.py index fa5b85d54df..87fa2bd1ab9 100644 --- a/examples/event_sources/src/cloudformation_custom_resource_handler.py +++ b/examples/event_sources/src/cloudformation_custom_resource_handler.py @@ -13,31 +13,15 @@ def lambda_handler(event: CloudFormationCustomResourceEvent, context: LambdaCont request_type = event.request_type if request_type == "Create": - return on_create(event) - if request_type == "Update": - return on_update(event) - if request_type == "Delete": - return on_delete(event) + return on_create(event, context) + else: + raise ValueError(f"Invalid request type: {request_type}") -def on_create(event: CloudFormationCustomResourceEvent): +def on_create(event: CloudFormationCustomResourceEvent, context: LambdaContext): props = event.resource_properties logger.info(f"Create new resource with props {props}.") - # Add your create code here ... - physical_id = ... + physical_id = f"MyResource-{context.aws_request_id}" - return {"PhysicalResourceId": physical_id} - - -def on_update(event: CloudFormationCustomResourceEvent): - physical_id = event.physical_resource_id - props = event.resource_properties - logger.info(f"Update resource {physical_id} with props {props}.") - # ... - - -def on_delete(event: CloudFormationCustomResourceEvent): - physical_id = event.physical_resource_id - logger.info(f"Delete resource {physical_id}.") - # ... + return {"PhysicalResourceId": physical_id, "Data": {"Message": "Resource created successfully"}} diff --git a/examples/event_sources/src/getting_started_data_classes.py b/examples/event_sources/src/getting_started_data_classes.py new file mode 100644 index 00000000000..64119fc4c0f --- /dev/null +++ b/examples/event_sources/src/getting_started_data_classes.py @@ -0,0 +1,9 @@ +from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEvent + + +def lambda_handler(event: dict, context): + api_event = APIGatewayProxyEvent(event) + if "hello" in api_event.path and api_event.http_method == "GET": + return {"statusCode": 200, "body": f"Hello from path: {api_event.path}"} + else: + return {"statusCode": 400, "body": "No Hello from path"} From 099464ab7155f6b7ea3502e631c97e4bc29fb3fe Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Fri, 24 Jan 2025 10:08:52 -0300 Subject: [PATCH 3/7] continue fixing the doc examples --- docs/utilities/data_classes.md | 120 ++++++------------ .../cloudWatchAlarmEventSingleMetric.json | 59 +++++++++ .../events/cloudWatchDashboardEvent.json | 38 ++++++ .../events/cloudWatchLogEvent.json | 5 + .../kinesisStreamCloudWatchLogsEvent.json | 36 ++++++ ...uthorizerEvent.py => appSyncAuthorizer.py} | 0 ...yncResolverEvent.py => appSyncResolver.py} | 0 ...edrock_agent_event.py => bedrock_agent.py} | 0 .../event_sources/src/cloudWatchDashboard.py | 24 ++++ examples/event_sources/src/cloudwatch_logs.py | 18 +++ .../src/kinesisStreamCloudWatchLogs.py | 17 +++ .../src/kinesis_batch_example.py | 29 +++++ 12 files changed, 268 insertions(+), 78 deletions(-) create mode 100644 examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json create mode 100644 examples/event_sources/events/cloudWatchDashboardEvent.json create mode 100644 examples/event_sources/events/cloudWatchLogEvent.json create mode 100644 examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json rename examples/event_sources/src/{appSyncAuthorizerEvent.py => appSyncAuthorizer.py} (100%) rename examples/event_sources/src/{appSyncResolverEvent.py => appSyncResolver.py} (100%) rename examples/event_sources/src/{bedrock_agent_event.py => bedrock_agent.py} (100%) create mode 100644 examples/event_sources/src/cloudWatchDashboard.py create mode 100644 examples/event_sources/src/cloudwatch_logs.py create mode 100644 examples/event_sources/src/kinesisStreamCloudWatchLogs.py create mode 100644 examples/event_sources/src/kinesis_batch_example.py diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index 968b79e3f71..4e6723a33ea 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -224,10 +224,10 @@ Used when building an [AWS_LAMBDA Authorization](https://docs.aws.amazon.com/app See blog post [Introducing Lambda authorization for AWS AppSync GraphQL APIs](https://aws.amazon.com/blogs/mobile/appsync-lambda-auth/){target="_blank"} or read the Amplify documentation on using [AWS Lambda for authorization](https://docs.amplify.aws/lib/graphqlapi/authz/q/platform/js#aws-lambda){target="_blank"} with AppSync. -=== "appSyncAuthorizerEvent.py" +=== "appSyncAuthorizer.py" ```python hl_lines="5-7 20" - --8<-- "examples/event_sources/src/appSyncAuthorizerEvent.py" + --8<-- "examples/event_sources/src/appSyncAuthorizer.py" ``` === "appSyncAuthorizerEvent.json" @@ -243,10 +243,10 @@ and [AppSync Direct Lambda Resolvers](https://aws.amazon.com/blogs/mobile/appsyn The example serves as an AppSync resolver for the `locations` field of the `Merchant` type. It uses the `@event_source` decorator to parse the AppSync event, handles pagination and filtering for locations, and demonstrates `AppSyncIdentityCognito`. -=== "appSyncResolverEvent.py" +=== "appSyncResolver.py" ```python hl_lines="2-4 8" - --8<-- "examples/event_sources/src/appSyncResolverEvent.py" + --8<-- "examples/event_sources/src/appSyncResolver.py" ``` === "appSyncResolverEvent.json" @@ -273,10 +273,10 @@ The example utilizes AWSConfigRuleEvent to parse the incoming event. The functio The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/) with `BedrockAgentEvent` to parse the incoming event. The function logs the action group and input text, then returns a structured response compatible with Bedrock Agent's expected format, including a mock response body. -=== "bedrock_agent_event.py" +=== "bedrock_agent.py" ```python hl_lines="2 6" - --8<-- "examples/event_sources/src/bedrock_agent_event.py" + --8<-- "examples/event_sources/src/bedrock_agent.py" ``` === "bedrockAgentEvent.json" @@ -286,7 +286,7 @@ The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/ ### CloudFormation Custom Resource -The example focuses on the "Create" request type, generating a unique physical resource ID and logging the process. The function is structured to potentially handle "Update" and "Delete" operations as well. +The example focuses on the `Create` request type, generating a unique physical resource ID and logging the process. The function is structured to potentially handle `Update` and `Delete` operations as well. === "cloudformation_custom_resource_handler.py" @@ -301,36 +301,17 @@ The example focuses on the "Create" request type, generating a unique physical r ### CloudWatch Dashboard Custom Widget -=== "app.py" - - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, CloudWatchDashboardCustomWidgetEvent - - const DOCS = ` - ## Echo - A simple echo script. Anything passed in \`\`\`echo\`\`\` parameter is returned as the content of custom widget. +Thie example for `CloudWatchDashboardCustomWidgetEvent` logs the dashboard name, extracts key information like widget ID and time range, and returns a formatted response with a title and markdown content. Read more about [custom widgets for Cloudwatch dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/add_custom_widget_samples.html). - ### Widget parameters - | Param | Description | - | -------- | ------------------------ | - | **echo** | The content to echo back | +=== "cloudWatchDashboard.py" - ### Example parameters - \`\`\` yaml - echo: <h1>Hello world</h1> - \`\`\` - ` - - @event_source(data_class=CloudWatchDashboardCustomWidgetEvent) - def lambda_handler(event: CloudWatchDashboardCustomWidgetEvent, context): - - if event.describe: - return DOCS + ```python hl_lines="2 6" + --8<-- "examples/event_sources/src/cloudWatchDashboard.py" + ``` - # You can directly return HTML or JSON content - # Alternatively, you can return markdown that will be rendered by CloudWatch - echo = event.widget_context.params["echo"] - return { "markdown": f"# {echo}" } +=== "cloudWatchDashboardEvent.json" + ```json + --8<-- "examples/event_sources/events/cloudWatchDashboardEvent.json" ``` ### CloudWatch Alarm State Change Action @@ -338,76 +319,59 @@ The example focuses on the "Create" request type, generating a unique physical r [CloudWatch supports Lambda as an alarm state change action](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions){target="_blank"}. You can use the `CloudWathAlarmEvent` data class to access the fields containing such data as alarm information, current state, and previous state. -=== "app.py" +=== "cloudwatch_alarm_event.py" ```python hl_lines="2 8" --8<-- "examples/event_sources/src/cloudwatch_alarm_event.py" ``` +=== "cloudWatchAlarmEventSingleMetric.json" + ```json + --8<-- "examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json" + ``` + ### CloudWatch Logs CloudWatch Logs events by default are compressed and base64 encoded. You can use the helper function provided to decode, decompress and parse json data from the event. -=== "app.py" +=== "cloudwatch_logs.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, CloudWatchLogsEvent - from aws_lambda_powertools.utilities.data_classes.cloud_watch_logs_event import CloudWatchLogsDecodedData + ```python hl_lines="2-3 7" + --8<-- "examples/event_sources/src/cloudwatch_logs.py" + ``` - @event_source(data_class=CloudWatchLogsEvent) - def lambda_handler(event: CloudWatchLogsEvent, context): - decompressed_log: CloudWatchLogsDecodedData = event.parse_logs_data() - log_events = decompressed_log.log_events - for event in log_events: - do_something_with(event.timestamp, event.message) +=== "cloudWatchLogEvent.json" + ```json + --8<-- "examples/event_sources/events/cloudWatchLogEvent.json" ``` #### Kinesis integration [When streaming CloudWatch Logs to a Kinesis Data Stream](https://aws.amazon.com/premiumsupport/knowledge-center/streaming-cloudwatch-logs/){target="_blank"} (cross-account or not), you can use `extract_cloudwatch_logs_from_event` to decode, decompress and extract logs as `CloudWatchLogsDecodedData` to ease log processing. -=== "app.py" - - ```python hl_lines="5-6 11" - from typing import List - - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.cloud_watch_logs_event import CloudWatchLogsDecodedData - from aws_lambda_powertools.utilities.data_classes.kinesis_stream_event import ( - KinesisStreamEvent, extract_cloudwatch_logs_from_event) +=== "kinesisStreamCloudWatchLogs.py" + ```python hl_lines="4-6 8" + --8<-- "examples/event_sources/src/kinesisStreamCloudWatchLogs.py" + ``` - @event_source(data_class=KinesisStreamEvent) - def simple_handler(event: KinesisStreamEvent, context): - logs: List[CloudWatchLogsDecodedData] = extract_cloudwatch_logs_from_event(event) - for log in logs: - if log.message_type == "DATA_MESSAGE": - return "success" - return "nothing to be processed" +=== "kinesisStreamCloudWatchLogsEvent.json" + ```json + --8<-- "examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json" ``` Alternatively, you can use `extract_cloudwatch_logs_from_record` to seamless integrate with the [Batch utility](./batch.md){target="_blank"} for more robust log processing. -=== "app.py" - - ```python hl_lines="3-4 10" - from aws_lambda_powertools.utilities.batch import (BatchProcessor, EventType, - batch_processor) - from aws_lambda_powertools.utilities.data_classes.kinesis_stream_event import ( - KinesisStreamRecord, extract_cloudwatch_logs_from_record) - - processor = BatchProcessor(event_type=EventType.KinesisDataStreams) - - - def record_handler(record: KinesisStreamRecord): - log = extract_cloudwatch_logs_from_record(record) - return log.message_type == "DATA_MESSAGE" +=== "kinesis_batch_example.py" + ```python hl_lines="7-9 15" + --8<-- "examples/event_sources/src/kinesis_batch_example.py" + ``` - @batch_processor(record_handler=record_handler, processor=processor) - def lambda_handler(event, context): - return processor.response() +=== "kinesisStreamCloudWatchLogsEvent.json" + ```json + --8<-- "examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json" ``` ### CodeDeploy LifeCycle Hook diff --git a/examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json b/examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json new file mode 100644 index 00000000000..fa5089cd6b5 --- /dev/null +++ b/examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json @@ -0,0 +1,59 @@ +{ + "source": "aws.cloudwatch", + "alarmArn": "arn:aws:cloudwatch:eu-west-1:912397435824:alarm:test_alarm", + "accountId": "123456789012", + "time": "2024-02-17T11:53:08.431+0000", + "region": "eu-west-1", + "alarmData": { + "alarmName": "Test alert", + "state": { + "value": "ALARM", + "reason": "Threshold Crossed: 1 out of the last 1 datapoints [1.0 (17/02/24 11:51:00)] was less than the threshold (10.0) (minimum 1 datapoint for OK -> ALARM transition).", + "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2024-02-17T11:53:08.423+0000\",\"startDate\":\"2024-02-17T11:51:00.000+0000\",\"statistic\":\"SampleCount\",\"period\":60,\"recentDatapoints\":[1.0],\"threshold\":10.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2024-02-17T11:51:00.000+0000\",\"sampleCount\":1.0,\"value\":1.0}]}", + "timestamp": "2024-02-17T11:53:08.431+0000" + }, + "previousState": { + "value": "OK", + "reason": "Threshold Crossed: 1 out of the last 1 datapoints [1.0 (17/02/24 11:50:00)] was not greater than the threshold (10.0) (minimum 1 datapoint for ALARM -> OK transition).", + "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2024-02-17T11:51:31.460+0000\",\"startDate\":\"2024-02-17T11:50:00.000+0000\",\"statistic\":\"SampleCount\",\"period\":60,\"recentDatapoints\":[1.0],\"threshold\":10.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2024-02-17T11:50:00.000+0000\",\"sampleCount\":1.0,\"value\":1.0}]}", + "timestamp": "2024-02-17T11:51:31.462+0000" + }, + "configuration": { + "description": "This is description **here**", + "metrics": [ + { + "id": "e1", + "expression": "m1/m2", + "label": "Expression1", + "returnData": true + }, + { + "id": "m1", + "metricStat": { + "metric": { + "namespace": "AWS/Lambda", + "name": "Invocations", + "dimensions": {} + }, + "period": 60, + "stat": "SampleCount" + }, + "returnData": false + }, + { + "id": "m2", + "metricStat": { + "metric": { + "namespace": "AWS/Lambda", + "name": "Duration", + "dimensions": {} + }, + "period": 60, + "stat": "SampleCount" + }, + "returnData": false + } + ] + } + } +} diff --git a/examples/event_sources/events/cloudWatchDashboardEvent.json b/examples/event_sources/events/cloudWatchDashboardEvent.json new file mode 100644 index 00000000000..fd2d3be62d6 --- /dev/null +++ b/examples/event_sources/events/cloudWatchDashboardEvent.json @@ -0,0 +1,38 @@ +{ + "original": "param-to-widget", + "widgetContext": { + "dashboardName": "Name-of-current-dashboard", + "widgetId": "widget-16", + "domain": "https://us-east-1.console.aws.amazon.com", + "accountId": "123456789123", + "locale": "en", + "timezone": { + "label": "UTC", + "offsetISO": "+00:00", + "offsetInMinutes": 0 + }, + "period": 300, + "isAutoPeriod": true, + "timeRange": { + "mode": "relative", + "start": 1627236199729, + "end": 1627322599729, + "relativeStart": 86400012, + "zoom": { + "start": 1627276030434, + "end": 1627282956521 + } + }, + "theme": "light", + "linkCharts": true, + "title": "Tweets for Amazon website problem", + "forms": { + "all": {} + }, + "params": { + "original": "param-to-widget" + }, + "width": 588, + "height": 369 + } +} diff --git a/examples/event_sources/events/cloudWatchLogEvent.json b/examples/event_sources/events/cloudWatchLogEvent.json new file mode 100644 index 00000000000..aa184c1d013 --- /dev/null +++ b/examples/event_sources/events/cloudWatchLogEvent.json @@ -0,0 +1,5 @@ +{ + "awslogs": { + "data": "H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA==" + } +} diff --git a/examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json b/examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json new file mode 100644 index 00000000000..000f37935d3 --- /dev/null +++ b/examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json @@ -0,0 +1,36 @@ +{ + "Records": [ + { + "kinesis": { + "kinesisSchemaVersion": "1.0", + "partitionKey": "123456789", + "sequenceNumber": "49635052289529725553291405521504870233219489715332317186", + "data": "H4sIAAAAAAAAAK2Sa2vbMBSG/4ox+xg3Oror39IlvaztVmJv7WjCUGwl8+ZLZstts5L/vuOsZYUyWGEgJHiP9J7nvOghLF3b2rVLthsXjsLJOBl/uZjG8fh4Gg7C+q5yDcqUAWcSONHEoFzU6+Om7jZYGdq7dljYcpnZ4cZHwLWOJl1Zbs/r9cR6e9RVqc/rKlpXV9eXt+fy27vt8W+L2DfOlr07oXQIMAQyvHlzPk6mcbKgciktF5lQfMU5dZZqzrShLF2uFC60aLtlmzb5prc/ygvvmjYc3YRPFG+LusuurE+/Ikqb1Gd55dq8jV+8isT6+317Rk42J5PTcLFnm966yvd2D2GeISJTYIwCJSQ1BE9OtWZCABWaKMIJAMdDMyU5MYZLhmkxBhQxfY4Re1tiWiAlBsgIVQTE4Cl6tI+T8SwJZu5Hh1dPs1FApOMSDI9WVKmIC+4irTMWQZYpx7QkztrgE06MU4yCx9DmVbgbvABmQJTGtkYAB0NwEwyYQUBpqEFuSbkGrThTRKi/AlP+HHj6fvJa3P9Ap/+Rbja9/PD6POd+0jXW7xM1B8CDsp37w7woXBb8qQDZ6xeurJttEOc/HWpUBxeHKNr74LHwsXXYlsm9flrl/rmFIQeS7m3m1fVs/DlIGpu6nhMiyWQGXNKIMbcCIgkhElKbaZnZpYJUz33s1iV+z/6+StMlR3yphHNcCyxiNEXf2zed6xuEu8XuF2wb6krnAwAA", + "approximateArrivalTimestamp": 1668093033.744 + }, + "eventSource": "aws:kinesis", + "eventVersion": "1.0", + "eventID": "shardId-000000000000:49635052289529725553291405521504870233219489715332317186", + "eventName": "aws:kinesis:record", + "invokeIdentityArn": "arn:aws:iam::231436140809:role/pt-1488-CloudWatchKinesisLogsFunctionRole-1M4G2TIWIE49", + "awsRegion": "eu-west-1", + "eventSourceARN": "arn:aws:kinesis:eu-west-1:231436140809:stream/pt-1488-KinesisStreamCloudWatchLogs-D8tHs0im0aJG" + }, + { + "kinesis": { + "kinesisSchemaVersion": "1.0", + "partitionKey": "12345678910", + "sequenceNumber": "49635052289529725553291405520881064510298312199003701250", + "data": "H4sIAAAAAAAAAK2SW2/TQBCF/4pl8ViTvc7u5i0laVraQhUbWtREaG1PgsGXYK/bhqr/nXVoBRIgUYnXc2bPfHO092GFXWc3mOy2GI7D6SSZfDyfxfFkPgsPwua2xtbLjFPBgQqiifFy2WzmbdNvvTOyt92otFWa29HWRVRoHU37qtqdNZupdfaorzNXNHW0qS+vLm7O4PPr3fxHROxatNWQThgbUTqiZHT94mySzOJkBUqYLOWY8ZQLbaTRkEvDciUYzWzKfETXp13WFtsh/qgoHbZdOL4OnyhelU2fX1qXffIoXdKcFjV2RRf/9iqSmy933Sk53h5PT8LVnm12g7Ub4u7DIveIXFFjFNGUKUlAaMY0EUJKLjkQbxhKGCWeknMKoAGUkYoJ7TFd4St2tvJtDRYxDAg3VB08Ve/j42SySIIFfu396Ek+DkS+xkwAiYhM00isgUV6jXmEMrM5EmMsh+C9v9hfMQ4eS1vW4cPBH4CZVpoTJkEIAp5RUMo8vGFae3JNCCdUccMVgPw7sP4VePZm+lzc/0AH/0i3mF28fX6fSzftW+v2jZKXRgVVt3SHRVliHvx06F4+x6ppd0FcfEMvMR2cH3rR3gWPxrsO/Vau9vqyvlpMPgRJazMcYGgEHHLKBhLGJaBA0JLxNc0JppoS9Cwxbir/B4d5QDBAQSnfFFGp8aa/vxw2uLbHYUH4sHr4Dj5RJxfMAwAA", + "approximateArrivalTimestamp": 1668092612.992 + }, + "eventSource": "aws:kinesis", + "eventVersion": "1.0", + "eventID": "shardId-000000000000:49635052289529725553291405520881064510298312199003701250", + "eventName": "aws:kinesis:record", + "invokeIdentityArn": "arn:aws:iam::231436140809:role/pt-1488-CloudWatchKinesisLogsFunctionRole-1M4G2TIWIE49", + "awsRegion": "eu-west-1", + "eventSourceARN": "arn:aws:kinesis:eu-west-1:231436140809:stream/pt-1488-KinesisStreamCloudWatchLogs-D8tHs0im0aJG" + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/src/appSyncAuthorizerEvent.py b/examples/event_sources/src/appSyncAuthorizer.py similarity index 100% rename from examples/event_sources/src/appSyncAuthorizerEvent.py rename to examples/event_sources/src/appSyncAuthorizer.py diff --git a/examples/event_sources/src/appSyncResolverEvent.py b/examples/event_sources/src/appSyncResolver.py similarity index 100% rename from examples/event_sources/src/appSyncResolverEvent.py rename to examples/event_sources/src/appSyncResolver.py diff --git a/examples/event_sources/src/bedrock_agent_event.py b/examples/event_sources/src/bedrock_agent.py similarity index 100% rename from examples/event_sources/src/bedrock_agent_event.py rename to examples/event_sources/src/bedrock_agent.py diff --git a/examples/event_sources/src/cloudWatchDashboard.py b/examples/event_sources/src/cloudWatchDashboard.py new file mode 100644 index 00000000000..f1c806fd84c --- /dev/null +++ b/examples/event_sources/src/cloudWatchDashboard.py @@ -0,0 +1,24 @@ +from aws_lambda_powertools import Logger +from aws_lambda_powertools.utilities.data_classes import CloudWatchDashboardCustomWidgetEvent, event_source + +logger = Logger() + + +@event_source(data_class=CloudWatchDashboardCustomWidgetEvent) +def lambda_handler(event: CloudWatchDashboardCustomWidgetEvent, context): + logger.info(f"Processing custom widget for dashboard: {event.widget_context.dashboard_name}") + + # Access specific event properties + widget_id = event.widget_context.widget_id + time_range_start = event.widget_context.time_range.start + time_range_end = event.widget_context.time_range.end + + # Your custom widget logic here + return { + "title": f"Custom Widget {widget_id}", + "markdown": f""" + Dashboard: {event.widget_context.dashboard_name} + Time Range: {time_range_start} to {time_range_end} + Theme: {event.widget_context.theme} + """, + } diff --git a/examples/event_sources/src/cloudwatch_logs.py b/examples/event_sources/src/cloudwatch_logs.py new file mode 100644 index 00000000000..95890275595 --- /dev/null +++ b/examples/event_sources/src/cloudwatch_logs.py @@ -0,0 +1,18 @@ +from aws_lambda_powertools import Logger +from aws_lambda_powertools.utilities.data_classes import CloudWatchLogsEvent, event_source +from aws_lambda_powertools.utilities.data_classes.cloud_watch_logs_event import CloudWatchLogsDecodedData + +logger = Logger() + + +@event_source(data_class=CloudWatchLogsEvent) +def lambda_handler(event: CloudWatchLogsEvent, context): + decompressed_log: CloudWatchLogsDecodedData = event.parse_logs_data() + + logger.info(f"Log group: {decompressed_log.log_group}") + logger.info(f"Log stream: {decompressed_log.log_stream}") + + for log_event in decompressed_log.log_events: + logger.info(f"Timestamp: {log_event.timestamp}, Message: {log_event.message}") + + return {"statusCode": 200, "body": f"Processed {len(decompressed_log.log_events)} log events"} diff --git a/examples/event_sources/src/kinesisStreamCloudWatchLogs.py b/examples/event_sources/src/kinesisStreamCloudWatchLogs.py new file mode 100644 index 00000000000..fa6fccf2b17 --- /dev/null +++ b/examples/event_sources/src/kinesisStreamCloudWatchLogs.py @@ -0,0 +1,17 @@ +from typing import List + +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.cloud_watch_logs_event import CloudWatchLogsDecodedData +from aws_lambda_powertools.utilities.data_classes.kinesis_stream_event import ( + KinesisStreamEvent, + extract_cloudwatch_logs_from_event, +) + + +@event_source(data_class=KinesisStreamEvent) +def lambda_handler(event: KinesisStreamEvent, context): + logs: List[CloudWatchLogsDecodedData] = extract_cloudwatch_logs_from_event(event) + for log in logs: + if log.message_type == "DATA_MESSAGE": + return "success" + return "nothing to be processed" diff --git a/examples/event_sources/src/kinesis_batch_example.py b/examples/event_sources/src/kinesis_batch_example.py new file mode 100644 index 00000000000..0a7366fdd8b --- /dev/null +++ b/examples/event_sources/src/kinesis_batch_example.py @@ -0,0 +1,29 @@ +from aws_lambda_powertools import Logger +from aws_lambda_powertools.utilities.batch import ( + BatchProcessor, + EventType, + process_partial_response, +) +from aws_lambda_powertools.utilities.data_classes.kinesis_stream_event import ( + KinesisStreamRecord, + extract_cloudwatch_logs_from_record, +) + +logger = Logger() + +processor = BatchProcessor(event_type=EventType.KinesisDataStreams) + + +def record_handler(record: KinesisStreamRecord): + log = extract_cloudwatch_logs_from_record(record) + logger.info(f"Message type: {log.message_type}") + return log.message_type == "DATA_MESSAGE" + + +def lambda_handler(event, context): + return process_partial_response( + event=event, + record_handler=record_handler, + processor=processor, + context=context, + ) From 2e282183a3571221e944b377578debe34f78f31d Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Fri, 24 Jan 2025 12:09:52 -0300 Subject: [PATCH 4/7] examples up to lambda function url --- docs/utilities/data_classes.md | 425 +++++------------- .../events/codeDeployLifecycleHookEvent.json | 4 + .../events/codePipelineEvent.json | 34 ++ .../cognitoCreateAuthChallengeEvent.json | 29 ++ .../cognitoDefineAuthChallengeEvent.json | 32 ++ .../events/cognitoPostConfirmationEvent.json | 18 + ...gnitoVerifyAuthChallengeResponseEvent.json | 28 ++ .../events/connectContactFlowEventAll.json | 41 ++ .../events/dynamoStreamEvent.json | 65 +++ .../events/eventBridgeEvent.json | 17 + .../event_sources/events/kafkaEventMsk.json | 35 ++ .../events/kinesisFirehoseKinesisEvent.json | 32 ++ .../events/kinesisStreamEvent.json | 36 ++ .../event_sources/src/code_pipeline_job.py | 10 + .../src/codedeploy_lifecycle_hook.py | 9 + .../event_sources/src/cognito_create_auth.py | 11 + .../event_sources/src/cognito_define_auth.py | 29 ++ .../src/cognito_post_confirmation.py | 9 + .../event_sources/src/cognito_verify_auth.py | 10 + .../event_sources/src/connect_contact_flow.py | 14 + .../src/dynamodb_multiple_records.py | 10 + examples/event_sources/src/dynamodb_stream.py | 16 + .../event_sources/src/eventBridgeEvent.py | 11 + examples/event_sources/src/kafka_event.py | 12 + examples/event_sources/src/kinesis_streams.py | 37 ++ 25 files changed, 654 insertions(+), 320 deletions(-) create mode 100644 examples/event_sources/events/codeDeployLifecycleHookEvent.json create mode 100644 examples/event_sources/events/codePipelineEvent.json create mode 100644 examples/event_sources/events/cognitoCreateAuthChallengeEvent.json create mode 100644 examples/event_sources/events/cognitoDefineAuthChallengeEvent.json create mode 100644 examples/event_sources/events/cognitoPostConfirmationEvent.json create mode 100644 examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json create mode 100644 examples/event_sources/events/connectContactFlowEventAll.json create mode 100644 examples/event_sources/events/dynamoStreamEvent.json create mode 100644 examples/event_sources/events/eventBridgeEvent.json create mode 100644 examples/event_sources/events/kafkaEventMsk.json create mode 100644 examples/event_sources/events/kinesisFirehoseKinesisEvent.json create mode 100644 examples/event_sources/events/kinesisStreamEvent.json create mode 100644 examples/event_sources/src/code_pipeline_job.py create mode 100644 examples/event_sources/src/codedeploy_lifecycle_hook.py create mode 100644 examples/event_sources/src/cognito_create_auth.py create mode 100644 examples/event_sources/src/cognito_define_auth.py create mode 100644 examples/event_sources/src/cognito_post_confirmation.py create mode 100644 examples/event_sources/src/cognito_verify_auth.py create mode 100644 examples/event_sources/src/connect_contact_flow.py create mode 100644 examples/event_sources/src/dynamodb_multiple_records.py create mode 100644 examples/event_sources/src/dynamodb_stream.py create mode 100644 examples/event_sources/src/eventBridgeEvent.py create mode 100644 examples/event_sources/src/kafka_event.py create mode 100644 examples/event_sources/src/kinesis_streams.py diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index 4e6723a33ea..232db8d87b5 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -131,7 +131,7 @@ Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayA === "apigw_type_request.py" - ```python hl_lines="2-4 7" + ```python hl_lines="2-4 8" --8<-- "examples/event_sources/src/apigw_authorizer_request.py" ``` @@ -143,7 +143,7 @@ Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayA === "apigw_type_token.py" - ```python hl_lines="2-4 7" + ```python hl_lines="2-4 8" --8<-- "examples/event_sources/src/apigw_authorizer_token.py" ``` @@ -160,7 +160,7 @@ See also [this blog post](https://aws.amazon.com/blogs/compute/introducing-iam-a === "apigw_auth_v2.py" - ```python hl_lines="2-4 15" + ```python hl_lines="2-4 16" --8<-- "examples/event_sources/src/apigw_auth_v2.py" ``` @@ -176,7 +176,7 @@ It is used for either API Gateway REST API or HTTP API using v1 proxy event. === "apigw_proxy_decorator.py" - ```python hl_lines="1 3" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/apigw_proxy_decorator.py" ``` @@ -192,7 +192,7 @@ It is used for HTTP API using v2 proxy event. === "apigw_proxy_v2.py" - ```python hl_lines="1 3" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/apigw_proxy_v2.py" ``` @@ -208,7 +208,7 @@ Is it used for [Application load balancer](https://docs.aws.amazon.com/elasticlo === "albEvent.py" - ```python hl_lines="1 3" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/albEvent.py" ``` @@ -245,7 +245,7 @@ The example serves as an AppSync resolver for the `locations` field of the `Merc === "appSyncResolver.py" - ```python hl_lines="2-4 8" + ```python hl_lines="2-4 9" --8<-- "examples/event_sources/src/appSyncResolver.py" ``` @@ -260,7 +260,7 @@ The example serves as an AppSync resolver for the `locations` field of the `Merc The example utilizes AWSConfigRuleEvent to parse the incoming event. The function logs the message type of the invoking event and returns a simple success response. The example event receives a Scheduled Event Notification, but could also be ItemChanged and Oversized. === "aws_config_rule.py" - ```python hl_lines="3 11" + ```python hl_lines="2-3 10" --8<-- "examples/event_sources/src/aws_config_rule.py" ``` @@ -275,7 +275,7 @@ The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/ === "bedrock_agent.py" - ```python hl_lines="2 6" + ```python hl_lines="2 7" --8<-- "examples/event_sources/src/bedrock_agent.py" ``` @@ -290,7 +290,7 @@ The example focuses on the `Create` request type, generating a unique physical r === "cloudformation_custom_resource_handler.py" - ```python hl_lines="2-3 10 14 19" + ```python hl_lines="2-3 11 15 20" --8<-- "examples/event_sources/src/cloudformation_custom_resource_handler.py" ``` @@ -305,7 +305,7 @@ Thie example for `CloudWatchDashboardCustomWidgetEvent` logs the dashboard name, === "cloudWatchDashboard.py" - ```python hl_lines="2 6" + ```python hl_lines="2 7" --8<-- "examples/event_sources/src/cloudWatchDashboard.py" ``` @@ -337,7 +337,7 @@ decompress and parse json data from the event. === "cloudwatch_logs.py" - ```python hl_lines="2-3 7" + ```python hl_lines="2-3 8" --8<-- "examples/event_sources/src/cloudwatch_logs.py" ``` @@ -352,7 +352,7 @@ decompress and parse json data from the event. === "kinesisStreamCloudWatchLogs.py" - ```python hl_lines="4-6 8" + ```python hl_lines="5-6 11" --8<-- "examples/event_sources/src/kinesisStreamCloudWatchLogs.py" ``` @@ -365,7 +365,7 @@ Alternatively, you can use `extract_cloudwatch_logs_from_record` to seamless int === "kinesis_batch_example.py" - ```python hl_lines="7-9 15" + ```python hl_lines="7-9 18" --8<-- "examples/event_sources/src/kinesis_batch_example.py" ``` @@ -380,72 +380,30 @@ CodeDeploy triggers Lambdas with this event when defined in [AppSpec definitions](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html) to test applications at different stages of deployment. -=== "app.py" - ```python - from aws_lambda_powertools import Logger - from aws_lambda_powertools.utilities.data_classes import ( - event_source, - CodeDeployLifecycleHookEvent, - ) +=== "codedeploy_lifecycle_hook.py" - logger = Logger() + ```python hl_lines="1-2 6" + --8<-- "examples/event_sources/src/codedeploy_lifecycle_hook.py" + ``` - def lambda_handler( - event: CodeDeployLifecycleHookEvent, context: LambdaContext - ) -> None: - deployment_id = event.deployment_id - lifecycle_event_hook_execution_id = event.lifecycle_event_hook_execution_id +=== "codeDeployLifecycleHookEvent.json" + ```json + --8<-- "examples/event_sources/events/codeDeployLifecycleHookEvent.json" ``` ### CodePipeline Job -Data classes and utility functions to help create continuous delivery pipelines tasks with AWS Lambda +Data classes and utility functions to help create continuous delivery pipelines tasks with AWS Lambda. -=== "app.py" +=== "code_pipeline_job.py" - ```python - from aws_lambda_powertools import Logger - from aws_lambda_powertools.utilities.data_classes import event_source, CodePipelineJobEvent - - logger = Logger() + ```python hl_lines="1 3" + --8<-- "examples/event_sources/src/code_pipeline_job.py" + ``` - @event_source(data_class=CodePipelineJobEvent) - def lambda_handler(event, context): - """The Lambda function handler - - If a continuing job then checks the CloudFormation stack status - and updates the job accordingly. - - If a new job then kick of an update or creation of the target - CloudFormation stack. - """ - - # Extract the Job ID - job_id = event.get_id - - # Extract the params - params: dict = event.decoded_user_parameters - stack = params["stack"] - artifact_name = params["artifact"] - template_file = params["file"] - - try: - if event.data.continuation_token: - # If we're continuing then the create/update has already been triggered - # we just need to check if it has finished. - check_stack_update_status(job_id, stack) - else: - template = event.get_artifact(artifact_name, template_file) - # Kick off a stack update or create - start_update_or_create(job_id, stack, template) - except Exception as e: - # If any other exceptions which we didn't expect are raised - # then fail the job and log the exception message. - logger.exception("Function failed due to exception.") - put_job_failure(job_id, "Function exception: " + str(e)) - - logger.debug("Function complete.") - return "Complete." +=== "codePipelineEvent.json" + ```json hl_lines="3 19" + --8<-- "examples/event_sources/events/codePipelineEvent.json" ``` ### Cognito User Pool @@ -469,18 +427,19 @@ can be imported from `aws_lambda_powertools.data_classes.cognito_user_pool_event | Custom Email Sender | `data_classes.cognito_user_pool_event.CustomEmailSenderTriggerEvent` | | Custom SMS Sender | `data_classes.cognito_user_pool_event.CustomSMSSenderTriggerEvent` | -#### Post Confirmation Example +Some examples for the Cognito User Pools Lambda triggers sources: -=== "app.py" +#### Post Confirmation Example - ```python - from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import PostConfirmationTriggerEvent +=== "cognito_post_confirmation.py" - def lambda_handler(event, context): - event: PostConfirmationTriggerEvent = PostConfirmationTriggerEvent(event) + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/cognito_post_confirmation.py" + ``` - user_attributes = event.request.user_attributes - do_something_with(user_attributes) +=== "cognitoPostConfirmationEvent.json" + ```json hl_lines="12-14" + --8<-- "examples/event_sources/events/cognitoPostConfirmationEvent.json" ``` #### Define Auth Challenge Example @@ -490,213 +449,60 @@ can be imported from `aws_lambda_powertools.data_classes.cognito_user_pool_event This example is based on the AWS Cognito docs for [Define Auth Challenge Lambda Trigger](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-define-auth-challenge.html){target="_blank"}. -=== "app.py" +=== "cognito_define_auth.py" - ```python - from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import DefineAuthChallengeTriggerEvent - - def handler(event: dict, context) -> dict: - event: DefineAuthChallengeTriggerEvent = DefineAuthChallengeTriggerEvent(event) - if ( - len(event.request.session) == 1 - and event.request.session[0].challenge_name == "SRP_A" - ): - event.response.issue_tokens = False - event.response.fail_authentication = False - event.response.challenge_name = "PASSWORD_VERIFIER" - elif ( - len(event.request.session) == 2 - and event.request.session[1].challenge_name == "PASSWORD_VERIFIER" - and event.request.session[1].challenge_result - ): - event.response.issue_tokens = False - event.response.fail_authentication = False - event.response.challenge_name = "CUSTOM_CHALLENGE" - elif ( - len(event.request.session) == 3 - and event.request.session[2].challenge_name == "CUSTOM_CHALLENGE" - and event.request.session[2].challenge_result - ): - event.response.issue_tokens = True - event.response.fail_authentication = False - else: - event.response.issue_tokens = False - event.response.fail_authentication = True - - return event.raw_event - ``` -=== "SPR_A response" - - ```json hl_lines="25-27" - { - "version": "1", - "region": "us-east-1", - "userPoolId": "us-east-1_example", - "userName": "UserName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "triggerSource": "DefineAuthChallenge_Authentication", - "request": { - "userAttributes": { - "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", - "email_verified": "true", - "name": "First Last", - "email": "define-auth@mail.com" - }, - "session": [ - { - "challengeName": "SRP_A", - "challengeResult": true - } - ] - }, - "response": { - "issueTokens": false, - "failAuthentication": false, - "challengeName": "PASSWORD_VERIFIER" - } - } - ``` -=== "PASSWORD_VERIFIER success response" - - ```json hl_lines="30-32" - { - "version": "1", - "region": "us-east-1", - "userPoolId": "us-east-1_example", - "userName": "UserName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "triggerSource": "DefineAuthChallenge_Authentication", - "request": { - "userAttributes": { - "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", - "email_verified": "true", - "name": "First Last", - "email": "define-auth@mail.com" - }, - "session": [ - { - "challengeName": "SRP_A", - "challengeResult": true - }, - { - "challengeName": "PASSWORD_VERIFIER", - "challengeResult": true - } - ] - }, - "response": { - "issueTokens": false, - "failAuthentication": false, - "challengeName": "CUSTOM_CHALLENGE" - } - } - - ``` -=== "CUSTOM_CHALLENGE success response" - - ```json hl_lines="34 35" - { - "version": "1", - "region": "us-east-1", - "userPoolId": "us-east-1_example", - "userName": "UserName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "triggerSource": "DefineAuthChallenge_Authentication", - "request": { - "userAttributes": { - "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", - "email_verified": "true", - "name": "First Last", - "email": "define-auth@mail.com" - }, - "session": [ - { - "challengeName": "SRP_A", - "challengeResult": true - }, - { - "challengeName": "PASSWORD_VERIFIER", - "challengeResult": true - }, - { - "challengeName": "CUSTOM_CHALLENGE", - "challengeResult": true - } - ] - }, - "response": { - "issueTokens": true, - "failAuthentication": false - } - } + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/cognito_define_auth.py" + ``` + +=== "cognitoDefineAuthChallengeEvent.json" + ```json + --8<-- "examples/event_sources/events/cognitoDefineAuthChallengeEvent.json" ``` #### Create Auth Challenge Example This example is based on the AWS Cognito docs for [Create Auth Challenge Lambda Trigger](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-create-auth-challenge.html){target="_blank"}. -=== "app.py" +=== "cognito_create_auth.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import CreateAuthChallengeTriggerEvent + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/cognito_create_auth.py" + ``` - @event_source(data_class=CreateAuthChallengeTriggerEvent) - def handler(event: CreateAuthChallengeTriggerEvent, context) -> dict: - if event.request.challenge_name == "CUSTOM_CHALLENGE": - event.response.public_challenge_parameters = {"captchaUrl": "url/123.jpg"} - event.response.private_challenge_parameters = {"answer": "5"} - event.response.challenge_metadata = "CAPTCHA_CHALLENGE" - return event.raw_event +=== "cognitoCreateAuthChallengeEvent.json" + ```json + --8<-- "examples/event_sources/events/cognitoCreateAuthChallengeEvent.json" ``` #### Verify Auth Challenge Response Example This example is based on the AWS Cognito docs for [Verify Auth Challenge Response Lambda Trigger](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-verify-auth-challenge-response.html){target="_blank"}. -=== "app.py" +=== "cognito_verify_auth.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import VerifyAuthChallengeResponseTriggerEvent + ```python hl_lines="2 4" + --8<-- "examples/event_sources/src/cognito_verify_auth.py" + ``` - @event_source(data_class=VerifyAuthChallengeResponseTriggerEvent) - def handler(event: VerifyAuthChallengeResponseTriggerEvent, context) -> dict: - event.response.answer_correct = ( - event.request.private_challenge_parameters.get("answer") == event.request.challenge_answer - ) - return event.raw_event +=== "cognitoVerifyAuthChallengeResponseEvent.json" + ```json + --8<-- "examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json" ``` ### Connect Contact Flow -> New in 1.11.0 +The example integrates with [Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/what-is-amazon-connect.html) by handling contact flow events. The function converts the event into a `ConnectContactFlowEvent` object, providing a structured representation of the contact flow data. -=== "app.py" +=== "connect_contact_flow.py" - ```python - from aws_lambda_powertools.utilities.data_classes.connect_contact_flow_event import ( - ConnectContactFlowChannel, - ConnectContactFlowEndpointType, - ConnectContactFlowEvent, - ConnectContactFlowInitiationMethod, - ) + ```python hl_lines="1-5 9" + --8<-- "examples/event_sources/src/connect_contact_flow.py" + ``` - def lambda_handler(event, context): - event: ConnectContactFlowEvent = ConnectContactFlowEvent(event) - assert event.contact_data.attributes == {"Language": "en-US"} - assert event.contact_data.channel == ConnectContactFlowChannel.VOICE - assert event.contact_data.customer_endpoint.endpoint_type == ConnectContactFlowEndpointType.TELEPHONE_NUMBER - assert event.contact_data.initiation_method == ConnectContactFlowInitiationMethod.API +=== "connectContactFlowEventAll.json" + ```json + --8<-- "examples/event_sources/events/connectContactFlowEventAll.json" ``` ### DynamoDB Streams @@ -705,66 +511,47 @@ The DynamoDB data class utility provides the base class for `DynamoDBStreamEvent (`DynamoDBRecordEventName`). The class automatically deserializes DynamoDB types into their equivalent Python types. -=== "app.py" - - ```python - from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import ( - DynamoDBStreamEvent, - DynamoDBRecordEventName - ) - - def lambda_handler(event, context): - event: DynamoDBStreamEvent = DynamoDBStreamEvent(event) - - # Multiple records can be delivered in a single event - for record in event.records: - if record.event_name == DynamoDBRecordEventName.MODIFY: - do_something_with(record.dynamodb.new_image) - do_something_with(record.dynamodb.old_image) +=== "dynamodb_stream.py" + ```python hl_lines="1-3 7" + --8<-- "examples/event_sources/src/dynamodb_stream.py" ``` - -=== "multiple_records_types.py" - - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, DynamoDBStreamEvent - from aws_lambda_powertools.utilities.typing import LambdaContext - - - @event_source(data_class=DynamoDBStreamEvent) - def lambda_handler(event: DynamoDBStreamEvent, context: LambdaContext): - for record in event.records: - # {"N": "123.45"} => Decimal("123.45") - key: str = record.dynamodb.keys["id"] - print(key) +=== "dynamodb_multiple_records.py" + ```python hl_lines="1 5" + --8<-- "examples/event_sources/src/dynamodb_multiple_records.py" + ``` +=== "dynamoStreamEvent.json" + ```json + --8<-- "examples/event_sources/events/dynamoStreamEvent.json" ``` ### EventBridge -=== "app.py" + When an event matching a defined rule occurs in EventBridge, it can [automatically trigger a Lambda function](https://docs.aws.amazon.com/lambda/latest/dg/with-eventbridge-scheduler.html), passing the event data as input. - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, EventBridgeEvent +=== "eventBridgeEvent.py" - @event_source(data_class=EventBridgeEvent) - def lambda_handler(event: EventBridgeEvent, context): - do_something_with(event.detail) + ```python hl_lines="1 3" + --8<-- "examples/event_sources/src/eventBridgeEvent.py" + ``` +=== "eventBridgeEvent.json" + ```json + --8<-- "examples/event_sources/events/eventBridgeEvent.json" ``` ### Kafka This example is based on the AWS docs for [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html){target="_blank"} and [self-managed Apache Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html){target="_blank"}. -=== "app.py" - - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, KafkaEvent +=== "kafka_event.py" - @event_source(data_class=KafkaEvent) - def lambda_handler(event: KafkaEvent, context): - for record in event.records: - do_something_with(record.decoded_key, record.json_value) + ```python hl_lines="1 6" + --8<-- "examples/event_sources/src/kafka_event.py" + ``` +=== "kafkaEventMsk.json" + ```json + --8<-- "examples/event_sources/events/kafkaEventMsk.json" ``` ### Kinesis streams @@ -772,22 +559,15 @@ This example is based on the AWS docs for [Amazon MSK](https://docs.aws.amazon.c Kinesis events by default contain base64 encoded data. You can use the helper function to access the data either as json or plain text, depending on the original payload. -=== "app.py" - - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, KinesisStreamEvent - - @event_source(data_class=KinesisStreamEvent) - def lambda_handler(event: KinesisStreamEvent, context): - kinesis_record = next(event.records).kinesis - - # if data was delivered as text - data = kinesis_record.data_as_text() +=== "kinesis_streams.py" - # if data was delivered as json - data = kinesis_record.data_as_json() + ```python hl_lines="3 8" + --8<-- "examples/event_sources/src/kinesis_streams.py" + ``` - do_something_with(data) +=== "kinesisStreamEvent.json" + ```json + --8<-- "examples/event_sources/events/kinesisStreamEvent.json" ``` ### Kinesis Firehose delivery stream @@ -825,6 +605,11 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along 1. This record will now be sent to your [S3 bucket in the `processing-failed` folder](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html#data-transformation-failure-handling){target="_blank"}. +=== "kinesisFirehoseEvent.json" + ```json + --8<-- "examples/event_sources/events/kinesisFirehoseKinesisEvent.json" + ``` + ### Lambda Function URL === "app.py" diff --git a/examples/event_sources/events/codeDeployLifecycleHookEvent.json b/examples/event_sources/events/codeDeployLifecycleHookEvent.json new file mode 100644 index 00000000000..6e422a2d505 --- /dev/null +++ b/examples/event_sources/events/codeDeployLifecycleHookEvent.json @@ -0,0 +1,4 @@ +{ + "DeploymentId": "d-ABCDEF", + "LifecycleEventHookExecutionId": "xxxxxxxxxxxxxxxxxxxxxxxx" +} diff --git a/examples/event_sources/events/codePipelineEvent.json b/examples/event_sources/events/codePipelineEvent.json new file mode 100644 index 00000000000..25269cbb387 --- /dev/null +++ b/examples/event_sources/events/codePipelineEvent.json @@ -0,0 +1,34 @@ +{ + "CodePipeline.job": { + "id": "11111111-abcd-1111-abcd-111111abcdef", + "accountId": "111111111111", + "data": { + "actionConfiguration": { + "configuration": { + "FunctionName": "MyLambdaFunctionForAWSCodePipeline", + "UserParameters": "some-input-such-as-a-URL" + } + }, + "inputArtifacts": [ + { + "name": "ArtifactName", + "revision": null, + "location": { + "type": "S3", + "s3Location": { + "bucketName": "the name of the bucket configured as the pipeline artifact store in Amazon S3, for example codepipeline-us-east-2-1234567890", + "objectKey": "the name of the application, for example CodePipelineDemoApplication.zip" + } + } + } + ], + "outputArtifacts": [], + "artifactCredentials": { + "accessKeyId": "", + "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", + "sessionToken": "MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" + }, + "continuationToken": "A continuation token if continuing job" + } + } +} \ No newline at end of file diff --git a/examples/event_sources/events/cognitoCreateAuthChallengeEvent.json b/examples/event_sources/events/cognitoCreateAuthChallengeEvent.json new file mode 100644 index 00000000000..ad018ae0829 --- /dev/null +++ b/examples/event_sources/events/cognitoCreateAuthChallengeEvent.json @@ -0,0 +1,29 @@ +{ + "version": "1", + "region": "us-east-1", + "userPoolId": "us-east-1_example", + "userName": "UserName", + "callerContext": { + "awsSdkVersion": "awsSdkVersion", + "clientId": "clientId" + }, + "triggerSource": "CreateAuthChallenge_Authentication", + "request": { + "userAttributes": { + "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", + "email_verified": "true", + "name": "First Last", + "email": "create-auth@mail.com" + }, + "challengeName": "PASSWORD_VERIFIER", + "session" : [ + { + "challengeName": "CUSTOM_CHALLENGE", + "challengeResult": true, + "challengeMetadata": "CAPTCHA_CHALLENGE" + } + ], + "userNotFound": false + }, + "response": {} +} diff --git a/examples/event_sources/events/cognitoDefineAuthChallengeEvent.json b/examples/event_sources/events/cognitoDefineAuthChallengeEvent.json new file mode 100644 index 00000000000..80ea5ac2d98 --- /dev/null +++ b/examples/event_sources/events/cognitoDefineAuthChallengeEvent.json @@ -0,0 +1,32 @@ +{ + "version": "1", + "region": "us-east-1", + "userPoolId": "us-east-1_example", + "userName": "UserName", + "callerContext": { + "awsSdkVersion": "awsSdkVersion", + "clientId": "clientId" + }, + "triggerSource": "DefineAuthChallenge_Authentication", + "request": { + "userAttributes": { + "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", + "email_verified": "true", + "name": "First Last", + "email": "define-auth@mail.com" + }, + "session" : [ + { + "challengeName": "PASSWORD_VERIFIER", + "challengeResult": true + }, + { + "challengeName": "CUSTOM_CHALLENGE", + "challengeResult": true, + "challengeMetadata": "CAPTCHA_CHALLENGE" + } + ], + "userNotFound": true + }, + "response": {} +} diff --git a/examples/event_sources/events/cognitoPostConfirmationEvent.json b/examples/event_sources/events/cognitoPostConfirmationEvent.json new file mode 100644 index 00000000000..e88f98150ca --- /dev/null +++ b/examples/event_sources/events/cognitoPostConfirmationEvent.json @@ -0,0 +1,18 @@ +{ + "version": "string", + "triggerSource": "PostConfirmation_ConfirmSignUp", + "region": "us-east-1", + "userPoolId": "string", + "userName": "userName", + "callerContext": { + "awsSdkVersion": "awsSdkVersion", + "clientId": "clientId" + }, + "request": { + "userAttributes": { + "email": "user@example.com", + "email_verified": true + } + }, + "response": {} +} diff --git a/examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json b/examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json new file mode 100644 index 00000000000..2ebcdb5c278 --- /dev/null +++ b/examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json @@ -0,0 +1,28 @@ +{ + "version": "1", + "region": "us-east-1", + "userPoolId": "us-east-1_example", + "userName": "UserName", + "callerContext": { + "awsSdkVersion": "awsSdkVersion", + "clientId": "clientId" + }, + "triggerSource": "VerifyAuthChallengeResponse_Authentication", + "request": { + "userAttributes": { + "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", + "email_verified": "true", + "name": "First Last", + "email": "verify-auth@mail.com" + }, + "privateChallengeParameters": { + "answer": "challengeAnswer" + }, + "clientMetadata" : { + "foo": "value" + }, + "challengeAnswer": "challengeAnswer", + "userNotFound": true + }, + "response": {} +} diff --git a/examples/event_sources/events/connectContactFlowEventAll.json b/examples/event_sources/events/connectContactFlowEventAll.json new file mode 100644 index 00000000000..5850649b6eb --- /dev/null +++ b/examples/event_sources/events/connectContactFlowEventAll.json @@ -0,0 +1,41 @@ +{ + "Name": "ContactFlowEvent", + "Details": { + "ContactData": { + "Attributes": { + "Language": "en-US" + }, + "Channel": "VOICE", + "ContactId": "5ca32fbd-8f92-46af-92a5-6b0f970f0efe", + "CustomerEndpoint": { + "Address": "+11234567890", + "Type": "TELEPHONE_NUMBER" + }, + "InitialContactId": "5ca32fbd-8f92-46af-92a5-6b0f970f0efe", + "InitiationMethod": "API", + "InstanceARN": "arn:aws:connect:eu-central-1:123456789012:instance/9308c2a1-9bc6-4cea-8290-6c0b4a6d38fa", + "MediaStreams": { + "Customer": { + "Audio": { + "StartFragmentNumber": "91343852333181432392682062622220590765191907586", + "StartTimestamp": "1565781909613", + "StreamARN": "arn:aws:kinesisvideo:eu-central-1:123456789012:stream/connect-contact-a3d73b84-ce0e-479a-a9dc-5637c9d30ac9/1565272947806" + } + } + }, + "PreviousContactId": "5ca32fbd-8f92-46af-92a5-6b0f970f0efe", + "Queue": { + "ARN": "arn:aws:connect:eu-central-1:123456789012:instance/9308c2a1-9bc6-4cea-8290-6c0b4a6d38fa/queue/5cba7cbf-1ecb-4b6d-b8bd-fe91079b3fc8", + "Name": "QueueOne" + }, + "SystemEndpoint": { + "Address": "+11234567890", + "Type": "TELEPHONE_NUMBER" + } + }, + "Parameters": { + "ParameterOne": "One", + "ParameterTwo": "Two" + } + } +} \ No newline at end of file diff --git a/examples/event_sources/events/dynamoStreamEvent.json b/examples/event_sources/events/dynamoStreamEvent.json new file mode 100644 index 00000000000..16009a7a956 --- /dev/null +++ b/examples/event_sources/events/dynamoStreamEvent.json @@ -0,0 +1,65 @@ +{ + "Records": [ + { + "eventID": "1", + "eventVersion": "1.0", + "dynamodb": { + "ApproximateCreationDateTime": 1693997155.0, + "Keys": { + "Id": { + "N": "101" + } + }, + "NewImage": { + "Message": { + "S": "New item!" + }, + "Id": { + "N": "101" + } + }, + "StreamViewType": "NEW_AND_OLD_IMAGES", + "SequenceNumber": "111", + "SizeBytes": 26 + }, + "awsRegion": "us-west-2", + "eventName": "INSERT", + "eventSourceARN": "eventsource_arn", + "eventSource": "aws:dynamodb" + }, + { + "eventID": "2", + "eventVersion": "1.0", + "dynamodb": { + "OldImage": { + "Message": { + "S": "New item!" + }, + "Id": { + "N": "101" + } + }, + "SequenceNumber": "222", + "Keys": { + "Id": { + "N": "101" + } + }, + "SizeBytes": 59, + "NewImage": { + "Message": { + "S": "This item has changed" + }, + "Id": { + "N": "101" + } + }, + "StreamViewType": "NEW_AND_OLD_IMAGES" + }, + "awsRegion": "us-west-2", + "eventName": "MODIFY", + "eventSourceARN": "source_arn", + "eventSource": "aws:dynamodb" + } + ] +} diff --git a/examples/event_sources/events/eventBridgeEvent.json b/examples/event_sources/events/eventBridgeEvent.json new file mode 100644 index 00000000000..65872cf9a34 --- /dev/null +++ b/examples/event_sources/events/eventBridgeEvent.json @@ -0,0 +1,17 @@ +{ + "version": "0", + "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", + "detail-type": "EC2 Instance State-change Notification", + "source": "aws.ec2", + "account": "111122223333", + "time": "2017-12-22T18:43:48Z", + "region": "us-west-1", + "resources": [ + "arn:aws:ec2:us-west-1:123456789012:instance/i-1234567890abcdef0" + ], + "detail": { + "instance_id": "i-1234567890abcdef0", + "state": "terminated" + }, + "replay-name": "replay_archive" +} diff --git a/examples/event_sources/events/kafkaEventMsk.json b/examples/event_sources/events/kafkaEventMsk.json new file mode 100644 index 00000000000..5a35b89680a --- /dev/null +++ b/examples/event_sources/events/kafkaEventMsk.json @@ -0,0 +1,35 @@ +{ + "eventSource":"aws:kafka", + "eventSourceArn":"arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4", + "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", + "records":{ + "mytopic-0":[ + { + "topic":"mytopic", + "partition":0, + "offset":15, + "timestamp":1545084650987, + "timestampType":"CREATE_TIME", + "key":"cmVjb3JkS2V5", + "value":"eyJrZXkiOiJ2YWx1ZSJ9", + "headers":[ + { + "headerKey":[ + 104, + 101, + 97, + 100, + 101, + 114, + 86, + 97, + 108, + 117, + 101 + ] + } + ] + } + ] + } +} diff --git a/examples/event_sources/events/kinesisFirehoseKinesisEvent.json b/examples/event_sources/events/kinesisFirehoseKinesisEvent.json new file mode 100644 index 00000000000..8ac0ba93bd5 --- /dev/null +++ b/examples/event_sources/events/kinesisFirehoseKinesisEvent.json @@ -0,0 +1,32 @@ +{ + "invocationId": "2b4d1ad9-2f48-94bd-a088-767c317e994a", + "sourceKinesisStreamArn": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-source", + "deliveryStreamArn": "arn:aws:firehose:us-east-2:123456789012:deliverystream/delivery-stream-name", + "region": "us-east-2", + "records": [ + { + "data": "SGVsbG8gV29ybGQ=", + "recordId": "record1", + "approximateArrivalTimestamp": 1664028820148, + "kinesisRecordMetadata": { + "shardId": "shardId-000000000000", + "partitionKey": "1234", + "approximateArrivalTimestamp": 1664028820148, + "sequenceNumber": "49546986683135544286507457936321625675700192471156785154", + "subsequenceNumber": 0 + } + }, + { + "data": "eyJIZWxsbyI6ICJXb3JsZCJ9", + "recordId": "record2", + "approximateArrivalTimestamp": 1664028793294, + "kinesisRecordMetadata": { + "shardId": "shardId-000000000001", + "partitionKey": "4567", + "approximateArrivalTimestamp": 1664028793294, + "sequenceNumber": "49546986683135544286507457936321625675700192471156785155", + "subsequenceNumber": 0 + } + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/events/kinesisStreamEvent.json b/examples/event_sources/events/kinesisStreamEvent.json new file mode 100644 index 00000000000..ef8e2096388 --- /dev/null +++ b/examples/event_sources/events/kinesisStreamEvent.json @@ -0,0 +1,36 @@ +{ + "Records": [ + { + "kinesis": { + "kinesisSchemaVersion": "1.0", + "partitionKey": "1", + "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", + "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", + "approximateArrivalTimestamp": 1545084650.987 + }, + "eventSource": "aws:kinesis", + "eventVersion": "1.0", + "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", + "eventName": "aws:kinesis:record", + "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", + "awsRegion": "us-east-2", + "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" + }, + { + "kinesis": { + "kinesisSchemaVersion": "1.0", + "partitionKey": "1", + "sequenceNumber": "49590338271490256608559692540925702759324208523137515618", + "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=", + "approximateArrivalTimestamp": 1545084711.166 + }, + "eventSource": "aws:kinesis", + "eventVersion": "1.0", + "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618", + "eventName": "aws:kinesis:record", + "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", + "awsRegion": "us-east-2", + "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" + } + ] +} diff --git a/examples/event_sources/src/code_pipeline_job.py b/examples/event_sources/src/code_pipeline_job.py new file mode 100644 index 00000000000..39db6e60b9e --- /dev/null +++ b/examples/event_sources/src/code_pipeline_job.py @@ -0,0 +1,10 @@ +from aws_lambda_powertools.utilities.data_classes import CodePipelineJobEvent, event_source + + +@event_source(data_class=CodePipelineJobEvent) +def lambda_handler(event: CodePipelineJobEvent, context): + job_id = event.get_id + + input_bucket = event.input_bucket_name + + return {"statusCode": 200, "body": f"Processed job {job_id} from bucket {input_bucket}"} diff --git a/examples/event_sources/src/codedeploy_lifecycle_hook.py b/examples/event_sources/src/codedeploy_lifecycle_hook.py new file mode 100644 index 00000000000..862dc75de8b --- /dev/null +++ b/examples/event_sources/src/codedeploy_lifecycle_hook.py @@ -0,0 +1,9 @@ +from aws_lambda_powertools.utilities.data_classes import CodeDeployLifecycleHookEvent, event_source + + +@event_source(data_class=CodeDeployLifecycleHookEvent) +def lambda_handler(event: CodeDeployLifecycleHookEvent, context) -> None: + deployment_id = event.deployment_id + lifecycle_event_hook_execution_id = event.lifecycle_event_hook_execution_id + + return {"deployment_id": deployment_id, "lifecycle_event_hook_execution_id": lifecycle_event_hook_execution_id} diff --git a/examples/event_sources/src/cognito_create_auth.py b/examples/event_sources/src/cognito_create_auth.py new file mode 100644 index 00000000000..9f57743f053 --- /dev/null +++ b/examples/event_sources/src/cognito_create_auth.py @@ -0,0 +1,11 @@ +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import CreateAuthChallengeTriggerEvent + + +@event_source(data_class=CreateAuthChallengeTriggerEvent) +def handler(event: CreateAuthChallengeTriggerEvent, context) -> dict: + if event.request.challenge_name == "CUSTOM_CHALLENGE": + event.response.public_challenge_parameters = {"captchaUrl": "url/123.jpg"} + event.response.private_challenge_parameters = {"answer": "5"} + event.response.challenge_metadata = "CAPTCHA_CHALLENGE" + return event.raw_event diff --git a/examples/event_sources/src/cognito_define_auth.py b/examples/event_sources/src/cognito_define_auth.py new file mode 100644 index 00000000000..5ca425de0f9 --- /dev/null +++ b/examples/event_sources/src/cognito_define_auth.py @@ -0,0 +1,29 @@ +from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import DefineAuthChallengeTriggerEvent + + +def lambda_handler(event: dict, context) -> dict: + event: DefineAuthChallengeTriggerEvent = DefineAuthChallengeTriggerEvent(event) + if len(event.request.session) == 1 and event.request.session[0].challenge_name == "SRP_A": + event.response.issue_tokens = False + event.response.fail_authentication = False + event.response.challenge_name = "PASSWORD_VERIFIER" + elif ( + len(event.request.session) == 2 + and event.request.session[1].challenge_name == "PASSWORD_VERIFIER" + and event.request.session[1].challenge_result + ): + event.response.issue_tokens = False + event.response.fail_authentication = False + event.response.challenge_name = "CUSTOM_CHALLENGE" + elif ( + len(event.request.session) == 3 + and event.request.session[2].challenge_name == "CUSTOM_CHALLENGE" + and event.request.session[2].challenge_result + ): + event.response.issue_tokens = True + event.response.fail_authentication = False + else: + event.response.issue_tokens = False + event.response.fail_authentication = True + + return event.raw_event diff --git a/examples/event_sources/src/cognito_post_confirmation.py b/examples/event_sources/src/cognito_post_confirmation.py new file mode 100644 index 00000000000..51ecc2de43f --- /dev/null +++ b/examples/event_sources/src/cognito_post_confirmation.py @@ -0,0 +1,9 @@ +from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import PostConfirmationTriggerEvent + + +def lambda_handler(event, context): + event: PostConfirmationTriggerEvent = PostConfirmationTriggerEvent(event) + + user_attributes = event.request.user_attributes + + return {"statusCode": 200, "body": f"User attributes: {user_attributes}"} diff --git a/examples/event_sources/src/cognito_verify_auth.py b/examples/event_sources/src/cognito_verify_auth.py new file mode 100644 index 00000000000..ae15942246e --- /dev/null +++ b/examples/event_sources/src/cognito_verify_auth.py @@ -0,0 +1,10 @@ +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import VerifyAuthChallengeResponseTriggerEvent + + +@event_source(data_class=VerifyAuthChallengeResponseTriggerEvent) +def lambda_handler(event: VerifyAuthChallengeResponseTriggerEvent, context) -> dict: + event.response.answer_correct = ( + event.request.private_challenge_parameters.get("answer") == event.request.challenge_answer + ) + return event.raw_event diff --git a/examples/event_sources/src/connect_contact_flow.py b/examples/event_sources/src/connect_contact_flow.py new file mode 100644 index 00000000000..53d120a4c4b --- /dev/null +++ b/examples/event_sources/src/connect_contact_flow.py @@ -0,0 +1,14 @@ +from aws_lambda_powertools.utilities.data_classes.connect_contact_flow_event import ( + ConnectContactFlowChannel, + ConnectContactFlowEndpointType, + ConnectContactFlowEvent, + ConnectContactFlowInitiationMethod, +) + + +def lambda_handler(event, context): + event: ConnectContactFlowEvent = ConnectContactFlowEvent(event) + assert event.contact_data.attributes == {"Language": "en-US"} + assert event.contact_data.channel == ConnectContactFlowChannel.VOICE + assert event.contact_data.customer_endpoint.endpoint_type == ConnectContactFlowEndpointType.TELEPHONE_NUMBER + assert event.contact_data.initiation_method == ConnectContactFlowInitiationMethod.API diff --git a/examples/event_sources/src/dynamodb_multiple_records.py b/examples/event_sources/src/dynamodb_multiple_records.py new file mode 100644 index 00000000000..ebc216e4da2 --- /dev/null +++ b/examples/event_sources/src/dynamodb_multiple_records.py @@ -0,0 +1,10 @@ +from aws_lambda_powertools.utilities.data_classes import DynamoDBStreamEvent, event_source +from aws_lambda_powertools.utilities.typing import LambdaContext + + +@event_source(data_class=DynamoDBStreamEvent) +def lambda_handler(event: DynamoDBStreamEvent, context: LambdaContext): + for record in event.records: + # {"N": "123.45"} => Decimal("123.45") + key: str = record.dynamodb.keys["Id"] + return {"statusCode": 200, "body": f"Key:, {key}!"} diff --git a/examples/event_sources/src/dynamodb_stream.py b/examples/event_sources/src/dynamodb_stream.py new file mode 100644 index 00000000000..e317ddac8d4 --- /dev/null +++ b/examples/event_sources/src/dynamodb_stream.py @@ -0,0 +1,16 @@ +from aws_lambda_powertools.utilities.data_classes.dynamo_db_stream_event import ( + DynamoDBRecordEventName, + DynamoDBStreamEvent, +) + + +def lambda_handler(event, context): + event: DynamoDBStreamEvent = DynamoDBStreamEvent(event) + + # Multiple records can be delivered in a single event + for record in event.records: + if record.event_name == DynamoDBRecordEventName.MODIFY: + pass + elif record.event_name == DynamoDBRecordEventName.INSERT: + pass + return "success" diff --git a/examples/event_sources/src/eventBridgeEvent.py b/examples/event_sources/src/eventBridgeEvent.py new file mode 100644 index 00000000000..5bd9c165824 --- /dev/null +++ b/examples/event_sources/src/eventBridgeEvent.py @@ -0,0 +1,11 @@ +from aws_lambda_powertools.utilities.data_classes import EventBridgeEvent, event_source + + +@event_source(data_class=EventBridgeEvent) +def lambda_handler(event: EventBridgeEvent, context): + detail_type = event.detail_type + state = event.detail.get("state") + + # Do something + + return {"detail_type": detail_type, "state": state} diff --git a/examples/event_sources/src/kafka_event.py b/examples/event_sources/src/kafka_event.py new file mode 100644 index 00000000000..93568931eb6 --- /dev/null +++ b/examples/event_sources/src/kafka_event.py @@ -0,0 +1,12 @@ +from aws_lambda_powertools.utilities.data_classes import KafkaEvent, event_source + + +def do_something_with(key: bytes, value: dict): + print(f"key: {key}, value: {value}") + + +@event_source(data_class=KafkaEvent) +def lambda_handler(event: KafkaEvent, context): + for record in event.records: + do_something_with(record.topic, record.value) + return "success" diff --git a/examples/event_sources/src/kinesis_streams.py b/examples/event_sources/src/kinesis_streams.py new file mode 100644 index 00000000000..195f6ae565a --- /dev/null +++ b/examples/event_sources/src/kinesis_streams.py @@ -0,0 +1,37 @@ +import json + +from aws_lambda_powertools import Logger +from aws_lambda_powertools.utilities.data_classes import KinesisStreamEvent, event_source +from aws_lambda_powertools.utilities.typing import LambdaContext + +logger = Logger() + + +@event_source(data_class=KinesisStreamEvent) +def lambda_handler(event: KinesisStreamEvent, context: LambdaContext): + for record in event.records: + kinesis_record = record.kinesis + + try: + # First, try to parse the data as JSON + data = kinesis_record.data_as_json() + logger.info("Received JSON data from Kinesis") + except json.JSONDecodeError: + # If JSON parsing fails, treat it as text + data = kinesis_record.data_as_text() + logger.info("Received text data from Kinesis") + + process_data(data) + + return {"statusCode": 200, "body": "Processed all records successfully"} + + +def process_data(data): + if isinstance(data, dict): + # Handle JSON data + logger.info(f"Processing JSON data: {data}") + # Add your JSON processing logic here + else: + # Handle text data + logger.info(f"Processing text data: {data}") + # Add your text processing logic here From 905ebd971ced4790576f40fa69edc2b403f8e5dd Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Fri, 24 Jan 2025 15:47:17 -0300 Subject: [PATCH 5/7] complete all examples --- docs/utilities/data_classes.md | 322 ++++++++---------- .../events/lambdaFunctionUrlEvent.json | 47 +++ .../event_sources/events/rabbitMQEvent.json | 51 +++ .../events/s3BatchOperationEventSchemaV2.json | 19 ++ examples/event_sources/events/s3Event.json | 38 +++ ...tBridgeNotificationObjectCreatedEvent.json | 28 ++ .../event_sources/events/s3ObjectEvent.json | 29 ++ examples/event_sources/events/sesEvent.json | 101 ++++++ examples/event_sources/events/snsEvent.json | 31 ++ examples/event_sources/events/sqsEvent.json | 42 +++ .../event_sources/src/lambdaFunctionUrl.py | 7 + .../event_sources/src/rabbit_mq_example.py | 21 ++ examples/event_sources/src/s3Event.py | 18 + examples/event_sources/src/s3_event_bridge.py | 13 + .../event_sources/src/s3_object_lambda.py | 31 ++ examples/event_sources/src/ses_event.py | 13 + examples/event_sources/src/sns_event.py | 13 + examples/event_sources/src/sqs_event.py | 13 + 18 files changed, 664 insertions(+), 173 deletions(-) create mode 100644 examples/event_sources/events/lambdaFunctionUrlEvent.json create mode 100644 examples/event_sources/events/rabbitMQEvent.json create mode 100644 examples/event_sources/events/s3BatchOperationEventSchemaV2.json create mode 100644 examples/event_sources/events/s3Event.json create mode 100644 examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json create mode 100644 examples/event_sources/events/s3ObjectEvent.json create mode 100644 examples/event_sources/events/sesEvent.json create mode 100644 examples/event_sources/events/snsEvent.json create mode 100644 examples/event_sources/events/sqsEvent.json create mode 100644 examples/event_sources/src/lambdaFunctionUrl.py create mode 100644 examples/event_sources/src/rabbit_mq_example.py create mode 100644 examples/event_sources/src/s3Event.py create mode 100644 examples/event_sources/src/s3_event_bridge.py create mode 100644 examples/event_sources/src/s3_object_lambda.py create mode 100644 examples/event_sources/src/ses_event.py create mode 100644 examples/event_sources/src/sns_event.py create mode 100644 examples/event_sources/src/sqs_event.py diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index 232db8d87b5..7d5723a00fc 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -25,13 +25,13 @@ There are two ways to use Event Source Data Classes in your Lambda functions. You can initialize the appropriate data class by passing the Lambda event object to its constructor. -=== "getting_started_data_classes.py" +=== "app.py" ```python hl_lines="1 4" --8<-- "examples/event_sources/src/getting_started_data_classes.py" ``` -=== "apigw_event.json" +=== "API Gateway Proxy Example Event" ```json hl_lines="3-4" --8<-- "examples/event_sources/events/apigw_event.json" @@ -41,13 +41,13 @@ You can initialize the appropriate data class by passing the Lambda event object Alternatively, you can use the `event_source` decorator to automatically parse the event. -=== "apigw_proxy_decorator.py" +=== "app.py" - ```python hl_lines="1 3" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/apigw_proxy_decorator.py" ``` -=== "apigw_event.json" +=== "API Gateway Proxy Example Event" ```json hl_lines="3-4" --8<-- "examples/event_sources/events/apigw_event.json" @@ -111,13 +111,13 @@ It is used for [Active MQ payloads](https://docs.aws.amazon.com/lambda/latest/dg the [AWS blog post](https://aws.amazon.com/blogs/compute/using-amazon-mq-as-an-event-source-for-aws-lambda/){target="_blank"} for more details. -=== "active_mq_example.py" +=== "app.py" - ```python hl_lines="2 8" + ```python hl_lines="5 10" --8<-- "examples/event_sources/src/active_mq_example.py" ``` -=== "active_mq_event.json" +=== "Active MQ Example Event" ```json hl_lines="6 9 18 21" --8<-- "examples/event_sources/events/active_mq_event_example.json" @@ -129,25 +129,25 @@ It is used for [API Gateway Rest API Lambda Authorizer payload](https://docs.aws Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayAuthorizerTokenEvent`** for type `TOKEN`. -=== "apigw_type_request.py" +=== "app.py" ```python hl_lines="2-4 8" --8<-- "examples/event_sources/src/apigw_authorizer_request.py" ``` -=== "apiGatewayAuthorizerRequestEvent.json" +=== "API Gateway Authorizer Request Example Event" ```json hl_lines="3 11" --8<-- "examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json" ``` -=== "apigw_type_token.py" +=== "app_token.py" ```python hl_lines="2-4 8" --8<-- "examples/event_sources/src/apigw_authorizer_token.py" ``` -=== "apiGatewayAuthorizerTokentEvent.json" +=== "API Gateway Authorizer Token Example Event" ```json hl_lines="2 3" --8<-- "examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json" @@ -158,13 +158,13 @@ Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayA It is used for [API Gateway HTTP API Lambda Authorizer payload version 2](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-lambda-authorizer.html){target="_blank"}. See also [this blog post](https://aws.amazon.com/blogs/compute/introducing-iam-and-lambda-authorizers-for-amazon-api-gateway-http-apis/){target="_blank"} for more details. -=== "apigw_auth_v2.py" +=== "app.py" - ```python hl_lines="2-4 16" + ```python hl_lines="4-6 16" --8<-- "examples/event_sources/src/apigw_auth_v2.py" ``` -=== "apiGatewayAuthorizerV2Event.json" +=== "API Gateway Authorizer V2 Example Event" ```json --8<-- "examples/event_sources/events/apiGatewayAuthorizerV2Event.json" @@ -174,13 +174,13 @@ See also [this blog post](https://aws.amazon.com/blogs/compute/introducing-iam-a It is used for either API Gateway REST API or HTTP API using v1 proxy event. -=== "apigw_proxy_decorator.py" +=== "app.py" ```python hl_lines="1 4" --8<-- "examples/event_sources/src/apigw_proxy_decorator.py" ``` -=== "apiGatewayProxyEvent.json" +=== "API Gateway Proxy Example Event" ```json hl_lines="3 4" --8<-- "examples/event_sources/events/apigw_event.json" @@ -190,13 +190,13 @@ It is used for either API Gateway REST API or HTTP API using v1 proxy event. It is used for HTTP API using v2 proxy event. -=== "apigw_proxy_v2.py" +=== "app.py" ```python hl_lines="1 4" --8<-- "examples/event_sources/src/apigw_proxy_v2.py" ``` -=== "apiGatewayProxyEvent.json" +=== "API Gateway Proxy V2 Example Event" ```json --8<-- "examples/event_sources/events/apiGatewayProxyV2Event.json" @@ -206,13 +206,13 @@ It is used for HTTP API using v2 proxy event. Is it used for [Application load balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/introduction.html) event. -=== "albEvent.py" +=== "app.py" ```python hl_lines="1 4" --8<-- "examples/event_sources/src/albEvent.py" ``` -=== "albEvent.json" +=== "Application Load Balancer Example Event" ```json hl_lines="7 8" --8<-- "examples/event_sources/events/albEvent.json" @@ -224,13 +224,13 @@ Used when building an [AWS_LAMBDA Authorization](https://docs.aws.amazon.com/app See blog post [Introducing Lambda authorization for AWS AppSync GraphQL APIs](https://aws.amazon.com/blogs/mobile/appsync-lambda-auth/){target="_blank"} or read the Amplify documentation on using [AWS Lambda for authorization](https://docs.amplify.aws/lib/graphqlapi/authz/q/platform/js#aws-lambda){target="_blank"} with AppSync. -=== "appSyncAuthorizer.py" +=== "app.py" ```python hl_lines="5-7 20" --8<-- "examples/event_sources/src/appSyncAuthorizer.py" ``` -=== "appSyncAuthorizerEvent.json" +=== "AppSync Authorizer Example Event" ```json --8<-- "examples/event_sources/events/appSyncAuthorizerEvent.json" @@ -243,13 +243,13 @@ and [AppSync Direct Lambda Resolvers](https://aws.amazon.com/blogs/mobile/appsyn The example serves as an AppSync resolver for the `locations` field of the `Merchant` type. It uses the `@event_source` decorator to parse the AppSync event, handles pagination and filtering for locations, and demonstrates `AppSyncIdentityCognito`. -=== "appSyncResolver.py" +=== "app.py" ```python hl_lines="2-4 9" --8<-- "examples/event_sources/src/appSyncResolver.py" ``` -=== "appSyncResolverEvent.json" +=== "AppSync Resolver Example Event" ```json --8<-- "examples/event_sources/events/appSyncResolverEvent.json" @@ -259,12 +259,12 @@ The example serves as an AppSync resolver for the `locations` field of the `Merc The example utilizes AWSConfigRuleEvent to parse the incoming event. The function logs the message type of the invoking event and returns a simple success response. The example event receives a Scheduled Event Notification, but could also be ItemChanged and Oversized. -=== "aws_config_rule.py" +=== "app.py" ```python hl_lines="2-3 10" --8<-- "examples/event_sources/src/aws_config_rule.py" ``` -=== "Event - ScheduledNotification" +=== "ScheduledNotification Example Event" ```json --8<-- "examples/event_sources/src/aws_config_rule_scheduled.json" ``` @@ -273,13 +273,13 @@ The example utilizes AWSConfigRuleEvent to parse the incoming event. The functio The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/) with `BedrockAgentEvent` to parse the incoming event. The function logs the action group and input text, then returns a structured response compatible with Bedrock Agent's expected format, including a mock response body. -=== "bedrock_agent.py" +=== "app.py" ```python hl_lines="2 7" --8<-- "examples/event_sources/src/bedrock_agent.py" ``` -=== "bedrockAgentEvent.json" +=== "Bedrock Agent Example Event" ```json --8<-- "examples/event_sources/events/bedrockAgentEvent.json" ``` @@ -288,13 +288,13 @@ The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/ The example focuses on the `Create` request type, generating a unique physical resource ID and logging the process. The function is structured to potentially handle `Update` and `Delete` operations as well. -=== "cloudformation_custom_resource_handler.py" +=== "app.py" - ```python hl_lines="2-3 11 15 20" + ```python hl_lines="2-3 11 15 21" --8<-- "examples/event_sources/src/cloudformation_custom_resource_handler.py" ``` -=== "cloudformationCustomResourceCreate.json" +=== "CloudFormation Custom Resource Example Event" ```json --8<-- "examples/event_sources/events/cloudformationCustomResourceCreate.json" ``` @@ -303,13 +303,13 @@ The example focuses on the `Create` request type, generating a unique physical r Thie example for `CloudWatchDashboardCustomWidgetEvent` logs the dashboard name, extracts key information like widget ID and time range, and returns a formatted response with a title and markdown content. Read more about [custom widgets for Cloudwatch dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/add_custom_widget_samples.html). -=== "cloudWatchDashboard.py" +=== "app.py" ```python hl_lines="2 7" --8<-- "examples/event_sources/src/cloudWatchDashboard.py" ``` -=== "cloudWatchDashboardEvent.json" +=== "CloudWatch Dashboard Example Event" ```json --8<-- "examples/event_sources/events/cloudWatchDashboardEvent.json" ``` @@ -319,13 +319,13 @@ Thie example for `CloudWatchDashboardCustomWidgetEvent` logs the dashboard name, [CloudWatch supports Lambda as an alarm state change action](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions){target="_blank"}. You can use the `CloudWathAlarmEvent` data class to access the fields containing such data as alarm information, current state, and previous state. -=== "cloudwatch_alarm_event.py" +=== "app.py" ```python hl_lines="2 8" --8<-- "examples/event_sources/src/cloudwatch_alarm_event.py" ``` -=== "cloudWatchAlarmEventSingleMetric.json" +=== "CloudWatch Alarm Example Event" ```json --8<-- "examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json" ``` @@ -335,13 +335,13 @@ You can use the `CloudWathAlarmEvent` data class to access the fields containing CloudWatch Logs events by default are compressed and base64 encoded. You can use the helper function provided to decode, decompress and parse json data from the event. -=== "cloudwatch_logs.py" +=== "app.py" ```python hl_lines="2-3 8" --8<-- "examples/event_sources/src/cloudwatch_logs.py" ``` -=== "cloudWatchLogEvent.json" +=== "CloudWatch Logs Example Event" ```json --8<-- "examples/event_sources/events/cloudWatchLogEvent.json" ``` @@ -350,26 +350,26 @@ decompress and parse json data from the event. [When streaming CloudWatch Logs to a Kinesis Data Stream](https://aws.amazon.com/premiumsupport/knowledge-center/streaming-cloudwatch-logs/){target="_blank"} (cross-account or not), you can use `extract_cloudwatch_logs_from_event` to decode, decompress and extract logs as `CloudWatchLogsDecodedData` to ease log processing. -=== "kinesisStreamCloudWatchLogs.py" +=== "app.py" - ```python hl_lines="5-6 11" + ```python hl_lines="5-7 11" --8<-- "examples/event_sources/src/kinesisStreamCloudWatchLogs.py" ``` -=== "kinesisStreamCloudWatchLogsEvent.json" +=== "Kinesis Stream CloudWatch Logs Example Event" ```json --8<-- "examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json" ``` Alternatively, you can use `extract_cloudwatch_logs_from_record` to seamless integrate with the [Batch utility](./batch.md){target="_blank"} for more robust log processing. -=== "kinesis_batch_example.py" +=== "app.py" ```python hl_lines="7-9 18" --8<-- "examples/event_sources/src/kinesis_batch_example.py" ``` -=== "kinesisStreamCloudWatchLogsEvent.json" +=== "Kinesis Stream CloudWatch Logs Example Event" ```json --8<-- "examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json" ``` @@ -380,13 +380,13 @@ CodeDeploy triggers Lambdas with this event when defined in [AppSpec definitions](https://docs.aws.amazon.com/codedeploy/latest/userguide/reference-appspec-file-structure-hooks.html) to test applications at different stages of deployment. -=== "codedeploy_lifecycle_hook.py" +=== "app.py" - ```python hl_lines="1-2 6" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/codedeploy_lifecycle_hook.py" ``` -=== "codeDeployLifecycleHookEvent.json" +=== "CodeDeploy LifeCycle Hook Example Event" ```json --8<-- "examples/event_sources/events/codeDeployLifecycleHookEvent.json" ``` @@ -395,13 +395,13 @@ to test applications at different stages of deployment. Data classes and utility functions to help create continuous delivery pipelines tasks with AWS Lambda. -=== "code_pipeline_job.py" +=== "app.py" - ```python hl_lines="1 3" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/code_pipeline_job.py" ``` -=== "codePipelineEvent.json" +=== "CodePipeline Job Example Event" ```json hl_lines="3 19" --8<-- "examples/event_sources/events/codePipelineEvent.json" ``` @@ -431,13 +431,13 @@ Some examples for the Cognito User Pools Lambda triggers sources: #### Post Confirmation Example -=== "cognito_post_confirmation.py" +=== "app.py" - ```python hl_lines="1 4" + ```python hl_lines="1 5" --8<-- "examples/event_sources/src/cognito_post_confirmation.py" ``` -=== "cognitoPostConfirmationEvent.json" +=== "Cognito Post Confirmation Example Event" ```json hl_lines="12-14" --8<-- "examples/event_sources/events/cognitoPostConfirmationEvent.json" ``` @@ -449,13 +449,13 @@ Some examples for the Cognito User Pools Lambda triggers sources: This example is based on the AWS Cognito docs for [Define Auth Challenge Lambda Trigger](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-define-auth-challenge.html){target="_blank"}. -=== "cognito_define_auth.py" +=== "app.py" - ```python hl_lines="1 4" + ```python hl_lines="1 5" --8<-- "examples/event_sources/src/cognito_define_auth.py" ``` -=== "cognitoDefineAuthChallengeEvent.json" +=== "Cognito Define Auth Challengen Example Event" ```json --8<-- "examples/event_sources/events/cognitoDefineAuthChallengeEvent.json" ``` @@ -464,13 +464,13 @@ This example is based on the AWS Cognito docs for [Define Auth Challenge Lambda This example is based on the AWS Cognito docs for [Create Auth Challenge Lambda Trigger](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-create-auth-challenge.html){target="_blank"}. -=== "cognito_create_auth.py" +=== "app.py" - ```python hl_lines="1 4" + ```python hl_lines="2 5" --8<-- "examples/event_sources/src/cognito_create_auth.py" ``` -=== "cognitoCreateAuthChallengeEvent.json" +=== "Cognito Define Auth Challengen Example Event" ```json --8<-- "examples/event_sources/events/cognitoCreateAuthChallengeEvent.json" ``` @@ -479,13 +479,13 @@ This example is based on the AWS Cognito docs for [Create Auth Challenge Lambda This example is based on the AWS Cognito docs for [Verify Auth Challenge Response Lambda Trigger](https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-verify-auth-challenge-response.html){target="_blank"}. -=== "cognito_verify_auth.py" +=== "app.py" - ```python hl_lines="2 4" + ```python hl_lines="2 5" --8<-- "examples/event_sources/src/cognito_verify_auth.py" ``` -=== "cognitoVerifyAuthChallengeResponseEvent.json" +=== "Cognito Verify Auth Challengen Example Event" ```json --8<-- "examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json" ``` @@ -494,13 +494,13 @@ This example is based on the AWS Cognito docs for [Verify Auth Challenge Respons The example integrates with [Amazon Connect](https://docs.aws.amazon.com/connect/latest/adminguide/what-is-amazon-connect.html) by handling contact flow events. The function converts the event into a `ConnectContactFlowEvent` object, providing a structured representation of the contact flow data. -=== "connect_contact_flow.py" +=== "app.py" - ```python hl_lines="1-5 9" + ```python hl_lines="1-5 10" --8<-- "examples/event_sources/src/connect_contact_flow.py" ``` -=== "connectContactFlowEventAll.json" +=== "Connect Contact Flow Example Event" ```json --8<-- "examples/event_sources/events/connectContactFlowEventAll.json" ``` @@ -511,15 +511,15 @@ The DynamoDB data class utility provides the base class for `DynamoDBStreamEvent (`DynamoDBRecordEventName`). The class automatically deserializes DynamoDB types into their equivalent Python types. -=== "dynamodb_stream.py" - ```python hl_lines="1-3 7" +=== "app.py" + ```python hl_lines="1-3 8" --8<-- "examples/event_sources/src/dynamodb_stream.py" ``` -=== "dynamodb_multiple_records.py" +=== "app_multiple_records.py" ```python hl_lines="1 5" --8<-- "examples/event_sources/src/dynamodb_multiple_records.py" ``` -=== "dynamoStreamEvent.json" +=== "DynamoDB Streams Example Event" ```json --8<-- "examples/event_sources/events/dynamoStreamEvent.json" ``` @@ -528,13 +528,13 @@ The class automatically deserializes DynamoDB types into their equivalent Python When an event matching a defined rule occurs in EventBridge, it can [automatically trigger a Lambda function](https://docs.aws.amazon.com/lambda/latest/dg/with-eventbridge-scheduler.html), passing the event data as input. -=== "eventBridgeEvent.py" +=== "app.py" - ```python hl_lines="1 3" + ```python hl_lines="1 4" --8<-- "examples/event_sources/src/eventBridgeEvent.py" ``` -=== "eventBridgeEvent.json" +=== "EventBridge Example Event" ```json --8<-- "examples/event_sources/events/eventBridgeEvent.json" ``` @@ -543,13 +543,13 @@ The class automatically deserializes DynamoDB types into their equivalent Python This example is based on the AWS docs for [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html){target="_blank"} and [self-managed Apache Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html){target="_blank"}. -=== "kafka_event.py" +=== "app.py" - ```python hl_lines="1 6" + ```python hl_lines="1 8" --8<-- "examples/event_sources/src/kafka_event.py" ``` -=== "kafkaEventMsk.json" +=== "Kafka Example Event" ```json --8<-- "examples/event_sources/events/kafkaEventMsk.json" ``` @@ -559,13 +559,13 @@ This example is based on the AWS docs for [Amazon MSK](https://docs.aws.amazon.c Kinesis events by default contain base64 encoded data. You can use the helper function to access the data either as json or plain text, depending on the original payload. -=== "kinesis_streams.py" +=== "app.py" - ```python hl_lines="3 8" + ```python hl_lines="4 10" --8<-- "examples/event_sources/src/kinesis_streams.py" ``` -=== "kinesisStreamEvent.json" +=== "Kinesis streams Example Event" ```json --8<-- "examples/event_sources/events/kinesisStreamEvent.json" ``` @@ -582,7 +582,7 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along === "Transforming streaming records" - ```python hl_lines="2-3 12 28" + ```python hl_lines="2-3 10 12" --8<-- "examples/event_sources/src/kinesis_firehose_delivery_stream.py" ``` @@ -591,7 +591,7 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along === "Dropping invalid records" - ```python hl_lines="5-6 16 34" + ```python hl_lines="5-6 14 16" --8<-- "examples/event_sources/src/kinesis_firehose_response_drop.py" ``` @@ -599,7 +599,7 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along === "Indicating a processing failure" - ```python hl_lines="2-3 33" + ```python hl_lines="2-3 11 33" --8<-- "examples/event_sources/src/kinesis_firehose_response_exception.py" ``` @@ -612,60 +612,49 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along ### Lambda Function URL +[Lambda Function URLs](https://docs.aws.amazon.com/lambda/latest/dg/urls-invocation.html) provide a direct HTTP endpoint for invoking Lambda functions. This feature allows functions to receive and process HTTP requests without the need for additional services like API Gateway. + === "app.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, LambdaFunctionUrlEvent + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/lambdaFunctionUrl.py" + ``` - @event_source(data_class=LambdaFunctionUrlEvent) - def lambda_handler(event: LambdaFunctionUrlEvent, context): - do_something_with(event.body) +=== "Lambda Function URL Example Event" + ```json + --8<-- "examples/event_sources/events/lambdaFunctionUrlEvent.json" ``` ### Rabbit MQ -It is used for [Rabbit MQ payloads](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html){target="_blank"}, also see +It is used for [Rabbit MQ payloads](https://docs.aws.amazon.com/lambda/latest/dg/with-mq.html){target="_blank"}. See the [blog post](https://aws.amazon.com/blogs/compute/using-amazon-mq-for-rabbitmq-as-an-event-source-for-lambda/){target="_blank"} for more details. === "app.py" - ```python hl_lines="4-5 9-10" - from typing import Dict - - from aws_lambda_powertools import Logger - from aws_lambda_powertools.utilities.data_classes import event_source - from aws_lambda_powertools.utilities.data_classes.rabbit_mq_event import RabbitMQEvent - - logger = Logger() + ```python hl_lines="5 10" + --8<-- "examples/event_sources/src/rabbit_mq_example.py" + ``` - @event_source(data_class=RabbitMQEvent) - def lambda_handler(event: RabbitMQEvent, context): - for queue_name, messages in event.rmq_messages_by_queue.items(): - logger.debug(f"Messages for queue: {queue_name}") - for message in messages: - logger.debug(f"MessageID: {message.basic_properties.message_id}") - data: Dict = message.json_data - logger.debug("Process json in base64 encoded data str", data) +=== "Rabbit MQ Example Event" + ```json + --8<-- "examples/event_sources/events/rabbitMQEvent.json" ``` ### S3 -=== "app.py" - - ```python - from urllib.parse import unquote_plus - from aws_lambda_powertools.utilities.data_classes import event_source, S3Event +Integration with Amazon S3 enables automatic, serverless processing of object-level events in S3 buckets. When triggered by actions like object creation or deletion, Lambda functions receive detailed event information, allowing for real-time file processing, data transformations, and automated workflows. - @event_source(data_class=S3Event) - def lambda_handler(event: S3Event, context): - bucket_name = event.bucket_name +=== "app.py" - # Multiple records can be delivered in a single event - for record in event.records: - object_key = unquote_plus(record.s3.get_object.key) + ```python hl_lines="3 6" + --8<-- "examples/event_sources/src/s3Event.py" + ``` - do_something_with(f"{bucket_name}/{object_key}") +=== "S3 Example Event" + ```json + --8<-- "examples/event_sources/events/s3Event.json" ``` ### S3 Batch Operations @@ -678,54 +667,42 @@ This example is based on the AWS S3 Batch Operations documentation [Example Lamb --8<-- "examples/event_sources/src/s3_batch_operation.py" ``` +=== "S3 Batch Operations Example Event" + + ```json + --8<-- "examples/event_sources/events/s3BatchOperationEventSchemaV2.json" + ``` + ### S3 Object Lambda This example is based on the AWS Blog post [Introducing Amazon S3 Object Lambda – Use Your Code to Process Data as It Is Being Retrieved from S3](https://aws.amazon.com/blogs/aws/introducing-amazon-s3-object-lambda-use-your-code-to-process-data-as-it-is-being-retrieved-from-s3/){target="_blank"}. === "app.py" - ```python hl_lines="5-6 12 14" - import boto3 - import requests - - from aws_lambda_powertools import Logger - from aws_lambda_powertools.logging.correlation_paths import S3_OBJECT_LAMBDA - from aws_lambda_powertools.utilities.data_classes.s3_object_event import S3ObjectLambdaEvent - - logger = Logger() - session = boto3.session.Session() - s3 = session.client("s3") - - @logger.inject_lambda_context(correlation_id_path=S3_OBJECT_LAMBDA, log_event=True) - def lambda_handler(event, context): - event = S3ObjectLambdaEvent(event) - - # Get object from S3 - response = requests.get(event.input_s3_url) - original_object = response.content.decode("utf-8") - - # Make changes to the object about to be returned - transformed_object = original_object.upper() + ```python hl_lines="5 6 13 15" + --8<-- "examples/event_sources/src/s3_object_lambda.py" + ``` - # Write object back to S3 Object Lambda - s3.write_get_object_response( - Body=transformed_object, RequestRoute=event.request_route, RequestToken=event.request_token - ) +=== "S3 Object Lambda Example Event" - return {"status_code": 200} + ```json + --8<-- "examples/event_sources/events/s3ObjectEvent.json" ``` ### S3 EventBridge Notification +[S3 EventBridge notifications](https://docs.aws.amazon.com/AmazonS3/latest/userguide/EventBridge.html) enhance Lambda's ability to process S3 events by routing them through Amazon EventBridge. This integration offers advanced filtering, multiple destination support, and standardized CloudEvents format. + === "app.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, S3EventBridgeNotificationEvent + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/s3_event_bridge.py" + ``` + +=== "S3 EventBridge Notification Example Event" - @event_source(data_class=S3EventBridgeNotificationEvent) - def lambda_handler(event: S3EventBridgeNotificationEvent, context): - bucket_name = event.detail.bucket.name - file_key = event.detail.object.key + ```json + --8<-- "examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json" ``` ### Secrets Manager @@ -746,50 +723,50 @@ AWS Secrets Manager rotation uses an AWS Lambda function to update the secret. [ ### SES +The integration with Simple Email Service (SES) enables serverless email processing. When configured, SES can trigger Lambda functions in response to incoming emails or delivery status notifications. The Lambda function receives an SES event containing details like sender, recipients, and email content. + === "app.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, SESEvent + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/ses_event.py" + ``` - @event_source(data_class=SESEvent) - def lambda_handler(event: SESEvent, context): - # Multiple records can be delivered in a single event - for record in event.records: - mail = record.ses.mail - common_headers = mail.common_headers +=== "SES Example Event" - do_something_with(common_headers.to, common_headers.subject) + ```json + --8<-- "tests/events/sesEvent.json" ``` ### SNS +The integration with Simple Notification Service (SNS) enables serverless message processing. When configured, SNS can trigger Lambda functions in response to published messages or notifications. The Lambda function receives an SNS event containing details like the message body, subject, and metadata. + === "app.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, SNSEvent + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/sns_event.py" + ``` - @event_source(data_class=SNSEvent) - def lambda_handler(event: SNSEvent, context): - # Multiple records can be delivered in a single event - for record in event.records: - message = record.sns.message - subject = record.sns.subject +=== "SNS Example Event" - do_something_with(subject, message) + ```json + --8<-- "tests/events/snsEvent.json" ``` ### SQS +The integration with Simple Queue Service (SQS) enables serverless queue processing. When configured, SQS can trigger Lambda functions in response to messages in the queue. The Lambda function receives an SQS event containing details like message body, attributes, and metadata. + === "app.py" - ```python - from aws_lambda_powertools.utilities.data_classes import event_source, SQSEvent + ```python hl_lines="1 4" + --8<-- "examples/event_sources/src/sqs_event.py" + ``` + +=== "SQS Example Event" - @event_source(data_class=SQSEvent) - def lambda_handler(event: SQSEvent, context): - # Multiple records can be delivered in a single event - for record in event.records: - do_something_with(record.body) + ```json + --8<-- "tests/events/sqsEvent.json" ``` ### VPC Lattice V2 @@ -851,4 +828,3 @@ However, certain events may contain sensitive fields such as `secret_access_key` ```json hl_lines="16 17 18" --8<-- "examples/event_sources/src/debugging_output.json" ``` - ``` diff --git a/examples/event_sources/events/lambdaFunctionUrlEvent.json b/examples/event_sources/events/lambdaFunctionUrlEvent.json new file mode 100644 index 00000000000..da5c133e6f8 --- /dev/null +++ b/examples/event_sources/events/lambdaFunctionUrlEvent.json @@ -0,0 +1,47 @@ +{ + "version":"2.0", + "routeKey":"$default", + "rawPath":"/", + "rawQueryString":"", + "headers":{ + "sec-fetch-mode":"navigate", + "x-amzn-tls-version":"TLSv1.2", + "sec-fetch-site":"cross-site", + "accept-language":"pt-BR,pt;q=0.9", + "x-forwarded-proto":"https", + "x-forwarded-port":"443", + "x-forwarded-for":"123.123.123.123", + "sec-fetch-user":"?1", + "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", + "x-amzn-tls-cipher-suite":"ECDHE-RSA-AES128-GCM-SHA256", + "sec-ch-ua":"\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\"", + "sec-ch-ua-mobile":"?0", + "x-amzn-trace-id":"Root=1-62ecd163-5f302e550dcde3b12402207d", + "sec-ch-ua-platform":"\"Linux\"", + "host":"<url-id>.lambda-url.us-east-1.on.aws", + "upgrade-insecure-requests":"1", + "cache-control":"max-age=0", + "accept-encoding":"gzip, deflate, br", + "sec-fetch-dest":"document", + "user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" + }, + "requestContext":{ + "accountId":"anonymous", + "apiId":"<url-id>", + "domainName":"<url-id>.lambda-url.us-east-1.on.aws", + "domainPrefix":"<url-id>", + "http":{ + "method":"GET", + "path":"/", + "protocol":"HTTP/1.1", + "sourceIp":"123.123.123.123", + "userAgent":"agent" + }, + "requestId":"id", + "routeKey":"$default", + "stage":"$default", + "time":"05/Aug/2022:08:14:39 +0000", + "timeEpoch":1659687279885 + }, + "isBase64Encoded":false +} diff --git a/examples/event_sources/events/rabbitMQEvent.json b/examples/event_sources/events/rabbitMQEvent.json new file mode 100644 index 00000000000..5b1d998459f --- /dev/null +++ b/examples/event_sources/events/rabbitMQEvent.json @@ -0,0 +1,51 @@ +{ + "eventSource": "aws:rmq", + "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", + "rmqMessagesByQueue": { + "pizzaQueue::/": [ + { + "basicProperties": { + "contentType": "text/plain", + "contentEncoding": null, + "headers": { + "header1": { + "bytes": [ + 118, + 97, + 108, + 117, + 101, + 49 + ] + }, + "header2": { + "bytes": [ + 118, + 97, + 108, + 117, + 101, + 50 + ] + }, + "numberInHeader": 10 + }, + "deliveryMode": 1, + "priority": 34, + "correlationId": null, + "replyTo": null, + "expiration": "60000", + "messageId": null, + "timestamp": "Jan 1, 1970, 12:33:41 AM", + "type": null, + "userId": "1234", + "appId": null, + "clusterId": null, + "bodySize": 80 + }, + "redelivered": false, + "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" + } + ] + } +} \ No newline at end of file diff --git a/examples/event_sources/events/s3BatchOperationEventSchemaV2.json b/examples/event_sources/events/s3BatchOperationEventSchemaV2.json new file mode 100644 index 00000000000..720dd1f0cf0 --- /dev/null +++ b/examples/event_sources/events/s3BatchOperationEventSchemaV2.json @@ -0,0 +1,19 @@ +{ + "invocationSchemaVersion": "2.0", + "invocationId": "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", + "job": { + "id": "f3cc4f60-61f6-4a2b-8a21-d07600c373ce", + "userArguments": { + "k1": "v1", + "k2": "v2" + } + }, + "tasks": [ + { + "taskId": "dGFza2lkZ29lc2hlcmUK", + "s3Key": "prefix/dataset/dataset.20231222.json.gz", + "s3VersionId": null, + "s3Bucket": "powertools-dataset" + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/events/s3Event.json b/examples/event_sources/events/s3Event.json new file mode 100644 index 00000000000..71eff8db743 --- /dev/null +++ b/examples/event_sources/events/s3Event.json @@ -0,0 +1,38 @@ +{ + "Records": [ + { + "eventVersion": "2.1", + "eventSource": "aws:s3", + "awsRegion": "us-east-2", + "eventTime": "2019-09-03T19:37:27.192Z", + "eventName": "ObjectCreated:Put", + "userIdentity": { + "principalId": "123" + }, + "requestParameters": { + "sourceIPAddress": "205.255.255.255" + }, + "responseElements": { + "x-amz-request-id": "D82B88E5F771F645", + "x-amz-id-2": "vlR7PnpV2Ce81l0PRw6jlUpck7Jo5ZsQjryTjKlc5aLWGVHPZLj5NeC6qMa0emYBDXOo6QBU0Wo=" + }, + "s3": { + "s3SchemaVersion": "1.0", + "configurationId": "828aa6fc-f7b5-4305-8584-487c791949c1", + "bucket": { + "name": "lambda-artifacts-deafc19498e3f2df", + "ownerIdentity": { + "principalId": "123" + }, + "arn": "arn:aws:s3:::lambda-artifacts-deafc19498e3f2df" + }, + "object": { + "key": "b21b84d653bb07b05b1e6b33684dc11b", + "size": 1305107, + "eTag": "b21b84d653bb07b05b1e6b33684dc11b", + "sequencer": "0C0F6F405D6ED209E1" + } + } + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json b/examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json new file mode 100644 index 00000000000..99b859484ac --- /dev/null +++ b/examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json @@ -0,0 +1,28 @@ +{ + "version": "0", + "id": "f5f1e65c-dc3a-93ca-6c1e-b1647eac7963", + "detail-type": "Object Created", + "source": "aws.s3", + "account": "123456789012", + "time": "2023-03-08T17:50:14Z", + "region": "eu-west-1", + "resources": [ + "arn:aws:s3:::example-bucket" + ], + "detail": { + "version": "0", + "bucket": { + "name": "example-bucket" + }, + "object": { + "key": "img.jpg", + "size": 184662, + "etag": "4e68adba0abe2dc8653dc3354e14c01d", + "sequencer": "006408CAD69598B05E" + }, + "request-id": "57H08PA84AB1JZW0", + "requester": "123456789012", + "source-ip-address": "34.252.34.74", + "reason": "PutObject" + } +} \ No newline at end of file diff --git a/examples/event_sources/events/s3ObjectEvent.json b/examples/event_sources/events/s3ObjectEvent.json new file mode 100644 index 00000000000..afec46fecca --- /dev/null +++ b/examples/event_sources/events/s3ObjectEvent.json @@ -0,0 +1,29 @@ +{ + "xAmzRequestId": "1a5ed718-5f53-471d-b6fe-5cf62d88d02a", + "getObjectContext": { + "inputS3Url": "https://myap-123412341234.s3-accesspoint.us-east-1.amazonaws.com/s3.txt?X-Amz-Security-Token=...", + "outputRoute": "io-iad-cell001", + "outputToken": "..." + }, + "configuration": { + "accessPointArn": "arn:aws:s3-object-lambda:us-east-1:123412341234:accesspoint/myolap", + "supportingAccessPointArn": "arn:aws:s3:us-east-1:123412341234:accesspoint/myap", + "payload": "test" + }, + "userRequest": { + "url": "/s3.txt", + "headers": { + "Host": "myolap-123412341234.s3-object-lambda.us-east-1.amazonaws.com", + "Accept-Encoding": "identity", + "X-Amz-Content-SHA256": "e3b0c44297fc1c149afbf4c8995fb92427ae41e4649b934ca495991b7852b855" + } + }, + "userIdentity": { + "type": "IAMUser", + "principalId": "...", + "arn": "arn:aws:iam::123412341234:user/myuser", + "accountId": "123412341234", + "accessKeyId": "..." + }, + "protocolVersion": "1.00" +} \ No newline at end of file diff --git a/examples/event_sources/events/sesEvent.json b/examples/event_sources/events/sesEvent.json new file mode 100644 index 00000000000..636ecad687f --- /dev/null +++ b/examples/event_sources/events/sesEvent.json @@ -0,0 +1,101 @@ +{ + "Records": [ + { + "eventVersion": "1.0", + "ses": { + "mail": { + "commonHeaders": { + "from": [ + "Jane Doe <janedoe@example.com>" + ], + "to": [ + "johndoe@example.com" + ], + "returnPath": "janedoe@example.com", + "messageId": "<0123456789example.com>", + "date": "Wed, 7 Oct 2015 12:34:56 -0700", + "subject": "Test Subject" + }, + "source": "janedoe@example.com", + "timestamp": "1970-01-01T00:00:00.000Z", + "destination": [ + "johndoe@example.com" + ], + "headers": [ + { + "name": "Return-Path", + "value": "<janedoe@example.com>" + }, + { + "name": "Received", + "value": "from mailer.example.com (mailer.example.com [203.0.113.1]) by ..." + }, + { + "name": "DKIM-Signature", + "value": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=example; ..." + }, + { + "name": "MIME-Version", + "value": "1.0" + }, + { + "name": "From", + "value": "Jane Doe <janedoe@example.com>" + }, + { + "name": "Date", + "value": "Wed, 7 Oct 2015 12:34:56 -0700" + }, + { + "name": "Message-ID", + "value": "<0123456789example.com>" + }, + { + "name": "Subject", + "value": "Test Subject" + }, + { + "name": "To", + "value": "johndoe@example.com" + }, + { + "name": "Content-Type", + "value": "text/plain; charset=UTF-8" + } + ], + "headersTruncated": false, + "messageId": "o3vrnil0e2ic28tr" + }, + "receipt": { + "recipients": [ + "johndoe@example.com" + ], + "timestamp": "1970-01-01T00:00:00.000Z", + "spamVerdict": { + "status": "PASS" + }, + "dkimVerdict": { + "status": "PASS" + }, + "dmarcPolicy": "reject", + "processingTimeMillis": 574, + "action": { + "type": "Lambda", + "invocationType": "Event", + "functionArn": "arn:aws:lambda:us-west-2:012345678912:function:Example" + }, + "dmarcVerdict": { + "status": "PASS" + }, + "spfVerdict": { + "status": "PASS" + }, + "virusVerdict": { + "status": "PASS" + } + } + }, + "eventSource": "aws:ses" + } + ] +} diff --git a/examples/event_sources/events/snsEvent.json b/examples/event_sources/events/snsEvent.json new file mode 100644 index 00000000000..3d8a8ed443c --- /dev/null +++ b/examples/event_sources/events/snsEvent.json @@ -0,0 +1,31 @@ +{ + "Records": [ + { + "EventVersion": "1.0", + "EventSubscriptionArn": "arn:aws:sns:us-east-2:123456789012:sns-la ...", + "EventSource": "aws:sns", + "Sns": { + "SignatureVersion": "1", + "Timestamp": "2019-01-02T12:45:07.000Z", + "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", + "SigningCertUrl": "https://sns.us-east-2.amazonaws.com/SimpleNotification", + "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", + "Message": "Hello from SNS!", + "MessageAttributes": { + "Test": { + "Type": "String", + "Value": "TestString" + }, + "TestBinary": { + "Type": "Binary", + "Value": "TestBinary" + } + }, + "Type": "Notification", + "UnsubscribeUrl": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe", + "TopicArn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", + "Subject": "TestInvoke" + } + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/events/sqsEvent.json b/examples/event_sources/events/sqsEvent.json new file mode 100644 index 00000000000..4ca764cc0ba --- /dev/null +++ b/examples/event_sources/events/sqsEvent.json @@ -0,0 +1,42 @@ +{ + "Records": [ + { + "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d", + "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", + "body": "Test message.", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1545082649183", + "SenderId": "1234", + "ApproximateFirstReceiveTimestamp": "1545082649185" + }, + "messageAttributes": { + "testAttr": { + "stringValue": "100", + "binaryValue": "base64Str", + "dataType": "Number" + } + }, + "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "awsRegion": "us-east-2" + }, + { + "messageId": "2e1424d4-f796-459a-8184-9c92662be6da", + "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...", + "body": "{\"message\": \"foo1\"}", + "attributes": { + "ApproximateReceiveCount": "1", + "SentTimestamp": "1545082650636", + "SenderId": "1234", + "ApproximateFirstReceiveTimestamp": "1545082650649" + }, + "messageAttributes": {}, + "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", + "eventSource": "aws:sqs", + "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", + "awsRegion": "us-east-2" + } + ] +} \ No newline at end of file diff --git a/examples/event_sources/src/lambdaFunctionUrl.py b/examples/event_sources/src/lambdaFunctionUrl.py new file mode 100644 index 00000000000..f518d825680 --- /dev/null +++ b/examples/event_sources/src/lambdaFunctionUrl.py @@ -0,0 +1,7 @@ +from aws_lambda_powertools.utilities.data_classes import LambdaFunctionUrlEvent, event_source + + +@event_source(data_class=LambdaFunctionUrlEvent) +def lambda_handler(event: LambdaFunctionUrlEvent, context): + if event.request_context.http.method == "GET": + return {"statusCode": 200, "body": "Hello World!"} diff --git a/examples/event_sources/src/rabbit_mq_example.py b/examples/event_sources/src/rabbit_mq_example.py new file mode 100644 index 00000000000..998f012fdba --- /dev/null +++ b/examples/event_sources/src/rabbit_mq_example.py @@ -0,0 +1,21 @@ +from typing import Dict + +from aws_lambda_powertools import Logger +from aws_lambda_powertools.utilities.data_classes import event_source +from aws_lambda_powertools.utilities.data_classes.rabbit_mq_event import RabbitMQEvent + +logger = Logger() + + +@event_source(data_class=RabbitMQEvent) +def lambda_handler(event: RabbitMQEvent, context): + for queue_name, messages in event.rmq_messages_by_queue.items(): + logger.debug(f"Messages for queue: {queue_name}") + for message in messages: + logger.debug(f"MessageID: {message.basic_properties.message_id}") + data: Dict = message.json_data + logger.debug(f"Process json in base64 encoded data str {data}") + return { + "queue_name": queue_name, + "message_id": message.basic_properties.message_id, + } diff --git a/examples/event_sources/src/s3Event.py b/examples/event_sources/src/s3Event.py new file mode 100644 index 00000000000..2307bdfc5e0 --- /dev/null +++ b/examples/event_sources/src/s3Event.py @@ -0,0 +1,18 @@ +from urllib.parse import unquote_plus + +from aws_lambda_powertools.utilities.data_classes import S3Event, event_source + + +@event_source(data_class=S3Event) +def lambda_handler(event: S3Event, context): + bucket_name = event.bucket_name + + # Multiple records can be delivered in a single event + for record in event.records: + object_key = unquote_plus(record.s3.get_object.key) + object_etag = record.s3.get_object.etag + return { + "bucket": bucket_name, + "object_key": object_key, + "object_etag": object_etag, + } diff --git a/examples/event_sources/src/s3_event_bridge.py b/examples/event_sources/src/s3_event_bridge.py new file mode 100644 index 00000000000..425c144bfd8 --- /dev/null +++ b/examples/event_sources/src/s3_event_bridge.py @@ -0,0 +1,13 @@ +from aws_lambda_powertools.utilities.data_classes import S3EventBridgeNotificationEvent, event_source + + +@event_source(data_class=S3EventBridgeNotificationEvent) +def lambda_handler(event: S3EventBridgeNotificationEvent, context): + bucket_name = event.detail.bucket.name + file_key = event.detail.object.key + if event.detail_type == "Object Created": + print(f"Object {file_key} created in bucket {bucket_name}") + return { + "bucket": bucket_name, + "file_key": file_key, + } diff --git a/examples/event_sources/src/s3_object_lambda.py b/examples/event_sources/src/s3_object_lambda.py new file mode 100644 index 00000000000..11e20287191 --- /dev/null +++ b/examples/event_sources/src/s3_object_lambda.py @@ -0,0 +1,31 @@ +import boto3 +import requests + +from aws_lambda_powertools import Logger +from aws_lambda_powertools.logging.correlation_paths import S3_OBJECT_LAMBDA +from aws_lambda_powertools.utilities.data_classes.s3_object_event import S3ObjectLambdaEvent + +logger = Logger() +session = boto3.session.Session() +s3 = session.client("s3") + + +@logger.inject_lambda_context(correlation_id_path=S3_OBJECT_LAMBDA, log_event=True) +def lambda_handler(event, context): + event = S3ObjectLambdaEvent(event) + + # Get object from S3 + response = requests.get(event.input_s3_url) + original_object = response.content.decode("utf-8") + + # Make changes to the object about to be returned + transformed_object = original_object.upper() + + # Write object back to S3 Object Lambda + s3.write_get_object_response( + Body=transformed_object, + RequestRoute=event.request_route, + RequestToken=event.request_token, + ) + + return {"status_code": 200} diff --git a/examples/event_sources/src/ses_event.py b/examples/event_sources/src/ses_event.py new file mode 100644 index 00000000000..690bfd2f7bc --- /dev/null +++ b/examples/event_sources/src/ses_event.py @@ -0,0 +1,13 @@ +from aws_lambda_powertools.utilities.data_classes import SESEvent, event_source + + +@event_source(data_class=SESEvent) +def lambda_handler(event: SESEvent, context): + # Multiple records can be delivered in a single event + for record in event.records: + mail = record.ses.mail + common_headers = mail.common_headers + return { + "mail": mail, + "common_headers": common_headers, + } diff --git a/examples/event_sources/src/sns_event.py b/examples/event_sources/src/sns_event.py new file mode 100644 index 00000000000..a45e02b1e24 --- /dev/null +++ b/examples/event_sources/src/sns_event.py @@ -0,0 +1,13 @@ +from aws_lambda_powertools.utilities.data_classes import SNSEvent, event_source + + +@event_source(data_class=SNSEvent) +def lambda_handler(event: SNSEvent, context): + # Multiple records can be delivered in a single event + for record in event.records: + message = record.sns.message + subject = record.sns.subject + return { + "message": message, + "subject": subject, + } diff --git a/examples/event_sources/src/sqs_event.py b/examples/event_sources/src/sqs_event.py new file mode 100644 index 00000000000..b76b1bfd360 --- /dev/null +++ b/examples/event_sources/src/sqs_event.py @@ -0,0 +1,13 @@ +from aws_lambda_powertools.utilities.data_classes import SQSEvent, event_source + + +@event_source(data_class=SQSEvent) +def lambda_handler(event: SQSEvent, context): + # Multiple records can be delivered in a single event + for record in event.records: + message = record.body + message_id = record.message_id + return { + "message": message, + "message_id": message_id, + } From 92363ac8b2d61d48182fa7875b55c58546ddabc4 Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Fri, 24 Jan 2025 17:06:34 -0300 Subject: [PATCH 6/7] fix mypy and use events from tests --- docs/utilities/data_classes.md | 76 ++++++------- examples/event_sources/events/albEvent.json | 28 ----- .../apiGatewayAuthorizerRequestEvent.json | 29 ----- .../apiGatewayAuthorizerTokenEvent.json | 5 - .../events/apiGatewayAuthorizerV2Event.json | 52 --------- .../events/apiGatewayProxyV2Event.json | 69 ------------ .../events/appSyncAuthorizerEvent.json | 13 --- .../events/appSyncResolverEvent.json | 71 ------------ .../events/awsConfigRuleScheduled.json | 13 --- .../aws_config_rule_scheduled.json | 0 .../events/bedrockAgentEvent.json | 16 --- .../cloudWatchAlarmEventSingleMetric.json | 59 ---------- .../events/cloudWatchDashboardEvent.json | 38 ------- .../events/cloudWatchLogEvent.json | 5 - .../cloudformationCustomResourceCreate.json | 13 --- .../events/codeDeployLifecycleHookEvent.json | 4 - .../events/codePipelineEvent.json | 34 ------ .../cognitoCreateAuthChallengeEvent.json | 29 ----- .../cognitoDefineAuthChallengeEvent.json | 32 ------ .../events/cognitoPostConfirmationEvent.json | 18 ---- ...gnitoVerifyAuthChallengeResponseEvent.json | 28 ----- .../events/connectContactFlowEventAll.json | 41 ------- .../{src => events}/debugging_event.json | 0 .../{src => events}/debugging_output.json | 0 .../events/dynamoStreamEvent.json | 65 ----------- .../events/eventBridgeEvent.json | 17 --- .../event_sources/events/kafkaEventMsk.json | 35 ------ .../events/kinesisFirehoseKinesisEvent.json | 32 ------ .../kinesisStreamCloudWatchLogsEvent.json | 36 ------- .../events/kinesisStreamEvent.json | 36 ------- .../events/lambdaFunctionUrlEvent.json | 47 -------- .../event_sources/events/rabbitMQEvent.json | 51 --------- .../events/s3BatchOperationEventSchemaV2.json | 19 ---- examples/event_sources/events/s3Event.json | 38 ------- ...tBridgeNotificationObjectCreatedEvent.json | 28 ----- examples/event_sources/events/sesEvent.json | 101 ------------------ examples/event_sources/events/snsEvent.json | 31 ------ examples/event_sources/events/sqsEvent.json | 42 -------- .../{src => events}/vpc_lattice_payload.json | 0 .../vpc_lattice_v2_payload.json | 0 .../src/aws_config_rule_item_changed.json | 13 --- .../src/aws_config_rule_oversized.json | 12 --- .../event_sources/src/cloudWatchDashboard.py | 15 ++- .../src/codedeploy_lifecycle_hook.py | 2 +- .../event_sources/src/cognito_define_auth.py | 41 +++---- .../src/dynamodb_multiple_records.py | 9 +- examples/event_sources/src/kafka_event.py | 2 +- examples/event_sources/src/kinesis_streams.py | 15 +-- .../src/secrets_manager_event.json | 5 - 49 files changed, 87 insertions(+), 1278 deletions(-) delete mode 100644 examples/event_sources/events/albEvent.json delete mode 100644 examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json delete mode 100644 examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json delete mode 100644 examples/event_sources/events/apiGatewayAuthorizerV2Event.json delete mode 100644 examples/event_sources/events/apiGatewayProxyV2Event.json delete mode 100644 examples/event_sources/events/appSyncAuthorizerEvent.json delete mode 100644 examples/event_sources/events/appSyncResolverEvent.json delete mode 100644 examples/event_sources/events/awsConfigRuleScheduled.json rename examples/event_sources/{src => events}/aws_config_rule_scheduled.json (100%) delete mode 100644 examples/event_sources/events/bedrockAgentEvent.json delete mode 100644 examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json delete mode 100644 examples/event_sources/events/cloudWatchDashboardEvent.json delete mode 100644 examples/event_sources/events/cloudWatchLogEvent.json delete mode 100644 examples/event_sources/events/cloudformationCustomResourceCreate.json delete mode 100644 examples/event_sources/events/codeDeployLifecycleHookEvent.json delete mode 100644 examples/event_sources/events/codePipelineEvent.json delete mode 100644 examples/event_sources/events/cognitoCreateAuthChallengeEvent.json delete mode 100644 examples/event_sources/events/cognitoDefineAuthChallengeEvent.json delete mode 100644 examples/event_sources/events/cognitoPostConfirmationEvent.json delete mode 100644 examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json delete mode 100644 examples/event_sources/events/connectContactFlowEventAll.json rename examples/event_sources/{src => events}/debugging_event.json (100%) rename examples/event_sources/{src => events}/debugging_output.json (100%) delete mode 100644 examples/event_sources/events/dynamoStreamEvent.json delete mode 100644 examples/event_sources/events/eventBridgeEvent.json delete mode 100644 examples/event_sources/events/kafkaEventMsk.json delete mode 100644 examples/event_sources/events/kinesisFirehoseKinesisEvent.json delete mode 100644 examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json delete mode 100644 examples/event_sources/events/kinesisStreamEvent.json delete mode 100644 examples/event_sources/events/lambdaFunctionUrlEvent.json delete mode 100644 examples/event_sources/events/rabbitMQEvent.json delete mode 100644 examples/event_sources/events/s3BatchOperationEventSchemaV2.json delete mode 100644 examples/event_sources/events/s3Event.json delete mode 100644 examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json delete mode 100644 examples/event_sources/events/sesEvent.json delete mode 100644 examples/event_sources/events/snsEvent.json delete mode 100644 examples/event_sources/events/sqsEvent.json rename examples/event_sources/{src => events}/vpc_lattice_payload.json (100%) rename examples/event_sources/{src => events}/vpc_lattice_v2_payload.json (100%) delete mode 100644 examples/event_sources/src/aws_config_rule_item_changed.json delete mode 100644 examples/event_sources/src/aws_config_rule_oversized.json delete mode 100644 examples/event_sources/src/secrets_manager_event.json diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index b354408d981..6095c83c47d 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -120,7 +120,7 @@ for more details. === "Active MQ Example Event" ```json hl_lines="6 9 18 21" - --8<-- "examples/event_sources/events/active_mq_event_example.json" + --8<-- "tests/events/activeMQEvent.json" ``` ### API Gateway Authorizer @@ -138,7 +138,7 @@ Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayA === "API Gateway Authorizer Request Example Event" ```json hl_lines="3 11" - --8<-- "examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json" + --8<-- "tests/events/apiGatewayAuthorizerRequestEvent.json" ``` === "app_token.py" @@ -150,7 +150,7 @@ Use **`APIGatewayAuthorizerRequestEvent`** for type `REQUEST` and **`APIGatewayA === "API Gateway Authorizer Token Example Event" ```json hl_lines="2 3" - --8<-- "examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json" + --8<-- "tests/events/apiGatewayAuthorizerTokenEvent.json" ``` ### API Gateway Authorizer V2 @@ -167,7 +167,7 @@ See also [this blog post](https://aws.amazon.com/blogs/compute/introducing-iam-a === "API Gateway Authorizer V2 Example Event" ```json - --8<-- "examples/event_sources/events/apiGatewayAuthorizerV2Event.json" + --8<-- "tests/events/apiGatewayAuthorizerV2Event.json" ``` ### API Gateway Proxy @@ -199,7 +199,7 @@ It is used for HTTP API using v2 proxy event. === "API Gateway Proxy V2 Example Event" ```json - --8<-- "examples/event_sources/events/apiGatewayProxyV2Event.json" + --8<-- "tests/events/apiGatewayProxyV2Event.json" ``` ### Application Load Balancer @@ -215,7 +215,7 @@ Is it used for [Application load balancer](https://docs.aws.amazon.com/elasticlo === "Application Load Balancer Example Event" ```json hl_lines="7 8" - --8<-- "examples/event_sources/events/albEvent.json" + --8<-- "tests/events/albEvent.json" ``` ### AppSync Authorizer @@ -233,7 +233,7 @@ or read the Amplify documentation on using [AWS Lambda for authorization](https: === "AppSync Authorizer Example Event" ```json - --8<-- "examples/event_sources/events/appSyncAuthorizerEvent.json" + --8<-- "tests/events/appSyncAuthorizerEvent.json" ``` ### AppSync Resolver @@ -252,7 +252,7 @@ The example serves as an AppSync resolver for the `locations` field of the `Merc === "AppSync Resolver Example Event" ```json - --8<-- "examples/event_sources/events/appSyncResolverEvent.json" + --8<-- "tests/events/appSyncResolverEvent.json" ``` ### AWS Config Rule @@ -266,7 +266,7 @@ The example utilizes AWSConfigRuleEvent to parse the incoming event. The functio === "ScheduledNotification Example Event" ```json - --8<-- "examples/event_sources/src/aws_config_rule_scheduled.json" + --8<-- "tests/events/awsConfigRuleScheduled.json" ``` ### Bedrock Agent @@ -281,7 +281,7 @@ The example handles [Bedrock Agent event](https://aws.amazon.com/bedrock/agents/ === "Bedrock Agent Example Event" ```json - --8<-- "examples/event_sources/events/bedrockAgentEvent.json" + --8<-- "tests/events/bedrockAgentEvent.json" ``` ### CloudFormation Custom Resource @@ -296,7 +296,7 @@ The example focuses on the `Create` request type, generating a unique physical r === "CloudFormation Custom Resource Example Event" ```json - --8<-- "examples/event_sources/events/cloudformationCustomResourceCreate.json" + --8<-- "tests/events/cloudformationCustomResourceCreate.json" ``` ### CloudWatch Dashboard Custom Widget @@ -311,7 +311,7 @@ Thie example for `CloudWatchDashboardCustomWidgetEvent` logs the dashboard name, === "CloudWatch Dashboard Example Event" ```json - --8<-- "examples/event_sources/events/cloudWatchDashboardEvent.json" + --8<-- "tests/events/cloudWatchDashboardEvent.json" ``` ### CloudWatch Alarm State Change Action @@ -327,7 +327,7 @@ You can use the `CloudWathAlarmEvent` data class to access the fields containing === "CloudWatch Alarm Example Event" ```json - --8<-- "examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json" + --8<-- "tests/events/cloudWatchAlarmEventSingleMetric.json" ``` ### CloudWatch Logs @@ -343,7 +343,7 @@ decompress and parse json data from the event. === "CloudWatch Logs Example Event" ```json - --8<-- "examples/event_sources/events/cloudWatchLogEvent.json" + --8<-- "tests/events/cloudWatchLogEvent.json" ``` #### Kinesis integration @@ -358,7 +358,7 @@ decompress and parse json data from the event. === "Kinesis Stream CloudWatch Logs Example Event" ```json - --8<-- "examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json" + --8<-- "tests/events/kinesisStreamCloudWatchLogsEvent.json" ``` Alternatively, you can use `extract_cloudwatch_logs_from_record` to seamless integrate with the [Batch utility](./batch.md){target="_blank"} for more robust log processing. @@ -371,7 +371,7 @@ Alternatively, you can use `extract_cloudwatch_logs_from_record` to seamless int === "Kinesis Stream CloudWatch Logs Example Event" ```json - --8<-- "examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json" + --8<-- "tests/events/kinesisStreamCloudWatchLogsEvent.json" ``` ### CodeDeploy LifeCycle Hook @@ -388,7 +388,7 @@ to test applications at different stages of deployment. === "CodeDeploy LifeCycle Hook Example Event" ```json - --8<-- "examples/event_sources/events/codeDeployLifecycleHookEvent.json" + --8<-- "tests/events/codeDeployLifecycleHookEvent.json" ``` ### CodePipeline Job @@ -401,7 +401,7 @@ Data classes and utility functions to help create continuous delivery pipelines ``` === "CodePipeline Job Example Event" ```json hl_lines="3 19" - --8<-- "examples/event_sources/events/codePipelineEvent.json" + --8<-- "tests/events/codePipelineEvent.json" ``` ### Cognito User Pool @@ -437,7 +437,7 @@ Some examples for the Cognito User Pools Lambda triggers sources: === "Cognito Post Confirmation Example Event" ```json hl_lines="12-14" - --8<-- "examples/event_sources/events/cognitoPostConfirmationEvent.json" + --8<-- "tests/events/cognitoPostConfirmationEvent.json" ``` #### Define Auth Challenge Example @@ -455,7 +455,7 @@ This example is based on the AWS Cognito docs for [Define Auth Challenge Lambda === "Cognito Define Auth Challengen Example Event" ```json - --8<-- "examples/event_sources/events/cognitoDefineAuthChallengeEvent.json" + --8<-- "tests/events/cognitoDefineAuthChallengeEvent.json" ``` #### Create Auth Challenge Example @@ -468,9 +468,9 @@ This example is based on the AWS Cognito docs for [Create Auth Challenge Lambda --8<-- "examples/event_sources/src/cognito_create_auth.py" ``` -=== "Cognito Define Auth Challengen Example Event" +=== "Cognito Create Auth Challengen Example Event" ```json - --8<-- "examples/event_sources/events/cognitoCreateAuthChallengeEvent.json" + --8<-- "tests/events/cognitoCreateAuthChallengeEvent.json" ``` #### Verify Auth Challenge Response Example @@ -485,7 +485,7 @@ This example is based on the AWS Cognito docs for [Verify Auth Challenge Respons === "Cognito Verify Auth Challengen Example Event" ```json - --8<-- "examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json" + --8<-- "tests/events/cognitoVerifyAuthChallengeResponseEvent.json" ``` ### Connect Contact Flow @@ -500,7 +500,7 @@ The example integrates with [Amazon Connect](https://docs.aws.amazon.com/connect === "Connect Contact Flow Example Event" ```json - --8<-- "examples/event_sources/events/connectContactFlowEventAll.json" + --8<-- "tests/events/connectContactFlowEventAll.json" ``` ### DynamoDB Streams @@ -519,7 +519,7 @@ The class automatically deserializes DynamoDB types into their equivalent Python ``` === "DynamoDB Streams Example Event" ```json - --8<-- "examples/event_sources/events/dynamoStreamEvent.json" + --8<-- "tests/events/dynamoStreamEvent.json" ``` ### EventBridge @@ -534,7 +534,7 @@ The class automatically deserializes DynamoDB types into their equivalent Python === "EventBridge Example Event" ```json - --8<-- "examples/event_sources/events/eventBridgeEvent.json" + --8<-- "tests/events/eventBridgeEvent.json" ``` ### Kafka @@ -549,7 +549,7 @@ This example is based on the AWS docs for [Amazon MSK](https://docs.aws.amazon.c === "Kafka Example Event" ```json - --8<-- "examples/event_sources/events/kafkaEventMsk.json" + --8<-- "tests/events/kafkaEventMsk.json" ``` ### Kinesis streams @@ -565,7 +565,7 @@ or plain text, depending on the original payload. === "Kinesis streams Example Event" ```json - --8<-- "examples/event_sources/events/kinesisStreamEvent.json" + --8<-- "tests/events/kinesisStreamEvent.json" ``` ### Kinesis Firehose delivery stream @@ -605,7 +605,7 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along === "kinesisFirehoseEvent.json" ```json - --8<-- "examples/event_sources/events/kinesisFirehoseKinesisEvent.json" + --8<-- "tests/events/kinesisFirehoseKinesisEvent.json" ``` ### Lambda Function URL @@ -620,7 +620,7 @@ To do that, you can use `KinesisFirehoseDataTransformationResponse` class along === "Lambda Function URL Example Event" ```json - --8<-- "examples/event_sources/events/lambdaFunctionUrlEvent.json" + --8<-- "tests/events/lambdaFunctionUrlEvent.json" ``` ### Rabbit MQ @@ -637,7 +637,7 @@ for more details. === "Rabbit MQ Example Event" ```json - --8<-- "examples/event_sources/events/rabbitMQEvent.json" + --8<-- "tests/events/rabbitMQEvent.json" ``` ### S3 @@ -652,7 +652,7 @@ Integration with Amazon S3 enables automatic, serverless processing of object-le === "S3 Example Event" ```json - --8<-- "examples/event_sources/events/s3Event.json" + --8<-- "tests/events/s3Event.json" ``` ### S3 Batch Operations @@ -668,7 +668,7 @@ This example is based on the AWS S3 Batch Operations documentation [Example Lamb === "S3 Batch Operations Example Event" ```json - --8<-- "examples/event_sources/events/s3BatchOperationEventSchemaV2.json" + --8<-- "tests/events/s3BatchOperationEventSchemaV2.json" ``` ### S3 Object Lambda @@ -700,7 +700,7 @@ This example is based on the AWS Blog post [Introducing Amazon S3 Object Lambda === "S3 EventBridge Notification Example Event" ```json - --8<-- "examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json" + --8<-- "tests/events/s3EventBridgeNotificationObjectCreatedEvent.json" ``` ### Secrets Manager @@ -782,7 +782,7 @@ You can register your Lambda functions as targets within an Amazon VPC Lattice s === "Lattice Example Event" ```json - --8<-- "examples/event_sources/src/vpc_lattice_v2_payload.json" + --8<-- "examples/event_sources/events/vpc_lattice_v2_payload.json" ``` ### VPC Lattice V1 @@ -800,7 +800,7 @@ You can register your Lambda functions as targets within an Amazon VPC Lattice s === "Lattice Example Event" ```json - --8<-- "examples/event_sources/src/vpc_lattice_payload.json" + --8<-- "examples/event_sources/events/vpc_lattice_payload.json" ``` ## Advanced @@ -820,9 +820,9 @@ However, certain events may contain sensitive fields such as `secret_access_key` === "debugging_event.json" ```json hl_lines="28 29" - --8<-- "examples/event_sources/src/debugging_event.json" + --8<-- "examples/event_sources/events/debugging_event.json" ``` === "debugging_output.json" ```json hl_lines="16 17 18" - --8<-- "examples/event_sources/src/debugging_output.json" + --8<-- "examples/event_sources/events/debugging_output.json" ``` diff --git a/examples/event_sources/events/albEvent.json b/examples/event_sources/events/albEvent.json deleted file mode 100644 index 9328cb39e12..00000000000 --- a/examples/event_sources/events/albEvent.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "requestContext": { - "elb": { - "targetGroupArn": "arn:aws:elasticloadbalancing:us-east-2:123456789012:targetgroup/lambda-279XGJDqGZ5rsrHC2Fjr/49e9d65c45c6791a" - } - }, - "httpMethod": "GET", - "path": "/lambda", - "queryStringParameters": { - "query": "1234ABCD" - }, - "headers": { - "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8", - "accept-encoding": "gzip", - "accept-language": "en-US,en;q=0.9", - "connection": "keep-alive", - "host": "lambda-alb-123578498.us-east-2.elb.amazonaws.com", - "upgrade-insecure-requests": "1", - "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", - "x-amzn-trace-id": "Root=1-5c536348-3d683b8b04734faae651f476", - "x-forwarded-for": "72.12.164.125", - "x-forwarded-port": "80", - "x-forwarded-proto": "http", - "x-imforwards": "20" - }, - "body": "Test", - "isBase64Encoded": false -} diff --git a/examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json b/examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json deleted file mode 100644 index 920258aa396..00000000000 --- a/examples/event_sources/events/apiGatewayAuthorizerRequestEvent.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "version": "1.0", - "type": "REQUEST", - "methodArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", - "identitySource": "user1,123", - "resource": "/request", - "path": "/request", - "httpMethod": "GET", - "headers": { - "X-AMZ-Date": "20170718T062915Z", - "HeaderAuth1": "headerValue1" - }, - "queryStringParameters": { - "QueryString1": "queryValue1" - }, - "stageVariables": { - "StageVar1": "stageValue1" - }, - "requestContext": { - "accountId": "123456789012", - "apiId": "abcdef123", - "httpMethod": "GET", - "identity": { - "sourceIp": "test-invoke-source-ip" - }, - "path": "/request", - "stage": "test" - } -} \ No newline at end of file diff --git a/examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json b/examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json deleted file mode 100644 index f30f360f6d8..00000000000 --- a/examples/event_sources/events/apiGatewayAuthorizerTokenEvent.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "TOKEN", - "authorizationToken": "allow", - "methodArn": "arn:aws:execute-api:us-west-2:123456789012:ymy8tbxw7b/*/GET/" -} diff --git a/examples/event_sources/events/apiGatewayAuthorizerV2Event.json b/examples/event_sources/events/apiGatewayAuthorizerV2Event.json deleted file mode 100644 index 83c3c9d8d61..00000000000 --- a/examples/event_sources/events/apiGatewayAuthorizerV2Event.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "version": "2.0", - "type": "REQUEST", - "routeArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", - "identitySource": ["user1", "123"], - "routeKey": "GET /merchants", - "rawPath": "/merchants", - "rawQueryString": "parameter1=value1¶meter1=value2¶meter2=value", - "cookies": ["cookie1", "cookie2"], - "headers": { - "x-amzn-trace-id": "Root=1-611cc4a7-0746ebee281cfd967db97b64", - "Header1": "value1", - "Header2": "value2", - "Authorization": "value" - }, - "queryStringParameters": { - "parameter1": "value1,value2", - "parameter2": "value" - }, - "requestContext": { - "accountId": "123456789012", - "apiId": "api-id", - "authentication": { - "clientCert": { - "clientCertPem": "CERT_CONTENT", - "subjectDN": "www.example.com", - "issuerDN": "Example issuer", - "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", - "validity": { - "notBefore": "May 28 12:30:02 2019 GMT", - "notAfter": "Aug 5 09:36:04 2021 GMT" - } - } - }, - "domainName": "id.execute-api.us-east-1.amazonaws.com", - "domainPrefix": "id", - "http": { - "method": "POST", - "path": "/merchants", - "protocol": "HTTP/1.1", - "sourceIp": "10.10.10.10", - "userAgent": "agent" - }, - "requestId": "id", - "routeKey": "GET /merchants", - "stage": "$default", - "time": "12/Mar/2020:19:03:58 +0000", - "timeEpoch": 1583348638390 - }, - "pathParameters": { "parameter1": "value1" }, - "stageVariables": { "stageVariable1": "value1", "stageVariable2": "value2" } -} diff --git a/examples/event_sources/events/apiGatewayProxyV2Event.json b/examples/event_sources/events/apiGatewayProxyV2Event.json deleted file mode 100644 index 9de632b8e3d..00000000000 --- a/examples/event_sources/events/apiGatewayProxyV2Event.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "version": "2.0", - "routeKey": "$default", - "rawPath": "/my/path", - "rawQueryString": "parameter1=value1¶meter1=value2¶meter2=value", - "cookies": [ - "cookie1", - "cookie2" - ], - "headers": { - "Header1": "value1", - "Header2": "value1,value2" - }, - "queryStringParameters": { - "parameter1": "value1,value2", - "parameter2": "value" - }, - "requestContext": { - "accountId": "123456789012", - "apiId": "api-id", - "authentication": { - "clientCert": { - "clientCertPem": "CERT_CONTENT", - "subjectDN": "www.example.com", - "issuerDN": "Example issuer", - "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", - "validity": { - "notBefore": "May 28 12:30:02 2019 GMT", - "notAfter": "Aug 5 09:36:04 2021 GMT" - } - } - }, - "authorizer": { - "jwt": { - "claims": { - "claim1": "value1", - "claim2": "value2" - }, - "scopes": [ - "scope1", - "scope2" - ] - } - }, - "domainName": "id.execute-api.us-east-1.amazonaws.com", - "domainPrefix": "id", - "http": { - "method": "POST", - "path": "/my/path", - "protocol": "HTTP/1.1", - "sourceIp": "192.168.0.1/32", - "userAgent": "agent" - }, - "requestId": "id", - "routeKey": "$default", - "stage": "$default", - "time": "12/Mar/2020:19:03:58 +0000", - "timeEpoch": 1583348638390 - }, - "body": "{\"message\": \"hello world\", \"username\": \"tom\"}", - "pathParameters": { - "parameter1": "value1" - }, - "isBase64Encoded": false, - "stageVariables": { - "stageVariable1": "value1", - "stageVariable2": "value2" - } -} diff --git a/examples/event_sources/events/appSyncAuthorizerEvent.json b/examples/event_sources/events/appSyncAuthorizerEvent.json deleted file mode 100644 index 8820f2ab00d..00000000000 --- a/examples/event_sources/events/appSyncAuthorizerEvent.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "authorizationToken": "123", - "requestContext": { - "apiId": "1234", - "accountId": "11111111", - "requestId": "1111", - "queryString": "mutation MyNewTask($desc: String!) {\n createTask(description: $desc, owner: \"ccc\", taskStatus: \"cc\", title: \"ccc\") {\n id\n }\n}\n", - "operationName": "MyNewTask", - "variables": { - "desc": "Foo" - } - } -} \ No newline at end of file diff --git a/examples/event_sources/events/appSyncResolverEvent.json b/examples/event_sources/events/appSyncResolverEvent.json deleted file mode 100644 index 84ac71951c6..00000000000 --- a/examples/event_sources/events/appSyncResolverEvent.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "typeName": "Merchant", - "fieldName": "locations", - "arguments": { - "page": 2, - "size": 1, - "name": "value" - }, - "identity": { - "claims": { - "sub": "07920713-4526-4642-9c88-2953512de441", - "iss": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_POOL_ID", - "aud": "58rc9bf5kkti90ctmvioppukm9", - "event_id": "7f4c9383-abf6-48b7-b821-91643968b755", - "token_use": "id", - "auth_time": 1615366261, - "name": "Michael Brewer", - "exp": 1615369861, - "iat": 1615366261 - }, - "defaultAuthStrategy": "ALLOW", - "groups": null, - "issuer": "https://cognito-idp.us-east-1.amazonaws.com/us-east-1_POOL_ID", - "sourceIp": [ - "11.215.2.22" - ], - "sub": "07920713-4526-4642-9c88-2953512de441", - "username": "mike" - }, - "source": { - "name": "Value", - "nested": { - "name": "value", - "list": [] - } - }, - "request": { - "headers": { - "x-forwarded-for": "11.215.2.22, 64.44.173.11", - "cloudfront-viewer-country": "US", - "cloudfront-is-tablet-viewer": "false", - "via": "2.0 SOMETHING.cloudfront.net (CloudFront)", - "cloudfront-forwarded-proto": "https", - "origin": "https://console.aws.amazon.com", - "content-length": "156", - "accept-language": "en-US,en;q=0.9", - "host": "SOMETHING.appsync-api.us-east-1.amazonaws.com", - "x-forwarded-proto": "https", - "sec-gpc": "1", - "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) etc.", - "accept": "*/*", - "cloudfront-is-mobile-viewer": "false", - "cloudfront-is-smarttv-viewer": "false", - "accept-encoding": "gzip, deflate, br", - "referer": "https://console.aws.amazon.com/", - "content-type": "application/json", - "sec-fetch-mode": "cors", - "x-amz-cf-id": "Fo5VIuvP6V6anIEt62WzFDCK45mzM4yEdpt5BYxOl9OFqafd-WR0cA==", - "x-amzn-trace-id": "Root=1-60488877-0b0c4e6727ab2a1c545babd0", - "authorization": "AUTH-HEADER", - "sec-fetch-dest": "empty", - "x-amz-user-agent": "AWS-Console-AppSync/", - "cloudfront-is-desktop-viewer": "true", - "sec-fetch-site": "cross-site", - "x-forwarded-port": "443" - } - }, - "prev": { - "result": {} - } -} diff --git a/examples/event_sources/events/awsConfigRuleScheduled.json b/examples/event_sources/events/awsConfigRuleScheduled.json deleted file mode 100644 index 02ce2a0700c..00000000000 --- a/examples/event_sources/events/awsConfigRuleScheduled.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version":"1.0", - "invokingEvent":"{\"awsAccountId\":\"0123456789012\",\"notificationCreationTime\":\"2023-04-27T13:26:17.741Z\",\"messageType\":\"ScheduledNotification\",\"recordVersion\":\"1.0\"}", - "ruleParameters":"{\"test\":\"x\"}", - "resultToken":"eyJlbmNyeXB0ZWREYXRhIjpbLTQyLDEyNiw1MiwtMzcsLTI5LDExNCwxMjYsLTk3LDcxLDIyLC0xMTAsMTEyLC0zMSwtOTMsLTQ5LC0xMDEsODIsMyw1NCw0OSwzLC02OSwtNzEsLTcyLDYyLDgxLC03MiwtODEsNTAsMzUsLTUwLC03NSwtMTE4LC0xMTgsNzcsMTIsLTEsMTQsMTIwLC03MCwxMTAsLTMsNTAsLTYwLDEwNSwtNTcsNDUsMTAyLC0xMDksLTYxLC0xMDEsLTYxLDQsNDcsLTg0LC0yNSwxMTIsNTQsLTcxLC0xMDksNDUsMTksMTIzLC0yNiwxMiwtOTYsLTczLDU0LC0xMDksOTIsNDgsLTU5LC04MywtMzIsODIsLTM2LC05MCwxOSw5OCw3Nyw3OCw0MCw4MCw3OCwtMTA1LDg3LC0xMTMsLTExNiwtNzIsMzAsLTY4LC00MCwtODksMTA5LC0xMDgsLTEyOCwyMiw3Miw3NywtMjEsNzYsODksOTQsLTU5LDgxLC0xMjEsLTEwNywtNjcsNjMsLTcsODIsLTg5LC00NiwtMzQsLTkyLDEyMiwtOTAsMTcsLTEyMywyMCwtODUsLTU5LC03MCw4MSwyNyw2Miw3NCwtODAsODAsMzcsNDAsMTE2LDkxLC0yNCw1MSwtNDEsLTc5LDI4LDEyMCw1MywtMTIyLC04MywxMjYsLTc4LDI1LC05OCwtMzYsMTMsMzIsODYsLTI1LDQ4LDMsLTEwMiwtMTYsMjQsLTMsODUsNDQsLTI4LDE0LDIyLDI3LC0xMjIsMTE4LDEwMSw3Myw1LDE4LDU4LC02NCwyMywtODYsLTExNCwyNCwwLDEwMCwyLDExNywtNjIsLTExOSwtMTI4LDE4LDY1LDkwLDE0LC0xMDIsMjEsODUsMTAwLDExNyw1NSwyOSwxMjcsNTQsNzcsNzIsNzQsMzIsNzgsMywtMTExLDExOCwtNzAsLTg2LDEyNywtNzQsNjAsMjIsNDgsMzcsODcsMTMsMCwtMTA1LDUsLTEyMiwtNzEsLTEwMCwxMDQsLTEyNiwtMTYsNzksLTMwLDEyMCw3NywtNzYsLTQxLC0xMDksMiw5NywtMTAxLC0xLDE1LDEyMywxMTksMTA4LDkxLC0yMCwtMTI1LC05NiwyLC05MiwtMTUsLTY3LC03NiwxMjEsMTA0LDEwNSw2NCwtNjIsMTAyLDgsNCwxMjEsLTQ1LC04MCwtODEsLTgsMTE4LDQ0LC04MiwtNDEsLTg0LDczLC0zNiwxMTcsODAsLTY5LC03MywxNCwtMTgsNzIsMzEsLTUsLTExMSwtMTI3LC00MywzNCwtOCw1NywxMDMsLTQyLDE4LC0zMywxMTcsLTI2LC0xMjQsLTEyNCwxNSw4OCwyMywxNiwtNTcsNTQsLTYsLTEwMiwxMTYsLTk5LC00NSwxMDAsLTM1LDg3LDM3LDYsOTgsMiwxMTIsNjAsLTMzLDE3LDI2LDk5LC0xMDUsNDgsLTEwNCwtMTE5LDc4LDYsLTU4LDk1LDksNDEsLTE2LDk2LDQxLC0yMiw5Niw3MiwxMTYsLTk1LC0xMDUsLTM2LC0xMjMsLTU1LDkxLC00NiwtNywtOTIsMzksNDUsODQsMTYsLTEyNCwtMTIyLC02OCwxLC0yOCwxMjIsLTYwLDgyLDEwMywtNTQsLTkyLDI3LC05OSwtMTI4LDY1LDcsLTcyLC0xMjcsNjIsLTIyLDIsLTExLDE4LC04OSwtMTA2LC03NCw3MSw4NiwtMTE2LC0yNSwtMTE1LC05Niw1NywtMzQsMjIsLTEyNCwtMTI1LC00LC00MSw0MiwtNTcsLTEwMyw0NSw3OCwxNCwtMTA2LDExMSw5OCwtOTQsLTcxLDUsNzUsMTksLTEyNCwtMzAsMzQsLTUwLDc1LC04NCwtNTAsLTU2LDUxLC0xNSwtMzYsNjEsLTk0LC03OSwtNDUsMTI2LC03NywtMTA1LC0yLC05MywtNiw4LC0zLDYsLTQyLDQ2LDEyNSw1LC05OCwxMyw2NywtMTAsLTEzLC05NCwtNzgsLTEyNywxMjEsLTI2LC04LC0xMDEsLTkxLDEyMSwtNDAsLTEyNCwtNjQsODQsLTcyLDYzLDE5LC04NF0sIm1hdGVyaWFsU2V0U2VyaWFsTnVtYmVyIjoxLCJpdlBhcmFtZXRlclNwZWMiOnsiaXYiOlszLC0xMCwtODUsMTE0LC05MCwxMTUsNzcsNTUsNTQsMTUsMzgsODQsLTExNiwxNCwtNDAsMjhdfX0=", - "eventLeftScope":false, - "executionRoleArn":"arn:aws:iam::0123456789012:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig", - "configRuleArn":"arn:aws:config:us-east-1:0123456789012:config-rule/config-rule-pdmyw1", - "configRuleName":"rule-ec2-test", - "configRuleId":"config-rule-pdmyw1", - "accountId":"0123456789012", - "evaluationMode":"DETECTIVE" - } diff --git a/examples/event_sources/src/aws_config_rule_scheduled.json b/examples/event_sources/events/aws_config_rule_scheduled.json similarity index 100% rename from examples/event_sources/src/aws_config_rule_scheduled.json rename to examples/event_sources/events/aws_config_rule_scheduled.json diff --git a/examples/event_sources/events/bedrockAgentEvent.json b/examples/event_sources/events/bedrockAgentEvent.json deleted file mode 100644 index b7ad75b3c43..00000000000 --- a/examples/event_sources/events/bedrockAgentEvent.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "actionGroup": "ClaimManagementActionGroup", - "messageVersion": "1.0", - "sessionId": "12345678912345", - "sessionAttributes": {}, - "promptSessionAttributes": {}, - "inputText": "I want to claim my insurance", - "agent": { - "alias": "TSTALIASID", - "name": "test", - "version": "DRAFT", - "id": "8ZXY0W8P1H" - }, - "httpMethod": "GET", - "apiPath": "/claims" -} diff --git a/examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json b/examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json deleted file mode 100644 index fa5089cd6b5..00000000000 --- a/examples/event_sources/events/cloudWatchAlarmEventSingleMetric.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "source": "aws.cloudwatch", - "alarmArn": "arn:aws:cloudwatch:eu-west-1:912397435824:alarm:test_alarm", - "accountId": "123456789012", - "time": "2024-02-17T11:53:08.431+0000", - "region": "eu-west-1", - "alarmData": { - "alarmName": "Test alert", - "state": { - "value": "ALARM", - "reason": "Threshold Crossed: 1 out of the last 1 datapoints [1.0 (17/02/24 11:51:00)] was less than the threshold (10.0) (minimum 1 datapoint for OK -> ALARM transition).", - "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2024-02-17T11:53:08.423+0000\",\"startDate\":\"2024-02-17T11:51:00.000+0000\",\"statistic\":\"SampleCount\",\"period\":60,\"recentDatapoints\":[1.0],\"threshold\":10.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2024-02-17T11:51:00.000+0000\",\"sampleCount\":1.0,\"value\":1.0}]}", - "timestamp": "2024-02-17T11:53:08.431+0000" - }, - "previousState": { - "value": "OK", - "reason": "Threshold Crossed: 1 out of the last 1 datapoints [1.0 (17/02/24 11:50:00)] was not greater than the threshold (10.0) (minimum 1 datapoint for ALARM -> OK transition).", - "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2024-02-17T11:51:31.460+0000\",\"startDate\":\"2024-02-17T11:50:00.000+0000\",\"statistic\":\"SampleCount\",\"period\":60,\"recentDatapoints\":[1.0],\"threshold\":10.0,\"evaluatedDatapoints\":[{\"timestamp\":\"2024-02-17T11:50:00.000+0000\",\"sampleCount\":1.0,\"value\":1.0}]}", - "timestamp": "2024-02-17T11:51:31.462+0000" - }, - "configuration": { - "description": "This is description **here**", - "metrics": [ - { - "id": "e1", - "expression": "m1/m2", - "label": "Expression1", - "returnData": true - }, - { - "id": "m1", - "metricStat": { - "metric": { - "namespace": "AWS/Lambda", - "name": "Invocations", - "dimensions": {} - }, - "period": 60, - "stat": "SampleCount" - }, - "returnData": false - }, - { - "id": "m2", - "metricStat": { - "metric": { - "namespace": "AWS/Lambda", - "name": "Duration", - "dimensions": {} - }, - "period": 60, - "stat": "SampleCount" - }, - "returnData": false - } - ] - } - } -} diff --git a/examples/event_sources/events/cloudWatchDashboardEvent.json b/examples/event_sources/events/cloudWatchDashboardEvent.json deleted file mode 100644 index fd2d3be62d6..00000000000 --- a/examples/event_sources/events/cloudWatchDashboardEvent.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "original": "param-to-widget", - "widgetContext": { - "dashboardName": "Name-of-current-dashboard", - "widgetId": "widget-16", - "domain": "https://us-east-1.console.aws.amazon.com", - "accountId": "123456789123", - "locale": "en", - "timezone": { - "label": "UTC", - "offsetISO": "+00:00", - "offsetInMinutes": 0 - }, - "period": 300, - "isAutoPeriod": true, - "timeRange": { - "mode": "relative", - "start": 1627236199729, - "end": 1627322599729, - "relativeStart": 86400012, - "zoom": { - "start": 1627276030434, - "end": 1627282956521 - } - }, - "theme": "light", - "linkCharts": true, - "title": "Tweets for Amazon website problem", - "forms": { - "all": {} - }, - "params": { - "original": "param-to-widget" - }, - "width": 588, - "height": 369 - } -} diff --git a/examples/event_sources/events/cloudWatchLogEvent.json b/examples/event_sources/events/cloudWatchLogEvent.json deleted file mode 100644 index aa184c1d013..00000000000 --- a/examples/event_sources/events/cloudWatchLogEvent.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "awslogs": { - "data": "H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA==" - } -} diff --git a/examples/event_sources/events/cloudformationCustomResourceCreate.json b/examples/event_sources/events/cloudformationCustomResourceCreate.json deleted file mode 100644 index 5c32d8c7aa1..00000000000 --- a/examples/event_sources/events/cloudformationCustomResourceCreate.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "RequestType": "Create", - "ServiceToken": "arn:aws:lambda:us-east-1:xxx:function:xxxx-CrbuiltinfunctionidProvi-2vKAalSppmKe", - "ResponseURL": "https://cloudformation-custom-resource-response-useast1.s3.amazonaws.com/7F%7Cb1f50fdfc25f3b", - "StackId": "arn:aws:cloudformation:us-east-1:xxxx:stack/xxxx/271845b0-f2e8-11ed-90ac-0eeb25b8ae21", - "RequestId": "xxxxx-d2a0-4dfb-ab1f-xxxxxx", - "LogicalResourceId": "xxxxxxxxx", - "ResourceType": "Custom::MyType", - "ResourceProperties": { - "ServiceToken": "arn:aws:lambda:us-east-1:xxxxx:function:xxxxx", - "MyProps": "ss" - } -} \ No newline at end of file diff --git a/examples/event_sources/events/codeDeployLifecycleHookEvent.json b/examples/event_sources/events/codeDeployLifecycleHookEvent.json deleted file mode 100644 index 6e422a2d505..00000000000 --- a/examples/event_sources/events/codeDeployLifecycleHookEvent.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "DeploymentId": "d-ABCDEF", - "LifecycleEventHookExecutionId": "xxxxxxxxxxxxxxxxxxxxxxxx" -} diff --git a/examples/event_sources/events/codePipelineEvent.json b/examples/event_sources/events/codePipelineEvent.json deleted file mode 100644 index 25269cbb387..00000000000 --- a/examples/event_sources/events/codePipelineEvent.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "CodePipeline.job": { - "id": "11111111-abcd-1111-abcd-111111abcdef", - "accountId": "111111111111", - "data": { - "actionConfiguration": { - "configuration": { - "FunctionName": "MyLambdaFunctionForAWSCodePipeline", - "UserParameters": "some-input-such-as-a-URL" - } - }, - "inputArtifacts": [ - { - "name": "ArtifactName", - "revision": null, - "location": { - "type": "S3", - "s3Location": { - "bucketName": "the name of the bucket configured as the pipeline artifact store in Amazon S3, for example codepipeline-us-east-2-1234567890", - "objectKey": "the name of the application, for example CodePipelineDemoApplication.zip" - } - } - } - ], - "outputArtifacts": [], - "artifactCredentials": { - "accessKeyId": "", - "secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", - "sessionToken": "MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auNKyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6GuoEDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=" - }, - "continuationToken": "A continuation token if continuing job" - } - } -} \ No newline at end of file diff --git a/examples/event_sources/events/cognitoCreateAuthChallengeEvent.json b/examples/event_sources/events/cognitoCreateAuthChallengeEvent.json deleted file mode 100644 index ad018ae0829..00000000000 --- a/examples/event_sources/events/cognitoCreateAuthChallengeEvent.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "version": "1", - "region": "us-east-1", - "userPoolId": "us-east-1_example", - "userName": "UserName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "triggerSource": "CreateAuthChallenge_Authentication", - "request": { - "userAttributes": { - "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", - "email_verified": "true", - "name": "First Last", - "email": "create-auth@mail.com" - }, - "challengeName": "PASSWORD_VERIFIER", - "session" : [ - { - "challengeName": "CUSTOM_CHALLENGE", - "challengeResult": true, - "challengeMetadata": "CAPTCHA_CHALLENGE" - } - ], - "userNotFound": false - }, - "response": {} -} diff --git a/examples/event_sources/events/cognitoDefineAuthChallengeEvent.json b/examples/event_sources/events/cognitoDefineAuthChallengeEvent.json deleted file mode 100644 index 80ea5ac2d98..00000000000 --- a/examples/event_sources/events/cognitoDefineAuthChallengeEvent.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "version": "1", - "region": "us-east-1", - "userPoolId": "us-east-1_example", - "userName": "UserName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "triggerSource": "DefineAuthChallenge_Authentication", - "request": { - "userAttributes": { - "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", - "email_verified": "true", - "name": "First Last", - "email": "define-auth@mail.com" - }, - "session" : [ - { - "challengeName": "PASSWORD_VERIFIER", - "challengeResult": true - }, - { - "challengeName": "CUSTOM_CHALLENGE", - "challengeResult": true, - "challengeMetadata": "CAPTCHA_CHALLENGE" - } - ], - "userNotFound": true - }, - "response": {} -} diff --git a/examples/event_sources/events/cognitoPostConfirmationEvent.json b/examples/event_sources/events/cognitoPostConfirmationEvent.json deleted file mode 100644 index e88f98150ca..00000000000 --- a/examples/event_sources/events/cognitoPostConfirmationEvent.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "version": "string", - "triggerSource": "PostConfirmation_ConfirmSignUp", - "region": "us-east-1", - "userPoolId": "string", - "userName": "userName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "request": { - "userAttributes": { - "email": "user@example.com", - "email_verified": true - } - }, - "response": {} -} diff --git a/examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json b/examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json deleted file mode 100644 index 2ebcdb5c278..00000000000 --- a/examples/event_sources/events/cognitoVerifyAuthChallengeResponseEvent.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "version": "1", - "region": "us-east-1", - "userPoolId": "us-east-1_example", - "userName": "UserName", - "callerContext": { - "awsSdkVersion": "awsSdkVersion", - "clientId": "clientId" - }, - "triggerSource": "VerifyAuthChallengeResponse_Authentication", - "request": { - "userAttributes": { - "sub": "4A709A36-7D63-4785-829D-4198EF10EBDA", - "email_verified": "true", - "name": "First Last", - "email": "verify-auth@mail.com" - }, - "privateChallengeParameters": { - "answer": "challengeAnswer" - }, - "clientMetadata" : { - "foo": "value" - }, - "challengeAnswer": "challengeAnswer", - "userNotFound": true - }, - "response": {} -} diff --git a/examples/event_sources/events/connectContactFlowEventAll.json b/examples/event_sources/events/connectContactFlowEventAll.json deleted file mode 100644 index 5850649b6eb..00000000000 --- a/examples/event_sources/events/connectContactFlowEventAll.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "Name": "ContactFlowEvent", - "Details": { - "ContactData": { - "Attributes": { - "Language": "en-US" - }, - "Channel": "VOICE", - "ContactId": "5ca32fbd-8f92-46af-92a5-6b0f970f0efe", - "CustomerEndpoint": { - "Address": "+11234567890", - "Type": "TELEPHONE_NUMBER" - }, - "InitialContactId": "5ca32fbd-8f92-46af-92a5-6b0f970f0efe", - "InitiationMethod": "API", - "InstanceARN": "arn:aws:connect:eu-central-1:123456789012:instance/9308c2a1-9bc6-4cea-8290-6c0b4a6d38fa", - "MediaStreams": { - "Customer": { - "Audio": { - "StartFragmentNumber": "91343852333181432392682062622220590765191907586", - "StartTimestamp": "1565781909613", - "StreamARN": "arn:aws:kinesisvideo:eu-central-1:123456789012:stream/connect-contact-a3d73b84-ce0e-479a-a9dc-5637c9d30ac9/1565272947806" - } - } - }, - "PreviousContactId": "5ca32fbd-8f92-46af-92a5-6b0f970f0efe", - "Queue": { - "ARN": "arn:aws:connect:eu-central-1:123456789012:instance/9308c2a1-9bc6-4cea-8290-6c0b4a6d38fa/queue/5cba7cbf-1ecb-4b6d-b8bd-fe91079b3fc8", - "Name": "QueueOne" - }, - "SystemEndpoint": { - "Address": "+11234567890", - "Type": "TELEPHONE_NUMBER" - } - }, - "Parameters": { - "ParameterOne": "One", - "ParameterTwo": "Two" - } - } -} \ No newline at end of file diff --git a/examples/event_sources/src/debugging_event.json b/examples/event_sources/events/debugging_event.json similarity index 100% rename from examples/event_sources/src/debugging_event.json rename to examples/event_sources/events/debugging_event.json diff --git a/examples/event_sources/src/debugging_output.json b/examples/event_sources/events/debugging_output.json similarity index 100% rename from examples/event_sources/src/debugging_output.json rename to examples/event_sources/events/debugging_output.json diff --git a/examples/event_sources/events/dynamoStreamEvent.json b/examples/event_sources/events/dynamoStreamEvent.json deleted file mode 100644 index 16009a7a956..00000000000 --- a/examples/event_sources/events/dynamoStreamEvent.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "Records": [ - { - "eventID": "1", - "eventVersion": "1.0", - "dynamodb": { - "ApproximateCreationDateTime": 1693997155.0, - "Keys": { - "Id": { - "N": "101" - } - }, - "NewImage": { - "Message": { - "S": "New item!" - }, - "Id": { - "N": "101" - } - }, - "StreamViewType": "NEW_AND_OLD_IMAGES", - "SequenceNumber": "111", - "SizeBytes": 26 - }, - "awsRegion": "us-west-2", - "eventName": "INSERT", - "eventSourceARN": "eventsource_arn", - "eventSource": "aws:dynamodb" - }, - { - "eventID": "2", - "eventVersion": "1.0", - "dynamodb": { - "OldImage": { - "Message": { - "S": "New item!" - }, - "Id": { - "N": "101" - } - }, - "SequenceNumber": "222", - "Keys": { - "Id": { - "N": "101" - } - }, - "SizeBytes": 59, - "NewImage": { - "Message": { - "S": "This item has changed" - }, - "Id": { - "N": "101" - } - }, - "StreamViewType": "NEW_AND_OLD_IMAGES" - }, - "awsRegion": "us-west-2", - "eventName": "MODIFY", - "eventSourceARN": "source_arn", - "eventSource": "aws:dynamodb" - } - ] -} diff --git a/examples/event_sources/events/eventBridgeEvent.json b/examples/event_sources/events/eventBridgeEvent.json deleted file mode 100644 index 65872cf9a34..00000000000 --- a/examples/event_sources/events/eventBridgeEvent.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": "0", - "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", - "detail-type": "EC2 Instance State-change Notification", - "source": "aws.ec2", - "account": "111122223333", - "time": "2017-12-22T18:43:48Z", - "region": "us-west-1", - "resources": [ - "arn:aws:ec2:us-west-1:123456789012:instance/i-1234567890abcdef0" - ], - "detail": { - "instance_id": "i-1234567890abcdef0", - "state": "terminated" - }, - "replay-name": "replay_archive" -} diff --git a/examples/event_sources/events/kafkaEventMsk.json b/examples/event_sources/events/kafkaEventMsk.json deleted file mode 100644 index 5a35b89680a..00000000000 --- a/examples/event_sources/events/kafkaEventMsk.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "eventSource":"aws:kafka", - "eventSourceArn":"arn:aws:kafka:us-east-1:0123456789019:cluster/SalesCluster/abcd1234-abcd-cafe-abab-9876543210ab-4", - "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", - "records":{ - "mytopic-0":[ - { - "topic":"mytopic", - "partition":0, - "offset":15, - "timestamp":1545084650987, - "timestampType":"CREATE_TIME", - "key":"cmVjb3JkS2V5", - "value":"eyJrZXkiOiJ2YWx1ZSJ9", - "headers":[ - { - "headerKey":[ - 104, - 101, - 97, - 100, - 101, - 114, - 86, - 97, - 108, - 117, - 101 - ] - } - ] - } - ] - } -} diff --git a/examples/event_sources/events/kinesisFirehoseKinesisEvent.json b/examples/event_sources/events/kinesisFirehoseKinesisEvent.json deleted file mode 100644 index 8ac0ba93bd5..00000000000 --- a/examples/event_sources/events/kinesisFirehoseKinesisEvent.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "invocationId": "2b4d1ad9-2f48-94bd-a088-767c317e994a", - "sourceKinesisStreamArn": "arn:aws:kinesis:us-east-1:123456789012:stream/kinesis-source", - "deliveryStreamArn": "arn:aws:firehose:us-east-2:123456789012:deliverystream/delivery-stream-name", - "region": "us-east-2", - "records": [ - { - "data": "SGVsbG8gV29ybGQ=", - "recordId": "record1", - "approximateArrivalTimestamp": 1664028820148, - "kinesisRecordMetadata": { - "shardId": "shardId-000000000000", - "partitionKey": "1234", - "approximateArrivalTimestamp": 1664028820148, - "sequenceNumber": "49546986683135544286507457936321625675700192471156785154", - "subsequenceNumber": 0 - } - }, - { - "data": "eyJIZWxsbyI6ICJXb3JsZCJ9", - "recordId": "record2", - "approximateArrivalTimestamp": 1664028793294, - "kinesisRecordMetadata": { - "shardId": "shardId-000000000001", - "partitionKey": "4567", - "approximateArrivalTimestamp": 1664028793294, - "sequenceNumber": "49546986683135544286507457936321625675700192471156785155", - "subsequenceNumber": 0 - } - } - ] -} \ No newline at end of file diff --git a/examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json b/examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json deleted file mode 100644 index 000f37935d3..00000000000 --- a/examples/event_sources/events/kinesisStreamCloudWatchLogsEvent.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "Records": [ - { - "kinesis": { - "kinesisSchemaVersion": "1.0", - "partitionKey": "123456789", - "sequenceNumber": "49635052289529725553291405521504870233219489715332317186", - "data": "H4sIAAAAAAAAAK2Sa2vbMBSG/4ox+xg3Oror39IlvaztVmJv7WjCUGwl8+ZLZstts5L/vuOsZYUyWGEgJHiP9J7nvOghLF3b2rVLthsXjsLJOBl/uZjG8fh4Gg7C+q5yDcqUAWcSONHEoFzU6+Om7jZYGdq7dljYcpnZ4cZHwLWOJl1Zbs/r9cR6e9RVqc/rKlpXV9eXt+fy27vt8W+L2DfOlr07oXQIMAQyvHlzPk6mcbKgciktF5lQfMU5dZZqzrShLF2uFC60aLtlmzb5prc/ygvvmjYc3YRPFG+LusuurE+/Ikqb1Gd55dq8jV+8isT6+317Rk42J5PTcLFnm966yvd2D2GeISJTYIwCJSQ1BE9OtWZCABWaKMIJAMdDMyU5MYZLhmkxBhQxfY4Re1tiWiAlBsgIVQTE4Cl6tI+T8SwJZu5Hh1dPs1FApOMSDI9WVKmIC+4irTMWQZYpx7QkztrgE06MU4yCx9DmVbgbvABmQJTGtkYAB0NwEwyYQUBpqEFuSbkGrThTRKi/AlP+HHj6fvJa3P9Ap/+Rbja9/PD6POd+0jXW7xM1B8CDsp37w7woXBb8qQDZ6xeurJttEOc/HWpUBxeHKNr74LHwsXXYlsm9flrl/rmFIQeS7m3m1fVs/DlIGpu6nhMiyWQGXNKIMbcCIgkhElKbaZnZpYJUz33s1iV+z/6+StMlR3yphHNcCyxiNEXf2zed6xuEu8XuF2wb6krnAwAA", - "approximateArrivalTimestamp": 1668093033.744 - }, - "eventSource": "aws:kinesis", - "eventVersion": "1.0", - "eventID": "shardId-000000000000:49635052289529725553291405521504870233219489715332317186", - "eventName": "aws:kinesis:record", - "invokeIdentityArn": "arn:aws:iam::231436140809:role/pt-1488-CloudWatchKinesisLogsFunctionRole-1M4G2TIWIE49", - "awsRegion": "eu-west-1", - "eventSourceARN": "arn:aws:kinesis:eu-west-1:231436140809:stream/pt-1488-KinesisStreamCloudWatchLogs-D8tHs0im0aJG" - }, - { - "kinesis": { - "kinesisSchemaVersion": "1.0", - "partitionKey": "12345678910", - "sequenceNumber": "49635052289529725553291405520881064510298312199003701250", - "data": "H4sIAAAAAAAAAK2SW2/TQBCF/4pl8ViTvc7u5i0laVraQhUbWtREaG1PgsGXYK/bhqr/nXVoBRIgUYnXc2bPfHO092GFXWc3mOy2GI7D6SSZfDyfxfFkPgsPwua2xtbLjFPBgQqiifFy2WzmbdNvvTOyt92otFWa29HWRVRoHU37qtqdNZupdfaorzNXNHW0qS+vLm7O4PPr3fxHROxatNWQThgbUTqiZHT94mySzOJkBUqYLOWY8ZQLbaTRkEvDciUYzWzKfETXp13WFtsh/qgoHbZdOL4OnyhelU2fX1qXffIoXdKcFjV2RRf/9iqSmy933Sk53h5PT8LVnm12g7Ub4u7DIveIXFFjFNGUKUlAaMY0EUJKLjkQbxhKGCWeknMKoAGUkYoJ7TFd4St2tvJtDRYxDAg3VB08Ve/j42SySIIFfu396Ek+DkS+xkwAiYhM00isgUV6jXmEMrM5EmMsh+C9v9hfMQ4eS1vW4cPBH4CZVpoTJkEIAp5RUMo8vGFae3JNCCdUccMVgPw7sP4VePZm+lzc/0AH/0i3mF28fX6fSzftW+v2jZKXRgVVt3SHRVliHvx06F4+x6ppd0FcfEMvMR2cH3rR3gWPxrsO/Vau9vqyvlpMPgRJazMcYGgEHHLKBhLGJaBA0JLxNc0JppoS9Cwxbir/B4d5QDBAQSnfFFGp8aa/vxw2uLbHYUH4sHr4Dj5RJxfMAwAA", - "approximateArrivalTimestamp": 1668092612.992 - }, - "eventSource": "aws:kinesis", - "eventVersion": "1.0", - "eventID": "shardId-000000000000:49635052289529725553291405520881064510298312199003701250", - "eventName": "aws:kinesis:record", - "invokeIdentityArn": "arn:aws:iam::231436140809:role/pt-1488-CloudWatchKinesisLogsFunctionRole-1M4G2TIWIE49", - "awsRegion": "eu-west-1", - "eventSourceARN": "arn:aws:kinesis:eu-west-1:231436140809:stream/pt-1488-KinesisStreamCloudWatchLogs-D8tHs0im0aJG" - } - ] -} \ No newline at end of file diff --git a/examples/event_sources/events/kinesisStreamEvent.json b/examples/event_sources/events/kinesisStreamEvent.json deleted file mode 100644 index ef8e2096388..00000000000 --- a/examples/event_sources/events/kinesisStreamEvent.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "Records": [ - { - "kinesis": { - "kinesisSchemaVersion": "1.0", - "partitionKey": "1", - "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", - "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", - "approximateArrivalTimestamp": 1545084650.987 - }, - "eventSource": "aws:kinesis", - "eventVersion": "1.0", - "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", - "eventName": "aws:kinesis:record", - "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", - "awsRegion": "us-east-2", - "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" - }, - { - "kinesis": { - "kinesisSchemaVersion": "1.0", - "partitionKey": "1", - "sequenceNumber": "49590338271490256608559692540925702759324208523137515618", - "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=", - "approximateArrivalTimestamp": 1545084711.166 - }, - "eventSource": "aws:kinesis", - "eventVersion": "1.0", - "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618", - "eventName": "aws:kinesis:record", - "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", - "awsRegion": "us-east-2", - "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" - } - ] -} diff --git a/examples/event_sources/events/lambdaFunctionUrlEvent.json b/examples/event_sources/events/lambdaFunctionUrlEvent.json deleted file mode 100644 index da5c133e6f8..00000000000 --- a/examples/event_sources/events/lambdaFunctionUrlEvent.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "version":"2.0", - "routeKey":"$default", - "rawPath":"/", - "rawQueryString":"", - "headers":{ - "sec-fetch-mode":"navigate", - "x-amzn-tls-version":"TLSv1.2", - "sec-fetch-site":"cross-site", - "accept-language":"pt-BR,pt;q=0.9", - "x-forwarded-proto":"https", - "x-forwarded-port":"443", - "x-forwarded-for":"123.123.123.123", - "sec-fetch-user":"?1", - "accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", - "x-amzn-tls-cipher-suite":"ECDHE-RSA-AES128-GCM-SHA256", - "sec-ch-ua":"\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"102\", \"Google Chrome\";v=\"102\"", - "sec-ch-ua-mobile":"?0", - "x-amzn-trace-id":"Root=1-62ecd163-5f302e550dcde3b12402207d", - "sec-ch-ua-platform":"\"Linux\"", - "host":"<url-id>.lambda-url.us-east-1.on.aws", - "upgrade-insecure-requests":"1", - "cache-control":"max-age=0", - "accept-encoding":"gzip, deflate, br", - "sec-fetch-dest":"document", - "user-agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" - }, - "requestContext":{ - "accountId":"anonymous", - "apiId":"<url-id>", - "domainName":"<url-id>.lambda-url.us-east-1.on.aws", - "domainPrefix":"<url-id>", - "http":{ - "method":"GET", - "path":"/", - "protocol":"HTTP/1.1", - "sourceIp":"123.123.123.123", - "userAgent":"agent" - }, - "requestId":"id", - "routeKey":"$default", - "stage":"$default", - "time":"05/Aug/2022:08:14:39 +0000", - "timeEpoch":1659687279885 - }, - "isBase64Encoded":false -} diff --git a/examples/event_sources/events/rabbitMQEvent.json b/examples/event_sources/events/rabbitMQEvent.json deleted file mode 100644 index 5b1d998459f..00000000000 --- a/examples/event_sources/events/rabbitMQEvent.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "eventSource": "aws:rmq", - "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8", - "rmqMessagesByQueue": { - "pizzaQueue::/": [ - { - "basicProperties": { - "contentType": "text/plain", - "contentEncoding": null, - "headers": { - "header1": { - "bytes": [ - 118, - 97, - 108, - 117, - 101, - 49 - ] - }, - "header2": { - "bytes": [ - 118, - 97, - 108, - 117, - 101, - 50 - ] - }, - "numberInHeader": 10 - }, - "deliveryMode": 1, - "priority": 34, - "correlationId": null, - "replyTo": null, - "expiration": "60000", - "messageId": null, - "timestamp": "Jan 1, 1970, 12:33:41 AM", - "type": null, - "userId": "1234", - "appId": null, - "clusterId": null, - "bodySize": 80 - }, - "redelivered": false, - "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ==" - } - ] - } -} \ No newline at end of file diff --git a/examples/event_sources/events/s3BatchOperationEventSchemaV2.json b/examples/event_sources/events/s3BatchOperationEventSchemaV2.json deleted file mode 100644 index 720dd1f0cf0..00000000000 --- a/examples/event_sources/events/s3BatchOperationEventSchemaV2.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "invocationSchemaVersion": "2.0", - "invocationId": "YXNkbGZqYWRmaiBhc2RmdW9hZHNmZGpmaGFzbGtkaGZza2RmaAo", - "job": { - "id": "f3cc4f60-61f6-4a2b-8a21-d07600c373ce", - "userArguments": { - "k1": "v1", - "k2": "v2" - } - }, - "tasks": [ - { - "taskId": "dGFza2lkZ29lc2hlcmUK", - "s3Key": "prefix/dataset/dataset.20231222.json.gz", - "s3VersionId": null, - "s3Bucket": "powertools-dataset" - } - ] -} \ No newline at end of file diff --git a/examples/event_sources/events/s3Event.json b/examples/event_sources/events/s3Event.json deleted file mode 100644 index 71eff8db743..00000000000 --- a/examples/event_sources/events/s3Event.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "Records": [ - { - "eventVersion": "2.1", - "eventSource": "aws:s3", - "awsRegion": "us-east-2", - "eventTime": "2019-09-03T19:37:27.192Z", - "eventName": "ObjectCreated:Put", - "userIdentity": { - "principalId": "123" - }, - "requestParameters": { - "sourceIPAddress": "205.255.255.255" - }, - "responseElements": { - "x-amz-request-id": "D82B88E5F771F645", - "x-amz-id-2": "vlR7PnpV2Ce81l0PRw6jlUpck7Jo5ZsQjryTjKlc5aLWGVHPZLj5NeC6qMa0emYBDXOo6QBU0Wo=" - }, - "s3": { - "s3SchemaVersion": "1.0", - "configurationId": "828aa6fc-f7b5-4305-8584-487c791949c1", - "bucket": { - "name": "lambda-artifacts-deafc19498e3f2df", - "ownerIdentity": { - "principalId": "123" - }, - "arn": "arn:aws:s3:::lambda-artifacts-deafc19498e3f2df" - }, - "object": { - "key": "b21b84d653bb07b05b1e6b33684dc11b", - "size": 1305107, - "eTag": "b21b84d653bb07b05b1e6b33684dc11b", - "sequencer": "0C0F6F405D6ED209E1" - } - } - } - ] -} \ No newline at end of file diff --git a/examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json b/examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json deleted file mode 100644 index 99b859484ac..00000000000 --- a/examples/event_sources/events/s3EventBridgeNotificationObjectCreatedEvent.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "version": "0", - "id": "f5f1e65c-dc3a-93ca-6c1e-b1647eac7963", - "detail-type": "Object Created", - "source": "aws.s3", - "account": "123456789012", - "time": "2023-03-08T17:50:14Z", - "region": "eu-west-1", - "resources": [ - "arn:aws:s3:::example-bucket" - ], - "detail": { - "version": "0", - "bucket": { - "name": "example-bucket" - }, - "object": { - "key": "img.jpg", - "size": 184662, - "etag": "4e68adba0abe2dc8653dc3354e14c01d", - "sequencer": "006408CAD69598B05E" - }, - "request-id": "57H08PA84AB1JZW0", - "requester": "123456789012", - "source-ip-address": "34.252.34.74", - "reason": "PutObject" - } -} \ No newline at end of file diff --git a/examples/event_sources/events/sesEvent.json b/examples/event_sources/events/sesEvent.json deleted file mode 100644 index 636ecad687f..00000000000 --- a/examples/event_sources/events/sesEvent.json +++ /dev/null @@ -1,101 +0,0 @@ -{ - "Records": [ - { - "eventVersion": "1.0", - "ses": { - "mail": { - "commonHeaders": { - "from": [ - "Jane Doe <janedoe@example.com>" - ], - "to": [ - "johndoe@example.com" - ], - "returnPath": "janedoe@example.com", - "messageId": "<0123456789example.com>", - "date": "Wed, 7 Oct 2015 12:34:56 -0700", - "subject": "Test Subject" - }, - "source": "janedoe@example.com", - "timestamp": "1970-01-01T00:00:00.000Z", - "destination": [ - "johndoe@example.com" - ], - "headers": [ - { - "name": "Return-Path", - "value": "<janedoe@example.com>" - }, - { - "name": "Received", - "value": "from mailer.example.com (mailer.example.com [203.0.113.1]) by ..." - }, - { - "name": "DKIM-Signature", - "value": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=example.com; s=example; ..." - }, - { - "name": "MIME-Version", - "value": "1.0" - }, - { - "name": "From", - "value": "Jane Doe <janedoe@example.com>" - }, - { - "name": "Date", - "value": "Wed, 7 Oct 2015 12:34:56 -0700" - }, - { - "name": "Message-ID", - "value": "<0123456789example.com>" - }, - { - "name": "Subject", - "value": "Test Subject" - }, - { - "name": "To", - "value": "johndoe@example.com" - }, - { - "name": "Content-Type", - "value": "text/plain; charset=UTF-8" - } - ], - "headersTruncated": false, - "messageId": "o3vrnil0e2ic28tr" - }, - "receipt": { - "recipients": [ - "johndoe@example.com" - ], - "timestamp": "1970-01-01T00:00:00.000Z", - "spamVerdict": { - "status": "PASS" - }, - "dkimVerdict": { - "status": "PASS" - }, - "dmarcPolicy": "reject", - "processingTimeMillis": 574, - "action": { - "type": "Lambda", - "invocationType": "Event", - "functionArn": "arn:aws:lambda:us-west-2:012345678912:function:Example" - }, - "dmarcVerdict": { - "status": "PASS" - }, - "spfVerdict": { - "status": "PASS" - }, - "virusVerdict": { - "status": "PASS" - } - } - }, - "eventSource": "aws:ses" - } - ] -} diff --git a/examples/event_sources/events/snsEvent.json b/examples/event_sources/events/snsEvent.json deleted file mode 100644 index 3d8a8ed443c..00000000000 --- a/examples/event_sources/events/snsEvent.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "Records": [ - { - "EventVersion": "1.0", - "EventSubscriptionArn": "arn:aws:sns:us-east-2:123456789012:sns-la ...", - "EventSource": "aws:sns", - "Sns": { - "SignatureVersion": "1", - "Timestamp": "2019-01-02T12:45:07.000Z", - "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", - "SigningCertUrl": "https://sns.us-east-2.amazonaws.com/SimpleNotification", - "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", - "Message": "Hello from SNS!", - "MessageAttributes": { - "Test": { - "Type": "String", - "Value": "TestString" - }, - "TestBinary": { - "Type": "Binary", - "Value": "TestBinary" - } - }, - "Type": "Notification", - "UnsubscribeUrl": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe", - "TopicArn": "arn:aws:sns:us-east-2:123456789012:sns-lambda", - "Subject": "TestInvoke" - } - } - ] -} \ No newline at end of file diff --git a/examples/event_sources/events/sqsEvent.json b/examples/event_sources/events/sqsEvent.json deleted file mode 100644 index 4ca764cc0ba..00000000000 --- a/examples/event_sources/events/sqsEvent.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "Records": [ - { - "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d", - "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", - "body": "Test message.", - "attributes": { - "ApproximateReceiveCount": "1", - "SentTimestamp": "1545082649183", - "SenderId": "1234", - "ApproximateFirstReceiveTimestamp": "1545082649185" - }, - "messageAttributes": { - "testAttr": { - "stringValue": "100", - "binaryValue": "base64Str", - "dataType": "Number" - } - }, - "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", - "eventSource": "aws:sqs", - "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", - "awsRegion": "us-east-2" - }, - { - "messageId": "2e1424d4-f796-459a-8184-9c92662be6da", - "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...", - "body": "{\"message\": \"foo1\"}", - "attributes": { - "ApproximateReceiveCount": "1", - "SentTimestamp": "1545082650636", - "SenderId": "1234", - "ApproximateFirstReceiveTimestamp": "1545082650649" - }, - "messageAttributes": {}, - "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", - "eventSource": "aws:sqs", - "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", - "awsRegion": "us-east-2" - } - ] -} \ No newline at end of file diff --git a/examples/event_sources/src/vpc_lattice_payload.json b/examples/event_sources/events/vpc_lattice_payload.json similarity index 100% rename from examples/event_sources/src/vpc_lattice_payload.json rename to examples/event_sources/events/vpc_lattice_payload.json diff --git a/examples/event_sources/src/vpc_lattice_v2_payload.json b/examples/event_sources/events/vpc_lattice_v2_payload.json similarity index 100% rename from examples/event_sources/src/vpc_lattice_v2_payload.json rename to examples/event_sources/events/vpc_lattice_v2_payload.json diff --git a/examples/event_sources/src/aws_config_rule_item_changed.json b/examples/event_sources/src/aws_config_rule_item_changed.json deleted file mode 100644 index cbf7abf67aa..00000000000 --- a/examples/event_sources/src/aws_config_rule_item_changed.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "version":"1.0", - "invokingEvent":"{\"configurationItemDiff\":{\"changedProperties\":{\"Configuration.InstanceType\":{\"previousValue\":\"t2.micro\",\"updatedValue\":\"t2.medium\",\"changeType\":\"UPDATE\"},\"Configuration.State.Name\":{\"previousValue\":\"running\",\"updatedValue\":\"stopped\",\"changeType\":\"UPDATE\"},\"Configuration.StateTransitionReason\":{\"previousValue\":\"\",\"updatedValue\":\"User initiated (2023-04-27 15:01:07 GMT)\",\"changeType\":\"UPDATE\"},\"Configuration.StateReason\":{\"previousValue\":null,\"updatedValue\":{\"code\":\"Client.UserInitiatedShutdown\",\"message\":\"Client.UserInitiatedShutdown: User initiated shutdown\"},\"changeType\":\"CREATE\"},\"Configuration.CpuOptions.CoreCount\":{\"previousValue\":1,\"updatedValue\":2,\"changeType\":\"UPDATE\"}},\"changeType\":\"UPDATE\"},\"configurationItem\":{\"relatedEvents\":[],\"relationships\":[{\"resourceId\":\"eipalloc-0ebb4367662263cc1\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::EIP\",\"name\":\"Is attached to ElasticIp\"},{\"resourceId\":\"eni-034dd31c4b17ada8c\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::NetworkInterface\",\"name\":\"Contains NetworkInterface\"},{\"resourceId\":\"eni-09a604c0ec356b06f\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::NetworkInterface\",\"name\":\"Contains NetworkInterface\"},{\"resourceId\":\"sg-0fb295a327d9b4835\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::SecurityGroup\",\"name\":\"Is associated with SecurityGroup\"},{\"resourceId\":\"subnet-cad1f2f4\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::Subnet\",\"name\":\"Is contained in Subnet\"},{\"resourceId\":\"vol-0a288b5eb9fea4b30\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::Volume\",\"name\":\"Is attached to Volume\"},{\"resourceId\":\"vpc-2d96be57\",\"resourceName\":null,\"resourceType\":\"AWS::EC2::VPC\",\"name\":\"Is contained in Vpc\"}],\"configuration\":{\"amiLaunchIndex\":0,\"imageId\":\"ami-09d95fab7fff3776c\",\"instanceId\":\"i-042dd005362091826\",\"instanceType\":\"t2.medium\",\"kernelId\":null,\"keyName\":\"mihaec2\",\"launchTime\":\"2023-04-27T14:57:16.000Z\",\"monitoring\":{\"state\":\"disabled\"},\"placement\":{\"availabilityZone\":\"us-east-1e\",\"affinity\":null,\"groupName\":\"\",\"partitionNumber\":null,\"hostId\":null,\"tenancy\":\"default\",\"spreadDomain\":null,\"hostResourceGroupArn\":null},\"platform\":null,\"privateDnsName\":\"ip-172-31-78-41.ec2.internal\",\"privateIpAddress\":\"172.31.78.41\",\"productCodes\":[],\"publicDnsName\":\"ec2-3-232-229-57.compute-1.amazonaws.com\",\"publicIpAddress\":\"3.232.229.57\",\"ramdiskId\":null,\"state\":{\"code\":80,\"name\":\"stopped\"},\"stateTransitionReason\":\"User initiated (2023-04-27 15:01:07 GMT)\",\"subnetId\":\"subnet-cad1f2f4\",\"vpcId\":\"vpc-2d96be57\",\"architecture\":\"x86_64\",\"blockDeviceMappings\":[{\"deviceName\":\"/dev/xvda\",\"ebs\":{\"attachTime\":\"2020-05-30T15:21:58.000Z\",\"deleteOnTermination\":true,\"status\":\"attached\",\"volumeId\":\"vol-0a288b5eb9fea4b30\"}}],\"clientToken\":\"\",\"ebsOptimized\":false,\"enaSupport\":true,\"hypervisor\":\"xen\",\"iamInstanceProfile\":{\"arn\":\"arn:aws:iam::0123456789012:instance-profile/AmazonSSMRoleForInstancesQuickSetup\",\"id\":\"AIPAS5S4WFUBL72S3QXW5\"},\"instanceLifecycle\":null,\"elasticGpuAssociations\":[],\"elasticInferenceAcceleratorAssociations\":[],\"networkInterfaces\":[{\"association\":{\"carrierIp\":null,\"ipOwnerId\":\"0123456789012\",\"publicDnsName\":\"ec2-3-232-229-57.compute-1.amazonaws.com\",\"publicIp\":\"3.232.229.57\"},\"attachment\":{\"attachTime\":\"2020-05-30T15:21:57.000Z\",\"attachmentId\":\"eni-attach-0a7e75dc9c1c291a0\",\"deleteOnTermination\":true,\"deviceIndex\":0,\"status\":\"attached\",\"networkCardIndex\":0},\"description\":\"\",\"groups\":[{\"groupName\":\"minhaec2\",\"groupId\":\"sg-0fb295a327d9b4835\"}],\"ipv6Addresses\":[],\"macAddress\":\"06:cf:00:c2:17:db\",\"networkInterfaceId\":\"eni-034dd31c4b17ada8c\",\"ownerId\":\"0123456789012\",\"privateDnsName\":\"ip-172-31-78-41.ec2.internal\",\"privateIpAddress\":\"172.31.78.41\",\"privateIpAddresses\":[{\"association\":{\"carrierIp\":null,\"ipOwnerId\":\"0123456789012\",\"publicDnsName\":\"ec2-3-232-229-57.compute-1.amazonaws.com\",\"publicIp\":\"3.232.229.57\"},\"primary\":true,\"privateDnsName\":\"ip-172-31-78-41.ec2.internal\",\"privateIpAddress\":\"172.31.78.41\"}],\"sourceDestCheck\":true,\"status\":\"in-use\",\"subnetId\":\"subnet-cad1f2f4\",\"vpcId\":\"vpc-2d96be57\",\"interfaceType\":\"interface\"},{\"association\":null,\"attachment\":{\"attachTime\":\"2020-11-26T23:46:04.000Z\",\"attachmentId\":\"eni-attach-0e6d150ebbd19966e\",\"deleteOnTermination\":false,\"deviceIndex\":1,\"status\":\"attached\",\"networkCardIndex\":0},\"description\":\"MINHAEC2AAAAAA\",\"groups\":[{\"groupName\":\"minhaec2\",\"groupId\":\"sg-0fb295a327d9b4835\"},{\"groupName\":\"default\",\"groupId\":\"sg-88105fa0\"}],\"ipv6Addresses\":[],\"macAddress\":\"06:0a:62:00:64:5f\",\"networkInterfaceId\":\"eni-09a604c0ec356b06f\",\"ownerId\":\"0123456789012\",\"privateDnsName\":\"ip-172-31-70-9.ec2.internal\",\"privateIpAddress\":\"172.31.70.9\",\"privateIpAddresses\":[{\"association\":null,\"primary\":true,\"privateDnsName\":\"ip-172-31-70-9.ec2.internal\",\"privateIpAddress\":\"172.31.70.9\"}],\"sourceDestCheck\":true,\"status\":\"in-use\",\"subnetId\":\"subnet-cad1f2f4\",\"vpcId\":\"vpc-2d96be57\",\"interfaceType\":\"interface\"}],\"outpostArn\":null,\"rootDeviceName\":\"/dev/xvda\",\"rootDeviceType\":\"ebs\",\"securityGroups\":[{\"groupName\":\"minhaec2\",\"groupId\":\"sg-0fb295a327d9b4835\"}],\"sourceDestCheck\":true,\"spotInstanceRequestId\":null,\"sriovNetSupport\":null,\"stateReason\":{\"code\":\"Client.UserInitiatedShutdown\",\"message\":\"Client.UserInitiatedShutdown: User initiated shutdown\"},\"tags\":[{\"key\":\"projeto\",\"value\":\"meetup\"},{\"key\":\"Name\",\"value\":\"Minha\"},{\"key\":\"CentroCusto\",\"value\":\"TI\"},{\"key\":\"Setor\",\"value\":\"Desenvolvimento\"}],\"virtualizationType\":\"hvm\",\"cpuOptions\":{\"coreCount\":2,\"threadsPerCore\":1},\"capacityReservationId\":null,\"capacityReservationSpecification\":{\"capacityReservationPreference\":\"open\",\"capacityReservationTarget\":null},\"hibernationOptions\":{\"configured\":false},\"licenses\":[],\"metadataOptions\":{\"state\":\"applied\",\"httpTokens\":\"optional\",\"httpPutResponseHopLimit\":1,\"httpEndpoint\":\"enabled\"},\"enclaveOptions\":{\"enabled\":false},\"bootMode\":null},\"supplementaryConfiguration\":{},\"tags\":{\"projeto\":\"meetup\",\"Setor\":\"Desenvolvimento\",\"CentroCusto\":\"TI\",\"Name\":\"Minha\"},\"configurationItemVersion\":\"1.3\",\"configurationItemCaptureTime\":\"2023-04-27T15:03:11.636Z\",\"configurationStateId\":1682607791636,\"awsAccountId\":\"0123456789012\",\"configurationItemStatus\":\"OK\",\"resourceType\":\"AWS::EC2::Instance\",\"resourceId\":\"i-042dd005362091826\",\"resourceName\":null,\"ARN\":\"arn:aws:ec2:us-east-1:0123456789012:instance/i-042dd005362091826\",\"awsRegion\":\"us-east-1\",\"availabilityZone\":\"us-east-1e\",\"configurationStateMd5Hash\":\"\",\"resourceCreationTime\":\"2023-04-27T14:57:16.000Z\"},\"notificationCreationTime\":\"2023-04-27T15:03:13.332Z\",\"messageType\":\"ConfigurationItemChangeNotification\",\"recordVersion\":\"1.3\"}", - "ruleParameters":"{\"desiredInstanceType\": \"t2.micro\"}", - "resultToken":"eyJlbmNyeXB0ZWREYXRhIjpbLTQxLDEsLTU3LC0zMCwtMTIxLDUzLDUyLDQ1LC01NywtOCw3MywtODEsLTExNiwtMTAyLC01MiwxMTIsLTQ3LDU4LDY1LC0xMjcsMTAyLDUsLTY5LDQ0LC0xNSwxMTQsNDEsLTksMTExLC0zMCw2NSwtNzUsLTM1LDU0LDEwNSwtODksODYsNDAsLTEwNSw5OCw2NSwtMTE5LC02OSwyNCw2NiwtMjAsODAsLTExMiwtNzgsLTgwLDQzLC01NywzMCwtMjUsODIsLTEwLDMsLTQsLTg1LC01MywtMzcsLTkwLC04OCwtOTgsLTk4LC00MSwxOSwxMTYsNjIsLTIzLC0xMjEsLTEwOCw1NywtNTgsLTUyLDI5LDEwMSwxMjIsLTU2LC03MSwtODEsLTQ3LDc3LC0yMiwtMTI0LC0zLC04NiwtMTIyLC00MCwtODksLTEwMSw1NywtMTI3LC0zNywtMzcsLTMxLC05OCwtMzEsMTEsLTEyNSwwLDEwOCwtMzIsNjQsNjIsLTIyLDAsNDcsLTEwNiwtMTAwLDEwNCwxNCw1OCwxMjIsLTEwLC01MCwtOTAsLTgwLC01MCwtNSw2NSwwLC0yNSw4NSw4Miw3LDkzLDEyMiwtODIsLTExNiwtNzksLTQ0LDcyLC03MywtNjksMTQsLTU2LDk0LDkwLDExNCwtMjksLTExOSwtNzEsODgsMTA3LDEwNywxMTAsLTcsMTI3LC0xMjUsLTU3LC0xMjYsLTEyMCw2OSwtMTI3LC03NiwtMTE5LDcxLDEsLTY4LDEwNywxMTMsLTU2LDg3LC0xMDIsLTE2LDEwOCwtMTA3LC00MywtOTQsLTEwNiwzLDkwLDE0LDcyLC0xMiwtMTE2LC03Myw4MCwtMTIyLDQ0LC0xMDQsMTIsNzQsNTcsLTEwLC0xMDUsLTExMiwtMzYsMjgsLTQ1LDk3LDExLC00OSwtMTEsNjEsMzYsLTE3LC03NCw1MCw0LC0yNiwxMDQsLTI4LC0xMjUsMjQsNzAsLTg1LC00Niw5MiwtMTAzLC00MSwtMTA2LDY5LDEyMiwyMSwtMjUsODAsOTksLTkzLC01NiwtMjUsLTQ3LC0xMjMsLTU5LC0xMjQsLTUyLC0xNiwxMjcsLTM4LC0xNiwxMDEsMTE5LDEwNywyNywxMCwtNDYsLTg3LC0xMiwtMzksMTQsNDUsMiw3MCwxMDcsMTA0LC00LC02OSwtMTIsNTksLTEyNiwtOTEsMTI3LDU0LDEwNiwtMTI2LC0xMTYsLTEwMiw3Miw4MSw1MCw3NSwtNTEsMTA4LDQxLC0zLC02LC00NSwxMDMsLTg2LDM3LC00NiwtMzIsLTExMSwxMjQsMTExLDg3LDU0LC03NiwxMjIsLTUsLTM2LC04OCw5LC0xMTMsMTE2LC01OSw4Myw3NywyOCwxMiwtNjUsLTExMywtNzksLTEyOCw4MiwtMTE4LC04MywtMTI0LDMxLDk5LC05MCwtOTksMTYsLTEyMywyMSwtMTE0LC05OCwtMTE2LC0xMTksMiwtNzMsNDYsODIsLTEzLDU0LDcxLC00MiwyNSw3NCw3MywtODYsOTQsNDYsOTksOTMsLTgyLDU1LDY1LC05OCw0OSwtNjAsMTEyLDEwMSwyMiw2OSwtMTYsNzcsLTk0LC01OSwtNDYsMTE1LDMwLC00Myw5Myw4OCwtMjgsMzgsNiw4NCwzMSwtMTAxLDMyLC0yMiwtNjMsLTk1LDExNCwtNzUsMTE0LDM2LC04NCw0MCwtNDQsLTEzLDU5LDcyLC0xLC0xMDMsMzEsMTA1LDY5LDY5LDc3LC02NCwtNTYsMTE4LDEzLC0xMTQsODAsOTksLTUzLDI1LDQyLDk0LDczLC04MCwyNSwzOCwyNCwtMTcsNjYsLTExOCwtMjMsMTE5LDkwLDEyMSwxMTgsLTUxLDUxLC0xMiwtNzYsLTUxLDksLTIxLDExNCwtMzcsLTY0LC0yLC0xMjYsLTk1LDYzLDczLC00MSwtMzQsLTkwLC0yMiw1OSwtNzksMzAsLTQsLTEsLTUsMTIsMzksLTk5LC0xMDUsLTEwNCwtNjEsNjUsLTc0LDE5LC0xMywtNjAsLTI4LC04LDQsLTgsMTIxLC0xMTgsMTIyLC02NSwtMjEsMjMsMTcsLTg0LDQwLC05MiwxNCwtMTI2LC02MCwtNzksLTUzLDM3LC04Myw2NSwxMDQsLTM2LC02MCwtMTEwLC0zMywtMTE3LDYsMTA3LDEsLTMsOTMsNzgsLTk1LC0xMjIsNTMsMTA4LC00OSwtNDksMjQsLTY1LDgzLDEyNSwtNzcsLTE5LC04MSwzNCwtNjcsLTQzLC03MCwtMjYsMTgsMTA0LDY1LDQsLTEyNiw0NCwtMTE5LDUyLC00NiwyMiw2NywxMTMsMTE4LC0zMywzNCwtOTYsMTIxLDE5LC0yLC0zNSwwLC04MiwxNyw2NiwtMjcsNjksLTM2LC0xNCw1NiwtOTcsLTE2LDEyMywyOCwtOTUsLTMyLC02MywtNjksNzAsNjQsLTMzLC0xMDAsNDMsLTExMywxMDUsMTAwLDEwOCwtNjAsNDAsLTIsLTk2LC0xMjQsMzcsLTQ1LC0xMjQsLTY4LC02OSwtMTIzLDE3LC02LDg2LC01OSwtOTQsMTEwLDczLDU3LC0xMTYsMTA3LC00MSwtOTQsLTExOCwtMTI2LDEwLC04MCwtNzAsMTAyLDg4LC0xMjYsODcsLTI3LC0xMDEsLTk0LC0zNSwtMTA2LC02LC03MiwtODYsNTAsMTE2LC0yOCw5MCwxMywtMTIwLDYsMjcsOTIsNTYsLTkwLDM5LDQ5LC0xMywtODYsLTI1LC04NiwxMTMsLTEzLDQxLC0xMTksOTQsLTk0LC0xMDMsLTgzLC02MCwxMjcsLTE1LC0zOSwxMTksLTk1LDI3LDQ0LDExNiwxMDksNywtMTAyLC0xNyw0OCwtODIsLTMxLC04LC02OSwzNSw5NCw1NCwtNTUsMSwtMTE5LDU3LC0xMDgsLTMsLTkxLC0xMjIsLTUzLC04OCw0LC05NywtMzUsMTI2LDExOSw1OSwtMSw4NSw3MywtNTgsLTEyMCwtNjQsMTE5LC0xMTIsOTIsMTksOSwtNjYsLTkyLDEwOCwtMTEsLTQyLDExMSwtMTA0LC0xMjAsMjcsLTEwMywtNjksMTksMTExLDEyLDIzLDEwNyw1NCw0MSwtMjYsNjAsLTMxLC01XSwibWF0ZXJpYWxTZXRTZXJpYWxOdW1iZXIiOjEsIml2UGFyYW1ldGVyU3BlYyI6eyJpdiI6Wy05NSwzMiwxMDgsOTEsMzUsLTgyLC0zNywyNCwtNDQsLTExNSwtODIsLTEyOCwtMTIyLDMsNTMsLTI0XX19", - "eventLeftScope":false, - "executionRoleArn":"arn:aws:iam::0123456789012:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig", - "configRuleArn":"arn:aws:config:us-east-1:0123456789012:config-rule/config-rule-i9y8j9", - "configRuleName":"MyRule", - "configRuleId":"config-rule-i9y8j9", - "accountId":"0123456789012", - "evaluationMode":"DETECTIVE" - } diff --git a/examples/event_sources/src/aws_config_rule_oversized.json b/examples/event_sources/src/aws_config_rule_oversized.json deleted file mode 100644 index 5eaef4e0015..00000000000 --- a/examples/event_sources/src/aws_config_rule_oversized.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "invokingEvent": "{\"configurationItemSummary\": {\"changeType\": \"UPDATE\",\"configurationItemVersion\": \"1.2\",\"configurationItemCaptureTime\":\"2016-10-06T16:46:16.261Z\",\"configurationStateId\": 0,\"awsAccountId\":\"123456789012\",\"configurationItemStatus\": \"OK\",\"resourceType\": \"AWS::EC2::Instance\",\"resourceId\":\"i-00000000\",\"resourceName\":null,\"ARN\":\"arn:aws:ec2:us-west-2:123456789012:instance/i-00000000\",\"awsRegion\": \"us-west-2\",\"availabilityZone\":\"us-west-2a\",\"configurationStateMd5Hash\":\"8f1ee69b287895a0f8bc5753eca68e96\",\"resourceCreationTime\":\"2016-10-06T16:46:10.489Z\"},\"messageType\":\"OversizedConfigurationItemChangeNotification\", \"notificationCreationTime\": \"2016-10-06T16:46:16.261Z\", \"recordVersion\": \"1.0\"}", - "ruleParameters": "{\"myParameterKey\":\"myParameterValue\"}", - "resultToken": "myResultToken", - "eventLeftScope": false, - "executionRoleArn": "arn:aws:iam::123456789012:role/config-role", - "configRuleArn": "arn:aws:config:us-east-2:123456789012:config-rule/config-rule-ec2-managed-instance-inventory", - "configRuleName": "change-triggered-config-rule", - "configRuleId": "config-rule-0123456", - "accountId": "123456789012", - "version": "1.0" -} diff --git a/examples/event_sources/src/cloudWatchDashboard.py b/examples/event_sources/src/cloudWatchDashboard.py index f1c806fd84c..ff8b896a806 100644 --- a/examples/event_sources/src/cloudWatchDashboard.py +++ b/examples/event_sources/src/cloudWatchDashboard.py @@ -6,19 +6,26 @@ @event_source(data_class=CloudWatchDashboardCustomWidgetEvent) def lambda_handler(event: CloudWatchDashboardCustomWidgetEvent, context): + if event.widget_context is None: + logger.warning("No widget context provided") + return {"title": "Error", "markdown": "Widget context is missing"} + logger.info(f"Processing custom widget for dashboard: {event.widget_context.dashboard_name}") # Access specific event properties widget_id = event.widget_context.widget_id - time_range_start = event.widget_context.time_range.start - time_range_end = event.widget_context.time_range.end + time_range = event.widget_context.time_range + + if time_range is None: + logger.warning("No time range provided") + return {"title": f"Custom Widget {widget_id}", "markdown": "Time range is missing"} # Your custom widget logic here return { "title": f"Custom Widget {widget_id}", "markdown": f""" Dashboard: {event.widget_context.dashboard_name} - Time Range: {time_range_start} to {time_range_end} - Theme: {event.widget_context.theme} + Time Range: {time_range.start} to {time_range.end} + Theme: {event.widget_context.theme or 'default'} """, } diff --git a/examples/event_sources/src/codedeploy_lifecycle_hook.py b/examples/event_sources/src/codedeploy_lifecycle_hook.py index 862dc75de8b..6da54d185fc 100644 --- a/examples/event_sources/src/codedeploy_lifecycle_hook.py +++ b/examples/event_sources/src/codedeploy_lifecycle_hook.py @@ -2,7 +2,7 @@ @event_source(data_class=CodeDeployLifecycleHookEvent) -def lambda_handler(event: CodeDeployLifecycleHookEvent, context) -> None: +def lambda_handler(event: CodeDeployLifecycleHookEvent, context): deployment_id = event.deployment_id lifecycle_event_hook_execution_id = event.lifecycle_event_hook_execution_id diff --git a/examples/event_sources/src/cognito_define_auth.py b/examples/event_sources/src/cognito_define_auth.py index 5ca425de0f9..2f7d197bb26 100644 --- a/examples/event_sources/src/cognito_define_auth.py +++ b/examples/event_sources/src/cognito_define_auth.py @@ -1,29 +1,30 @@ from aws_lambda_powertools.utilities.data_classes.cognito_user_pool_event import DefineAuthChallengeTriggerEvent -def lambda_handler(event: dict, context) -> dict: - event: DefineAuthChallengeTriggerEvent = DefineAuthChallengeTriggerEvent(event) - if len(event.request.session) == 1 and event.request.session[0].challenge_name == "SRP_A": - event.response.issue_tokens = False - event.response.fail_authentication = False - event.response.challenge_name = "PASSWORD_VERIFIER" +def lambda_handler(event, context) -> dict: + event_obj: DefineAuthChallengeTriggerEvent = DefineAuthChallengeTriggerEvent(event) + + if len(event_obj.request.session) == 1 and event_obj.request.session[0].challenge_name == "SRP_A": + event_obj.response.issue_tokens = False + event_obj.response.fail_authentication = False + event_obj.response.challenge_name = "PASSWORD_VERIFIER" elif ( - len(event.request.session) == 2 - and event.request.session[1].challenge_name == "PASSWORD_VERIFIER" - and event.request.session[1].challenge_result + len(event_obj.request.session) == 2 + and event_obj.request.session[1].challenge_name == "PASSWORD_VERIFIER" + and event_obj.request.session[1].challenge_result ): - event.response.issue_tokens = False - event.response.fail_authentication = False - event.response.challenge_name = "CUSTOM_CHALLENGE" + event_obj.response.issue_tokens = False + event_obj.response.fail_authentication = False + event_obj.response.challenge_name = "CUSTOM_CHALLENGE" elif ( - len(event.request.session) == 3 - and event.request.session[2].challenge_name == "CUSTOM_CHALLENGE" - and event.request.session[2].challenge_result + len(event_obj.request.session) == 3 + and event_obj.request.session[2].challenge_name == "CUSTOM_CHALLENGE" + and event_obj.request.session[2].challenge_result ): - event.response.issue_tokens = True - event.response.fail_authentication = False + event_obj.response.issue_tokens = True + event_obj.response.fail_authentication = False else: - event.response.issue_tokens = False - event.response.fail_authentication = True + event_obj.response.issue_tokens = False + event_obj.response.fail_authentication = True - return event.raw_event + return event_obj.raw_event diff --git a/examples/event_sources/src/dynamodb_multiple_records.py b/examples/event_sources/src/dynamodb_multiple_records.py index ebc216e4da2..8436dcfc827 100644 --- a/examples/event_sources/src/dynamodb_multiple_records.py +++ b/examples/event_sources/src/dynamodb_multiple_records.py @@ -4,7 +4,10 @@ @event_source(data_class=DynamoDBStreamEvent) def lambda_handler(event: DynamoDBStreamEvent, context: LambdaContext): + processed_keys = [] for record in event.records: - # {"N": "123.45"} => Decimal("123.45") - key: str = record.dynamodb.keys["Id"] - return {"statusCode": 200, "body": f"Key:, {key}!"} + if record.dynamodb and record.dynamodb.keys and "Id" in record.dynamodb.keys: + key = record.dynamodb.keys["Id"] + processed_keys.append(key) + + return {"statusCode": 200, "body": f"Processed keys: {processed_keys}"} diff --git a/examples/event_sources/src/kafka_event.py b/examples/event_sources/src/kafka_event.py index 93568931eb6..c6f62e243eb 100644 --- a/examples/event_sources/src/kafka_event.py +++ b/examples/event_sources/src/kafka_event.py @@ -1,7 +1,7 @@ from aws_lambda_powertools.utilities.data_classes import KafkaEvent, event_source -def do_something_with(key: bytes, value: dict): +def do_something_with(key: str, value: str): print(f"key: {key}, value: {value}") diff --git a/examples/event_sources/src/kinesis_streams.py b/examples/event_sources/src/kinesis_streams.py index 195f6ae565a..630190c5807 100644 --- a/examples/event_sources/src/kinesis_streams.py +++ b/examples/event_sources/src/kinesis_streams.py @@ -1,4 +1,5 @@ import json +from typing import Any, Dict, Union from aws_lambda_powertools import Logger from aws_lambda_powertools.utilities.data_classes import KinesisStreamEvent, event_source @@ -12,21 +13,23 @@ def lambda_handler(event: KinesisStreamEvent, context: LambdaContext): for record in event.records: kinesis_record = record.kinesis + payload: Union[Dict[str, Any], str] + try: - # First, try to parse the data as JSON - data = kinesis_record.data_as_json() + # Try to parse as JSON first + payload = kinesis_record.data_as_json() logger.info("Received JSON data from Kinesis") except json.JSONDecodeError: - # If JSON parsing fails, treat it as text - data = kinesis_record.data_as_text() + # If JSON parsing fails, get as text + payload = kinesis_record.data_as_text() logger.info("Received text data from Kinesis") - process_data(data) + process_data(payload) return {"statusCode": 200, "body": "Processed all records successfully"} -def process_data(data): +def process_data(data: Union[Dict[str, Any], str]) -> None: if isinstance(data, dict): # Handle JSON data logger.info(f"Processing JSON data: {data}") diff --git a/examples/event_sources/src/secrets_manager_event.json b/examples/event_sources/src/secrets_manager_event.json deleted file mode 100644 index 18e7dcd935b..00000000000 --- a/examples/event_sources/src/secrets_manager_event.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "SecretId":"arn:aws:secretsmanager:us-west-2:123456789012:secret:MyTestDatabaseSecret-a1b2c3", - "ClientRequestToken":"550e8400-e29b-41d4-a716-446655440000", - "Step":"createSecret" -} From 69ed1995869f5ccf02f5d239e6752af70945c7f9 Mon Sep 17 00:00:00 2001 From: Ana Falcao <afalcao@amazon.com> Date: Fri, 24 Jan 2025 17:15:27 -0300 Subject: [PATCH 7/7] fix highlight kinesis event --- docs/utilities/data_classes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/utilities/data_classes.md b/docs/utilities/data_classes.md index 6095c83c47d..2574d119acd 100644 --- a/docs/utilities/data_classes.md +++ b/docs/utilities/data_classes.md @@ -559,7 +559,7 @@ or plain text, depending on the original payload. === "app.py" - ```python hl_lines="4 10" + ```python hl_lines="4 11" --8<-- "examples/event_sources/src/kinesis_streams.py" ```