From d0e9b90158903833b6279d2068605b35df53d34d Mon Sep 17 00:00:00 2001 From: ronfoerster Date: Thu, 6 Nov 2025 16:01:34 +0100 Subject: [PATCH] feat(python): add state machine to collect metrics for dashboard * update the hard-coded Python-Version for the Lambda Function * Lambda Function code is now inline * uv-ready with pyproject.toml * new Stack: StepFunction state machine to automatically collect metrics for the dashboard * python code ruff formated --- python/lambda-cloudwatch-dashboard/README.md | 94 +++++------- python/lambda-cloudwatch-dashboard/app.py | 15 +- python/lambda-cloudwatch-dashboard/cdk.json | 116 +++++++++++++- .../img/sample_cloudwatch_dashboard.jpg | Bin 0 -> 83182 bytes .../img/sample_cloudwatch_dashboard.png | Bin 81651 -> 0 bytes .../lambda/lambda-handler.py | 8 - .../lambda_cloudwatch_dashboard_stack.py | 145 ++++++++++++------ .../stepfunctions_invoker_stack.py | 99 ++++++++++++ .../pyproject.toml | 45 ++++++ .../requirements.txt | 5 +- python/lambda-cloudwatch-dashboard/setup.py | 41 ----- 11 files changed, 407 insertions(+), 161 deletions(-) create mode 100644 python/lambda-cloudwatch-dashboard/img/sample_cloudwatch_dashboard.jpg delete mode 100644 python/lambda-cloudwatch-dashboard/img/sample_cloudwatch_dashboard.png delete mode 100644 python/lambda-cloudwatch-dashboard/lambda/lambda-handler.py create mode 100644 python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/stepfunctions_invoker_stack.py create mode 100644 python/lambda-cloudwatch-dashboard/pyproject.toml delete mode 100644 python/lambda-cloudwatch-dashboard/setup.py diff --git a/python/lambda-cloudwatch-dashboard/README.md b/python/lambda-cloudwatch-dashboard/README.md index fdd3e091f7..bc9a5997d5 100644 --- a/python/lambda-cloudwatch-dashboard/README.md +++ b/python/lambda-cloudwatch-dashboard/README.md @@ -7,49 +7,66 @@ CloudWatch dashboards are used to create customized views of the metrics and ala This CDK sample uses an AWS Lambda Function, as an example, for the source of CloudWatch metrics. This approach can used with AWS Services that create [CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/working_with_metrics.html) or even [Custom CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html) that you publish yourself. -The following resources are defined in the CDK Stack: -- [AWS Lambda Function](https://aws.amazon.com/lambda/) +The following resources are defined in the main CDK Stack: - [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) +- [AWS Lambda Function](https://aws.amazon.com/lambda/) + +To automatically trigger the Lambda Function we use an +[AWS StepFunctions](https://aws.amazon.com/step-functions/), started after provisioning by a Custom Resource(another Lambda Function). -After deploying solution, you will have created a CloudWatch Dashboard, like the one shown below: +After deploying the CDK Stacks the StepFunctions state machine will run 20+ minutes to generate sample metrics. + +In CloudWatch you see the provisioned dashboard, like the one shown below: ![Sample Dashboard](img/sample_cloudwatch_dashboard.png) ---- -### Requirements: +## Setup + +This project is set up like a standard Python project. -- git -- npm (node.js) -- python 3.x -- AWS access key & secret for AWS user with permissions to create resources listed above +## Use uv +Create a virtualenv and install all dependencies +``` +uv sync +``` +At this point you can now synthesize the CloudFormation template for this code. +``` +uv run cdk synth +``` +Or simple proceed to deployment of the stack. +``` +uv run cdk deploy --all +``` ---- +### View CloudWatch Dashboard -## Setup +1) Sign in to the AWS Console +2) Navigate to the URL in this CDK Stack Output: `LambdaCloudwatchDashboardStack.DashboardOutput` +3) Please note, the metrics are aggregated for a period of 5 minutes before being displayed on the Dashboard. The value of the period can be configured, please see the [CDK documentation](https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_cloudwatch/MetricProps.html) for further details. -This project is set up like a standard Python project. The initialization process also creates -a virtualenv within this project, stored under the .env directory. To create the virtualenv -it assumes that there is a `python3` executable in your path with access to the `venv` package. -If for any reason the automatic creation of the virtualenv fails, you can create the virtualenv -manually once the init process completes. +To clean up, issue this command: +``` +uv run cdk destroy --all +``` +## Or use the default deployment To manually create a virtualenv on MacOS and Linux: ``` -$ python3 -m venv .env +$ python3 -m venv .venv ``` After the init process completes and the virtualenv is created, you can use the following step to activate your virtualenv. ``` -$ source .env/bin/activate +$ source .venv/bin/activate ``` If you are a Windows platform, you would activate the virtualenv like this: ``` -$ .env\Scripts\activate.bat +% .venv\Scripts\activate.bat ``` Once the virtualenv is activated, you can install the required dependencies. @@ -58,15 +75,6 @@ Once the virtualenv is activated, you can install the required dependencies. $ pip install -r requirements.txt ``` - -Install the latest version of the AWS CDK CLI: - -``` -$ npm i -g aws-cdk -``` - -## Deployment - At this point you can now synthesize the CloudFormation template for this code. ``` cdk synth @@ -76,36 +84,8 @@ Or simple proceed to deployment of the stack. ``` cdk deploy ``` - -## Test - -### Invoke Lambda Function -In order to generate some metrics, you can invoke the sample Lambda Function: - -Replace `` with the value of this CDK Stack Output: `LambdaCloudwatchDashboardStack.LambdaName` -``` -aws lambda invoke --function-name text_output.txt -``` - -### View CloudWatch Dashboard - -1) Sign into to the AWS Console -2) Navigate to the URL in this CDK Stack Output: `LambdaCloudwatchDashboardStack.DashboardOutput` -3) Please note, the metrics are aggregated for a period of 5 minutes before being displayed on the Dashboard. The value of the period can be configured, please see the [CDK documentation](https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_cloudwatch/MetricProps.html) for further details. - - ## Clean Up To clean up, issue this command: ``` cdk destroy -``` - -## Useful commands - - * `cdk ls` list all stacks in the app - * `cdk synth` emits the synthesized CloudFormation template - * `cdk deploy` deploy this stack to your default AWS account/region - * `cdk diff` compare deployed stack with current state - * `cdk docs` open CDK documentation - -Enjoy! +``` \ No newline at end of file diff --git a/python/lambda-cloudwatch-dashboard/app.py b/python/lambda-cloudwatch-dashboard/app.py index b445fc86c9..5df36690ba 100644 --- a/python/lambda-cloudwatch-dashboard/app.py +++ b/python/lambda-cloudwatch-dashboard/app.py @@ -1,8 +1,19 @@ #!/usr/bin/env python3 + from aws_cdk import App -from lambda_cloudwatch_dashboard.lambda_cloudwatch_dashboard_stack import LambdaCloudwatchDashboardStack +from lambda_cloudwatch_dashboard.lambda_cloudwatch_dashboard_stack import ( + LambdaCloudwatchDashboardStack, +) +from lambda_cloudwatch_dashboard.stepfunctions_invoker_stack import ( + StepfunctionsInvokerStack, +) app = App() -LambdaCloudwatchDashboardStack(app, "LambdaCloudwatchDashboardStack") + +lambdastack = LambdaCloudwatchDashboardStack(app, "LambdaCloudwatchDashboardStack") + +stepfunctionsstack = StepfunctionsInvokerStack(app, "StepfunctionsInvokerStack") +stepfunctionsstack.add_dependency(lambdastack) + app.synth() diff --git a/python/lambda-cloudwatch-dashboard/cdk.json b/python/lambda-cloudwatch-dashboard/cdk.json index b4baa10225..9a4d3ad109 100644 --- a/python/lambda-cloudwatch-dashboard/cdk.json +++ b/python/lambda-cloudwatch-dashboard/cdk.json @@ -1,3 +1,117 @@ { - "app": "python3 app.py" + "app": "python3 app.py", + "staging": "false", + "watch": { + "include": [ + "**" + ], + "exclude": [ + "README.md", + "cdk*.json", + "pyproject.toml", + "requirements*.txt", + "source.bat", + "**/__init__.py", + "**/__pycache__", + "tests" + ] + }, + "context": { + "@aws-cdk/aws-signer:signingProfileNamePassedToCfn": true, + "@aws-cdk/aws-ecs-patterns:secGroupsDisablesImplicitOpenListener": true, + "@aws-cdk/aws-lambda:recognizeLayerVersion": true, + "@aws-cdk/core:checkSecretUsage": true, + "@aws-cdk/core:target-partitions": [ + "aws", + "aws-cn" + ], + "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true, + "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true, + "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true, + "@aws-cdk/aws-iam:minimizePolicies": true, + "@aws-cdk/core:validateSnapshotRemovalPolicy": true, + "@aws-cdk/aws-codepipeline:crossAccountKeyAliasStackSafeResourceName": true, + "@aws-cdk/aws-s3:createDefaultLoggingPolicy": true, + "@aws-cdk/aws-sns-subscriptions:restrictSqsDescryption": true, + "@aws-cdk/aws-apigateway:disableCloudWatchRole": true, + "@aws-cdk/core:enablePartitionLiterals": true, + "@aws-cdk/aws-events:eventsTargetQueueSameAccount": true, + "@aws-cdk/aws-ecs:disableExplicitDeploymentControllerForCircuitBreaker": true, + "@aws-cdk/aws-iam:importedRoleStackSafeDefaultPolicyName": true, + "@aws-cdk/aws-s3:serverAccessLogsUseBucketPolicy": true, + "@aws-cdk/aws-route53-patters:useCertificate": true, + "@aws-cdk/customresources:installLatestAwsSdkDefault": false, + "@aws-cdk/aws-rds:databaseProxyUniqueResourceName": true, + "@aws-cdk/aws-codedeploy:removeAlarmsFromDeploymentGroup": true, + "@aws-cdk/aws-apigateway:authorizerChangeDeploymentLogicalId": true, + "@aws-cdk/aws-ec2:launchTemplateDefaultUserData": true, + "@aws-cdk/aws-secretsmanager:useAttachedSecretResourcePolicyForSecretTargetAttachments": true, + "@aws-cdk/aws-redshift:columnId": true, + "@aws-cdk/aws-stepfunctions-tasks:enableEmrServicePolicyV2": true, + "@aws-cdk/aws-ec2:restrictDefaultSecurityGroup": true, + "@aws-cdk/aws-apigateway:requestValidatorUniqueId": true, + "@aws-cdk/aws-kms:aliasNameRef": true, + "@aws-cdk/aws-kms:applyImportedAliasPermissionsToPrincipal": true, + "@aws-cdk/aws-autoscaling:generateLaunchTemplateInsteadOfLaunchConfig": true, + "@aws-cdk/core:includePrefixInUniqueNameGeneration": true, + "@aws-cdk/aws-efs:denyAnonymousAccess": true, + "@aws-cdk/aws-opensearchservice:enableOpensearchMultiAzWithStandby": true, + "@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion": true, + "@aws-cdk/aws-efs:mountTargetOrderInsensitiveLogicalId": true, + "@aws-cdk/aws-rds:auroraClusterChangeScopeOfInstanceParameterGroupWithEachParameters": true, + "@aws-cdk/aws-appsync:useArnForSourceApiAssociationIdentifier": true, + "@aws-cdk/aws-rds:preventRenderingDeprecatedCredentials": true, + "@aws-cdk/aws-codepipeline-actions:useNewDefaultBranchForCodeCommitSource": true, + "@aws-cdk/aws-cloudwatch-actions:changeLambdaPermissionLogicalIdForLambdaAction": true, + "@aws-cdk/aws-codepipeline:crossAccountKeysDefaultValueToFalse": true, + "@aws-cdk/aws-codepipeline:defaultPipelineTypeToV2": true, + "@aws-cdk/aws-kms:reduceCrossAccountRegionPolicyScope": true, + "@aws-cdk/aws-eks:nodegroupNameAttribute": true, + "@aws-cdk/aws-ec2:ebsDefaultGp3Volume": true, + "@aws-cdk/aws-ecs:removeDefaultDeploymentAlarm": true, + "@aws-cdk/custom-resources:logApiResponseDataPropertyTrueDefault": false, + "@aws-cdk/aws-s3:keepNotificationInImportedBucket": false, + "@aws-cdk/core:explicitStackTags": true, + "@aws-cdk/aws-ecs:enableImdsBlockingDeprecatedFeature": false, + "@aws-cdk/aws-ecs:disableEcsImdsBlocking": true, + "@aws-cdk/aws-ecs:reduceEc2FargateCloudWatchPermissions": true, + "@aws-cdk/aws-dynamodb:resourcePolicyPerReplica": true, + "@aws-cdk/aws-ec2:ec2SumTImeoutEnabled": true, + "@aws-cdk/aws-appsync:appSyncGraphQLAPIScopeLambdaPermission": true, + "@aws-cdk/aws-rds:setCorrectValueForDatabaseInstanceReadReplicaInstanceResourceId": true, + "@aws-cdk/core:cfnIncludeRejectComplexResourceUpdateCreatePolicyIntrinsics": true, + "@aws-cdk/aws-lambda-nodejs:sdkV3ExcludeSmithyPackages": true, + "@aws-cdk/aws-stepfunctions-tasks:fixRunEcsTaskPolicy": true, + "@aws-cdk/aws-ec2:bastionHostUseAmazonLinux2023ByDefault": true, + "@aws-cdk/aws-route53-targets:userPoolDomainNameMethodWithoutCustomResource": true, + "@aws-cdk/aws-elasticloadbalancingV2:albDualstackWithoutPublicIpv4SecurityGroupRulesDefault": true, + "@aws-cdk/aws-iam:oidcRejectUnauthorizedConnections": true, + "@aws-cdk/core:enableAdditionalMetadataCollection": true, + "@aws-cdk/aws-lambda:createNewPoliciesWithAddToRolePolicy": false, + "@aws-cdk/aws-s3:setUniqueReplicationRoleName": true, + "@aws-cdk/aws-events:requireEventBusPolicySid": true, + "@aws-cdk/core:aspectPrioritiesMutating": true, + "@aws-cdk/aws-dynamodb:retainTableReplica": true, + "@aws-cdk/aws-stepfunctions:useDistributedMapResultWriterV2": true, + "@aws-cdk/s3-notifications:addS3TrustKeyPolicyForSnsSubscriptions": true, + "@aws-cdk/aws-ec2:requirePrivateSubnetsForEgressOnlyInternetGateway": true, + "@aws-cdk/aws-s3:publicAccessBlockedByDefault": true, + "@aws-cdk/aws-lambda:useCdkManagedLogGroup": true, + "@aws-cdk/core:newStyleStackSynthesis": true, + "@aws-cdk/core:stackRelativeExports": true, + "@aws-cdk/aws-rds:lowercaseDbIdentifier": true, + "@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": true, + "@aws-cdk/aws-lambda:recognizeVersionProps": true, + "@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": true, + "@aws-cdk/pipelines:reduceAssetRoleTrustScope": true, + "@aws-cdk/aws-stepfunctions-tasks:useNewS3UriParametersForBedrockInvokeModelTask": true, + "@aws-cdk/core:aspectStabilization": true, + "@aws-cdk/pipelines:reduceStageRoleTrustScope": true, + "@aws-cdk/cognito:logUserPoolClientSecretValue": false, + "@aws-cdk/pipelines:reduceCrossAccountActionRoleTrustScope": true, + "@aws-cdk/aws-ec2-alpha:useResourceIdForVpcV2Migration": false, + "@aws-cdk/aws-elasticloadbalancingv2:networkLoadBalancerWithSecurityGroupByDefault": true, + "@aws-cdk/aws-stepfunctions-tasks:httpInvokeDynamicJsonPathEndpoint": true, + "@aws-cdk/aws-ecs-patterns:uniqueTargetGroupId": true + } } diff --git a/python/lambda-cloudwatch-dashboard/img/sample_cloudwatch_dashboard.jpg b/python/lambda-cloudwatch-dashboard/img/sample_cloudwatch_dashboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a9b67d3e0711702a751f240b758726b2ecb1e32c GIT binary patch literal 83182 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 literal 0 HcmV?d00001 diff --git a/python/lambda-cloudwatch-dashboard/img/sample_cloudwatch_dashboard.png b/python/lambda-cloudwatch-dashboard/img/sample_cloudwatch_dashboard.png deleted file mode 100644 index 2c3d1e1d4abfb9f9285e207d2be200f0c4223bc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81651 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 TVzoQ~{;ug6U&*^<`{;iFb;kXh diff --git a/python/lambda-cloudwatch-dashboard/lambda/lambda-handler.py b/python/lambda-cloudwatch-dashboard/lambda/lambda-handler.py deleted file mode 100644 index 767cef268b..0000000000 --- a/python/lambda-cloudwatch-dashboard/lambda/lambda-handler.py +++ /dev/null @@ -1,8 +0,0 @@ -def main(event, context): - # save event to logs - print(event) - - return { - 'statusCode': 200, - 'body': event - } diff --git a/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/lambda_cloudwatch_dashboard_stack.py b/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/lambda_cloudwatch_dashboard_stack.py index 7b1fa58e61..9f34031bb6 100644 --- a/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/lambda_cloudwatch_dashboard_stack.py +++ b/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/lambda_cloudwatch_dashboard_stack.py @@ -1,81 +1,128 @@ -from aws_cdk import ( - Aws, CfnOutput, Stack, - aws_lambda, - aws_cloudwatch, - aws_iam -) +from aws_cdk import Aws, CfnOutput, Duration, Stack, aws_cloudwatch, aws_iam, aws_lambda from constructs import Construct -class LambdaCloudwatchDashboardStack(Stack): +class LambdaCloudwatchDashboardStack(Stack): def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: super().__init__(scope, construct_id, **kwargs) example_dashboard_name = "ExampleLambdaDashboard" + # Lambda function Code + lambda_inline_code = """ +import time +import random + +def lambda_handler(event, context): + print(event) # save event to logs + time.sleep(random.uniform(3, 8)) # simulate work + if random.uniform(0, 1) < 0.1: # simulate error + raise ValueError("Random error") + return { + "statusCode": 200, + "body": "OK" + } +""" # Create Example Lambda function - lambda_function = aws_lambda.Function(self, "lambda_function", - runtime=aws_lambda.Runtime.PYTHON_3_7, - handler="lambda-handler.main", - code=aws_lambda.Code.from_asset("./lambda")) + lambda_function = aws_lambda.Function( + self, + "lambda_function", + runtime=aws_lambda.Runtime.PYTHON_3_13, + handler="index.lambda_handler", + code=aws_lambda.Code.from_inline(lambda_inline_code), + reserved_concurrent_executions=4, + timeout=Duration.seconds(12), + ) assert lambda_function.role is not None lambda_function.role.add_managed_policy( - aws_iam.ManagedPolicy.from_aws_managed_policy_name("service-role/AWSLambdaBasicExecutionRole") + aws_iam.ManagedPolicy.from_aws_managed_policy_name( + "service-role/AWSLambdaBasicExecutionRole" + ) ) # Create CloudWatch Dashboard to view Lambda Function Metrics - cw_dashboard = aws_cloudwatch.Dashboard(self, "Lambda Dashboard", - dashboard_name=example_dashboard_name + cw_dashboard = aws_cloudwatch.Dashboard( + self, "Lambda Dashboard", dashboard_name=example_dashboard_name ) # CloudWatch Dashboard Title title_widget = aws_cloudwatch.TextWidget( - markdown="# Dashboard: {}".format(lambda_function.function_name), - height=1, - width=24 + markdown=f"# Dashboard: {lambda_function.function_name}", height=1, width=24 + ) + # Create Widgets for CloudWatch Dashboard + # based on Lambda Function's CloudWatch Metrics + invocations_widget = aws_cloudwatch.GraphWidget( + title="Invocations", + left=[ + lambda_function.metric_invocations( + statistic="sum", period=Duration.minutes(1) + ) + ], + width=8, + height=6, ) - # Create Widgets for CloudWatch Dashboard based on Lambda Function's CloudWatch Metrics - invocations_widget = aws_cloudwatch.GraphWidget(title= "Invocations", - left=[lambda_function.metric_invocations()], - width=24) - - errors_widget = aws_cloudwatch.GraphWidget(title= "Errors", - left=[lambda_function.metric_errors()], - width=24) - duration_widget = aws_cloudwatch.GraphWidget(title= "Duration", + duration_widget = aws_cloudwatch.GraphWidget( + title="Duration", left=[lambda_function.metric_duration()], - width=24) + width=8, + height=6, + ) - throttles_widget = aws_cloudwatch.GraphWidget(title= "Throttles", + throttles_widget = aws_cloudwatch.GraphWidget( + title="Throttles", left=[lambda_function.metric_throttles()], - width=24) + width=8, + height=6, + ) + + errors_widget = aws_cloudwatch.GraphWidget( + title="Errors", + left=[ + lambda_function.metric_errors( + statistic="sum", period=Duration.minutes(1) + ) + ], + width=8, + height=6, + ) # Create Widget to show last 20 Log Entries - log_widget = aws_cloudwatch.LogQueryWidget(log_group_names=[lambda_function.log_group.log_group_name], - query_lines=["fields @timestamp, @message", "sort @timestamp desc", "limit 20"], width=24) + log_widget = aws_cloudwatch.LogQueryWidget( + log_group_names=[lambda_function.log_group.log_group_name], + query_lines=[ + "fields @timestamp, @message", + "sort @timestamp desc", + "limit 20", + ], + width=16, + height=6, + ) # Add Widgets to CloudWatch Dashboard - cw_dashboard.add_widgets(title_widget, - invocations_widget, - errors_widget, - duration_widget, - throttles_widget, - log_widget) + cw_dashboard.add_widgets( + title_widget, + invocations_widget, + errors_widget, + duration_widget, + throttles_widget, + log_widget, + ) # Output Dashboard URL - cloudwatch_dasboard_url = 'https://{}.console.aws.amazon.com/cloudwatch/home?region={}#dashboards:name={}'.format( - Aws.REGION, - Aws.REGION, - example_dashboard_name - ) - CfnOutput(self,"DashboardOutput", + cloudwatch_dasboard_url = f"https://{Aws.REGION}.console.aws.amazon.com/cloudwatch/home?region={Aws.REGION}#dashboards:name={example_dashboard_name}" + CfnOutput( + self, + "DashboardOutput", value=cloudwatch_dasboard_url, description="URL of Sample CloudWatch Dashboard", - export_name="SampleCloudWatchDashboardURL") - - CfnOutput(self,"LambdaName", - value=lambda_function.function_name, - description="Name of the sample Lambda Function", - export_name="LambdaName") + export_name="SampleCloudWatchDashboardURL", + ) + CfnOutput( + self, + "LambdaARN", + value=lambda_function.function_arn, + description="ARN of the sample Lambda Function", + export_name="CloudwatchDashboardLambdaARN", + ) diff --git a/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/stepfunctions_invoker_stack.py b/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/stepfunctions_invoker_stack.py new file mode 100644 index 0000000000..804d58142c --- /dev/null +++ b/python/lambda-cloudwatch-dashboard/lambda_cloudwatch_dashboard/stepfunctions_invoker_stack.py @@ -0,0 +1,99 @@ +from aws_cdk import ( + Duration, + Fn, + Stack, +) +from aws_cdk import ( + aws_lambda as _lambda, +) +from aws_cdk import ( + aws_stepfunctions as sfn, +) +from aws_cdk import ( + aws_stepfunctions_tasks as sfn_tasks, +) +from aws_cdk import ( + custom_resources as cr, +) +from constructs import Construct + + +class StepfunctionsInvokerStack(Stack): + def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None: + super().__init__(scope, construct_id, **kwargs) + + lambda_arn = Fn.import_value("CloudwatchDashboardLambdaARN") + target_lambda = _lambda.Function.from_function_arn( + self, "ImportedTargetFunction", function_arn=lambda_arn + ) + generate_array = sfn.Pass( + self, "GenerateArray", result=sfn.Result.from_array(list(range(1, 41))) + ) + + invoke_target_lambda_task = sfn_tasks.LambdaInvoke( + self, + "InvokeTargetLambda", + lambda_function=target_lambda, + retry_on_service_exceptions=False, + ).add_retry( + errors=[ + "Lambda.ClientExecutionTimeoutException", + "Lambda.ServiceException", + "Lambda.AWSLambdaException", + "Lambda.SdkClientException", + "ValueError", + ], + interval=Duration.seconds(5), + max_attempts=5, + backoff_rate=2.0, + ) + + wait_task = sfn.Wait( + self, "WaitAfterLambda", time=sfn.WaitTime.duration(Duration.seconds(120)) + ) + lambda_invoker_map = sfn.Map( + self, + "LambdaInvoker40PerMinute", + items_path=sfn.JsonPath.string_at("$"), + item_selector={ + "iteration_index": sfn.JsonPath.string_at("$$.Map.Item.Index"), + "item_value": sfn.JsonPath.string_at("$$.Map.Item.Value"), + }, + max_concurrency=4, + ) + # lambda_invoker_map.item_processor(invoke_target_lambda_task) + lambda_invoker_map.item_processor(invoke_target_lambda_task.next(wait_task)) + + definition = sfn.DefinitionBody.from_chainable( + generate_array.next(lambda_invoker_map) + ) + state_machine = sfn.StateMachine( + self, + "LambdaInvokerStateMachine", + comment="Lambda Invoker - Call Lambda 40 times", + definition_body=definition, + ) + target_lambda.grant_invoke(state_machine.role) + + # Custom resource to start Step Functions execution + start_execution = cr.AwsCustomResource( + self, + "StartStepFunctionsExecution", + on_create=cr.AwsSdkCall( + service="StepFunctions", + action="startExecution", + parameters={ + "stateMachineArn": state_machine.state_machine_arn, + "input": "{}", + }, + physical_resource_id=cr.PhysicalResourceId.from_response( + "executionArn" + ), + ), + policy=cr.AwsCustomResourcePolicy.from_sdk_calls( + resources=[state_machine.state_machine_arn] + ), + ) + + # Ensure the custom resource runs after the state machine is created + start_execution.node.add_dependency(state_machine) diff --git a/python/lambda-cloudwatch-dashboard/pyproject.toml b/python/lambda-cloudwatch-dashboard/pyproject.toml new file mode 100644 index 0000000000..ac44ba12cf --- /dev/null +++ b/python/lambda-cloudwatch-dashboard/pyproject.toml @@ -0,0 +1,45 @@ +[project] +name = "Lambda-CloudWatch-Dashboard" +version = "0.0.2" +description = "CloudWatch Dashboard Sample" +readme = "README.md" +dependencies = [ + "aws-cdk-lib>=2.0.0,<3", + "constructs>=10.0.0,<11" +] +requires-python = ">=3.9,<4" +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "License :: OSI Approved :: Apache Software License", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", + "Topic :: Software Development :: Code Generators", + "Topic :: Utilities", + "Typing :: Typed", +] + +[tool.ruff] +target-version = "py39" + +[tool.ruff.lint] +ignore = [] +select = [ + # pycodestyle + "E", + # Pyflakes + "F", + # pyupgrade + "UP", + # flake8-bugbear + "B", + # flake8-simplify + "SIM", + # isort + "I", +] \ No newline at end of file diff --git a/python/lambda-cloudwatch-dashboard/requirements.txt b/python/lambda-cloudwatch-dashboard/requirements.txt index 44a6c74166..bd8c62c2e5 100644 --- a/python/lambda-cloudwatch-dashboard/requirements.txt +++ b/python/lambda-cloudwatch-dashboard/requirements.txt @@ -1,3 +1,2 @@ -aws-cdk-lib>=2.0.0 -constructs>=10.0.0 -types-setuptools +aws-cdk-lib>=2.0.0,<3 +constructs>=10.0.0,<11 \ No newline at end of file diff --git a/python/lambda-cloudwatch-dashboard/setup.py b/python/lambda-cloudwatch-dashboard/setup.py deleted file mode 100644 index a19be5e9b7..0000000000 --- a/python/lambda-cloudwatch-dashboard/setup.py +++ /dev/null @@ -1,41 +0,0 @@ -import setuptools - - -with open("README.md") as fp: - long_description = fp.read() - - -setuptools.setup( - name="lambda_cloudwatch_dashboard", - version="0.0.1", - - description="CloudWatch Dashboard Sample", - long_description=long_description, - long_description_content_type="text/markdown", - - author="author", - - package_dir={"": "lambda_cloudwatch_dashboard"}, - packages=setuptools.find_packages(where="lambda_cloudwatch_dashboard"), - - python_requires=">=3.6", - - classifiers=[ - "Development Status :: 4 - Beta", - - "Intended Audience :: Developers", - - "License :: OSI Approved :: Apache Software License", - - "Programming Language :: JavaScript", - "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.6", - "Programming Language :: Python :: 3.7", - "Programming Language :: Python :: 3.8", - - "Topic :: Software Development :: Code Generators", - "Topic :: Utilities", - - "Typing :: Typed", - ], -)