From 42e2b67edb0cb0193101c855fb790cc95094c048 Mon Sep 17 00:00:00 2001 From: Anup Rajpara Date: Tue, 21 Jan 2025 23:19:17 +0000 Subject: [PATCH 1/5] Added functionality to replicate FSx for OpenZFS volumes across file systems located in the same account and region, or across different accounts and regions --- .../README.md | 119 ++++++++++ .../destination-template.yaml | 140 +++++++++++ .../example-pattern.json | 49 ++++ .../source-template.yaml | 222 ++++++++++++++++++ .../src/CopySnapshotAndUpdateVolume.py | 92 ++++++++ .../src/PeriodicReplication.py | 154 ++++++++++++ 6 files changed, 776 insertions(+) create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md new file mode 100644 index 000000000..c2e9689b3 --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md @@ -0,0 +1,119 @@ +Amazon EventBridge triggers an AWS Lambda function to replicate FSx for OpenZFS volumes across file systems located in the same account and region, or across different accounts and regions. + +The AWS SAM template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies the snapshot of a volume and transfers it to the target FSx system, which can be located in the same or a different AWS account and/or region. + +For FSx-OpenZFS periodic volume replication in same account and same region, please refer to the Serverless Land Pattern + +The template contains a sample Lambda function that creates a snapshot of the source FSx Volume ID. Once the snapshot becomes available, it invokes another Lambda function in the destination AWS account or region, which initiates the replication by calling the copy_snapshot_and_update_volume API. This solution also notifies users via an SNS topic of any errors and snapshot creation details. + +Important: this application uses various AWS services and there are costs associated with these services after the Free Tier usage - please see the [AWS Pricing page](https://aws.amazon.com/pricing/) for details. You are responsible for any AWS costs incurred. No warranty is implied in this example. + +## Requirements + +* [Create two AWS accounts for cross account setup](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) if you do not already have, create them and log in. The IAM user that you use must have sufficient permissions to make necessary AWS service calls and manage AWS resources. + +* [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) iinstalled and configure two profiles with credentials for the individual accounts as below: + + ``` + [default] + [crossaccount] + ``` + + +- [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) installed and configured +- [Git Installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +- [AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) (AWS SAM) installed +- Make sure that you have the ID of the source and destination volumes that you would like to initiate the replication between. For more information on these resources, see [Creating FSx for OpenZFS file systems](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/creating-file-systems.html), [Creating a volume](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/creating-volumes.html), [Creating a snapshot](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/snapshots-openzfs.html#creating-snapshots), and [Using on-demand data replication](https://docs.aws.amazon.com/fsx/latest/OpenZFSGuide/on-demand-replication.html#how-to-use-data-replication). + +## Deployment Instructions + +1. Create a new directory, navigate to that directory in a terminal and clone the GitHub repository: + ``` + git clone https://github.com/aws-samples/serverless-patterns + ``` +2. Change directory to the pattern directory: + ``` + cd eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication + ``` +3. From the command line, use the AWS SAM command listed below to deploy the AWS resources in the destination AWS account as specified in the destination-template.yaml file. Note that an AWS CLI profile named crossaccount must be configured with AWS credentials for the destination/target AWS account. + ``` + sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t destination-template.yaml --profile crossaccount + ``` +4. During the prompts: + + - Enter a target stack name + - Enter the desired AWS Region + - Enter a TargetVolumeID + - Enter a CopySnapshotAndUpdateVolume - "Options" parameter. Comma (,) separated values + - Enter a CopySnapshotAndUpdateVolume - "CopyStrategy" parameter (Default = INCREMENTAL_COPY) + - Enter Source AWS Acctount Id + - Allow SAM CLI to create IAM roles with the required permissions. + - Save arguments to configuration file [Y/n]: Y + - SAM configuration file [samconfig.toml]: + - SAM configuration environment [default]: crossacct + + Once you have run `sam deploy --guided` mode once and saved arguments to a configuration file, you can use `sam deploy` in future to use these defaults by adding `--config-env crossacct`. + + +5. Once the above stack is deployed in the target account/region, use the AWS SAM command listed below to deploy the resources in the source AWS account using the source-template.yaml file. + ``` + sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t source-template.yaml + ``` +6. During the prompts: + + - Enter a source stack name + - Enter the desired AWS Region + - Enter a SourceVolumeID + - Enter a CRON schedule for snapshots (Default = [0 0/6 * * ? *] every six hours) + - Enter a Value of snapshot Name (Default = fsx_scheduled_snapshot) + - Enter an Email for notifications + - Allow Success Notification (Default = Yes) + - Enter Number of days to retain custom-scheduled snapshots (Default = 7 days) + - Enter Target AWS Acctount Id + - Enter Target Region + - Enter Target stack name used previously + + Once you have run `sam deploy --guided` mode once and saved arguments to a configuration file, you can use `sam deploy` in future to use these defaults. + +7. Note the outputs from the previous SAM deploy commands. These contain the resource names and/or ARNs which will be used for later review. + +## How it works + +This pattern sets up the following resources: + +- An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by the customer to create snapshots of the provided FSx Source Volume ID. +- A sample [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) function that creates snapshots of the source FSx Volume ID and invokes another Lambda function in the destination AWS account and/or region, which will initiate the replication by calling the [CopySnapshotAndUpdateVolume](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CopySnapshotAndUpdateVolume.html) API. +- The function also deletes the older snapshots in the source and target AWS account/region based on the configured retention period. +- An SNS topic that sends notifications for any success or failure events while creating or replicating snapshots. + +## Testing + +1. Based on the provided schedule, monitor the CloudWatch logs and the FSx snapshots that are created. +2. The Lambda function will send various success and failure notifications to the configured email address via an SNS topic. + + +## Cleanup + + +1. Change directory to the pattern directory: + ``` + cd serverless-patterns/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication + ``` +2. Delete all created resources in same account. + ``` + sam delete --stack-name + ``` + +3. If API is deployed in cross account then run the same command again with the stackname that is deployed in different account along with --profile crossaccount + ``` + sam delete --stack-name --profile crossaccount --config-env crossacct + `````` +3. During the prompts: + * Enter all details as per requirement. + +--- + +Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. + +SPDX-License-Identifier: MIT-0 + diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml new file mode 100644 index 000000000..c81f5d854 --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml @@ -0,0 +1,140 @@ +AWSTemplateFormatVersion: "2010-09-09" + +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +# the Software, and to permit persons to whom the Software is furnished to do so. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Transform: AWS::Serverless-2016-10-31 +Description: > + Configure periodic replication schedule for your Amazon FSx for OpenZFS file system volumes. + +Parameters: + TargetVolumeID: + Description: Amazon FSx for OpenZFS Target Volume ID + Type: String + AllowedPattern: "^fsvol-[A-Za-z0-9]+" + + # CopySnapshotAndUpdateVolume - "Options" parameter. + # Comma (,) separated values such as "DELETE_INTERMEDIATE_SNAPSHOTS,DELETE_INTERMEDIATE_DATA,DELETE_CLONED_VOLUMES" + Options: + Description: Options parameter value for the CopySnapshotAndUpdateVolume API + Type: String + + # CopySnapshotAndUpdateVolume - "CopyStrategy" parameter. + # example = INCREMENTAL_COPY or FULL_COPY + CopyStrategy: + Description: CopyStrategy parameter value for the CopySnapshotAndUpdateVolume API + Type: String + Default: INCREMENTAL_COPY + + SourceAWSAcctId: + Description: FSx Source AWS Account ID + Type: String + AllowedPattern: ^\d{12} + +Resources: + # + # IAM role going to be assumed by Source Lambda function to invoke target Lambda function. + # + CrossAcctIAMRole: + Type: AWS::IAM::Role + Properties: + RoleName: !Sub CrossAcctIAMRole-${AWS::StackName} + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Principal: + AWS: !Sub "arn:aws:iam::${SourceAWSAcctId}:root" + Action: sts:AssumeRole + Path: / + Policies: + - PolicyName: !Sub CrossAcctIAMRole-Policy-${AWS::StackName} + PolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: + - lambda:InvokeFunction + Resource: !GetAtt CopySnapshotAndUpdateVolumeLambda.Arn + + # + # Lambda Execution Role + # + CopySnapshotAndUpdateVolumeLambdaRole: + Type: AWS::IAM::Role + Properties: + RoleName: !Sub CopySnapshotAndUpdateVolumeLambda-Role-${AWS::StackName} + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Principal: + Service: lambda.amazonaws.com + Action: sts:AssumeRole + Path: / + Policies: + - PolicyName: !Sub CopySnapshotAndUpdateVolumeLambda-Policy-${AWS::StackName} + PolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: + - logs:CreateLogGroup + - logs:CreateLogStream + - logs:PutLogEvents + Resource: !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - Effect: Allow + Action: + - fsx:CreateSnapshot + - fsx:DescribeSnapshots + - fsx:DescribeVolumes + - fsx:DeleteSnapshot + - fsx:TagResource + - fsx:ListTagsForResource + - fsx:CopySnapshotAndUpdateVolume + Resource: "*" + # + # Lambda function that will make CopySnapshotAndUpdateVolume API call. + # + CopySnapshotAndUpdateVolumeLambda: + Type: AWS::Serverless::Function + Properties: + FunctionName: !Sub CopySnapshotAndUpdateVolumeLambda-${AWS::StackName} + Description: Lambda function that will make CopySnapshotAndUpdateVolume API call. + Environment: + Variables: + DEST_VOLUME_ID: !Ref TargetVolumeID + OPTIONS: !Ref Options + COPY_STRATEGY: !Ref CopyStrategy + Handler: CopySnapshotAndUpdateVolume.lambda_handler + Role: !GetAtt CopySnapshotAndUpdateVolumeLambdaRole.Arn + CodeUri: src/ + Runtime: python3.13 + Timeout: 600 + +# +# Stack output section +# +Outputs: + CrossAcctIAMRole: + Description: Cross account IAM role going to be assumed by Source Lambda function to invoke target Lambda function. + Value: !GetAtt CrossAcctIAMRole.Arn + LambdaFunction: + Description: Target account Lambda Function that will make CopySnapshotAndUpdateVolume API call + Value: !GetAtt CopySnapshotAndUpdateVolumeLambda.Arn + LambdaExecutionRole: + Description: IAM role used by target Lambda function + Value: !GetAtt CopySnapshotAndUpdateVolumeLambdaRole.Arn + diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json new file mode 100644 index 000000000..65ab658ac --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json @@ -0,0 +1,49 @@ +{ + "title": "Replicate FSx-OpenZFS volumes across file systems", + "description": "Periodic Amazon FSx for OpenZFS volume replication between file systems across AWS Regions and accounts using Amazon EventBridge Scheduler and AWS Lambda", + "language": "Python", + "level": "200", + "framework": "SAM", + "introBox": { + "headline": "How it works", + "text": [ + "The AWS SAM template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies snapshots of the volume and replicates them to the target FSx system available in a different AWS account and/or region. The template contains a sample Lambda function that creates a snapshot of the source FSx VolumeID. Once the snapshot becomes available, it invokes another Lambda function in the destination AWS account or region, which initiates the replication by calling the copy_snapshot_and_update_volume API. This solution also notifies users using an SNS topic for any errors and snapshot creation details.", + "This pattern sets up the following resources:", + "An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by the customer to take snapshots of the provided FSx Source VolumeID.", + "An SNS topic that sends notifications for any failures while creating snapshots.", + "A function also deletes older snapshots.", + "Sample Lambda functions that create snapshots of the source FSx VolumeID and replicate them by invoking another Lambda function, which calls the copy_snapshot_and_update_volume API for the target VolumeID in the destination AWS account or region." + ] + }, + "gitHub": { + "template": { + "repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", + "templateURL": "serverless-patterns/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", + "projectFolder": "eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", + "templateFile": "source-template.yaml" + } + }, + "deploy": { + "text": [ + "sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t source-template.yaml" + ] + }, + "testing": { + "text": [ + "See the GitHub repo for detailed testing instructions." + ] + }, + "cleanup": { + "text": [ + "Delete the stack: sam delete --stack-name ." + ] + }, + "authors": [ + { + "name": "Anup Rajpara", + "image": "https://drive.google.com/file/d/1MqpPNLCqbU4kvvtTspNXZBqD99aVIJI9/view?usp=sharing", + "bio": "Anup is passionate about serverless & event-driven architectures.", + "linkedin": "anup-rajpara-developer/" + } + ] +} \ No newline at end of file diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml new file mode 100644 index 000000000..0d5f9d55d --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml @@ -0,0 +1,222 @@ +AWSTemplateFormatVersion: "2010-09-09" + +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of +# this software and associated documentation files (the "Software"), to deal in +# the Software without restriction, including without limitation the rights to +# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +# the Software, and to permit persons to whom the Software is furnished to do so. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Transform: AWS::Serverless-2016-10-31 +Description: > + Configure periodic replication schedule for your Amazon FSx for OpenZFS file system volumes. + +Parameters: + SourceVolumeID: + Description: Amazon FSx for OpenZFS Source Volume ID + Type: String + AllowedPattern: "^fsvol-[A-Za-z0-9]+" + + # Schedule for creating snapshot and calling CopySnapshotAndUpdateVolume API + CronSchedule: + Description: CRON schedule for snapshots (default every 6 hours) + Type: String + Default: "0 0/6 * * ? *" + + # Value of snapshot Name (shows in Name column in snapshots list in console) + SnapshotName: + Description: The name of snapshots starts with (shown in FSx console) + Type: String + Default: "fsx_scheduled_snapshot" + AllowedPattern: "^[a-zA-Z0-9_:.-]{1,179}$" + + # Email for notifications + Email: + Description: Email for CopySnapshotAndUpdateVolume notifications + Type: String + + # If customer wants notification for successful snapshots + SuccessNotification: + Description: Do you want to be notified for successful replication initiation? For failures, you will always be notified + Type: String + AllowedValues: + - "Yes" + - "No" + Default: "Yes" + + # Number of days of snapshots you want to retain + RetainDays: + Description: Number of days to retain custom-scheduled snapshots + Type: Number + Default: 7 + + # Destination AWS Account ID + DestinationAWSAcctId: + Description: FSx Destination AWS Account ID + Type: String + AllowedPattern: ^\d{12} + + # Destination region + DestinationRegion: + Description: Destination region + Type: String + + # target account/region stack name + TargetStackName: + Description: Name of the Target region/account stack + Type: String + +Resources: + # + # SNS topic to notify + # + SNSTopic: + Type: AWS::SNS::Topic + Properties: + DisplayName: !Sub ${AWS::StackName}-notification + TopicName: !Sub ${AWS::StackName}-notification + Subscription: + - Endpoint: !Ref Email + Protocol: "email" + + # + # Lambda Execution Role + # + SnapshotLambdaRole: + Type: AWS::IAM::Role + Properties: + RoleName: !Sub SnapshotLambdaRole-${AWS::StackName} + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Principal: + Service: lambda.amazonaws.com + Action: sts:AssumeRole + Path: / + Policies: + - PolicyName: !Sub SnapshotLambda-Policy-${AWS::StackName} + PolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: + - logs:CreateLogGroup + - logs:CreateLogStream + - logs:PutLogEvents + Resource: !Sub "arn:aws:logs:${AWS::Region}:${AWS::AccountId}:log-group:/aws/lambda/*" + - Effect: Allow + Action: + - fsx:CreateSnapshot + - fsx:DescribeSnapshots + - fsx:DescribeVolumes + - fsx:DeleteSnapshot + - fsx:TagResource + - fsx:ListTagsForResource + - fsx:CopySnapshotAndUpdateVolume + Resource: "*" + - Effect: Allow + Action: + - lambda:InvokeFunction + Resource: !Sub "arn:aws:lambda:${DestinationRegion}:${DestinationAWSAcctId}:function:CopySnapshotAndUpdateVolumeLambda-${TargetStackName}" + - Effect: Allow + Action: + - sts:AssumeRole + Resource: !Sub "arn:aws:iam::${DestinationAWSAcctId}:role/CrossAcctIAMRole-${TargetStackName}" + - Effect: Allow + Action: + - sns:Publish + Resource: !GetAtt SNSTopic.TopicArn + + # + # Lambda function + # + SnapshotLambda: + Type: AWS::Serverless::Function + Properties: + FunctionName: !Sub ${AWS::StackName}-Lambda + Environment: + Variables: + SRC_VOLUME_ID: !Ref SourceVolumeID + SNS_TOPIC_ARN: !GetAtt SNSTopic.TopicArn + SUCCESS_NOTIFICATION: !Ref SuccessNotification + SNAPSHOT_NAME: !Ref SnapshotName + SNAPSHOT_TAG_VALUE: !Sub ${AWS::StackName}_${SourceVolumeID} + SNAPSHOT_RETAIN_DAYS: !Ref RetainDays + DEST_LAMBDA_ARN: !Sub "arn:aws:lambda:${DestinationRegion}:${DestinationAWSAcctId}:function:CopySnapshotAndUpdateVolumeLambda-${TargetStackName}" + DEST_IAM_ROLE: !Sub "arn:aws:iam::${DestinationAWSAcctId}:role/CrossAcctIAMRole-${TargetStackName}" + DEST_LAMBDA_REGION: !Ref DestinationRegion + Handler: PeriodicReplication.lambda_handler + Role: !GetAtt SnapshotLambdaRole.Arn + CodeUri: src/ + Runtime: python3.13 + Timeout: 900 + + # + # EventBridge Scheduler Role + # + FSxEventBridgeSchedulerRole: + Type: AWS::IAM::Role + Properties: + AssumeRolePolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Principal: + Service: + - scheduler.amazonaws.com + Action: + - sts:AssumeRole + Policies: + - PolicyName: FSxEventBridgeSchedulerRolePolicy + PolicyDocument: + Version: "2012-10-17" + Statement: + - Effect: Allow + Action: + - "lambda:InvokeFunction" + Resource: + - !GetAtt SnapshotLambda.Arn + + # + # EventBridge Scheduler to trigger a Lambda function + # + FSxEventBridgeScheduler: + Type: AWS::Scheduler::Schedule + Properties: + Name: !Sub ${AWS::StackName}-Scheduler + ScheduleExpression: !Sub "cron(${CronSchedule})" + FlexibleTimeWindow: + Mode: "OFF" + Target: + Arn: !GetAtt SnapshotLambda.Arn + RoleArn: !GetAtt FSxEventBridgeSchedulerRole.Arn + +# +# Stack output section +# +Outputs: + SNSTopic: + Description: SNS Topic + Value: !Ref "SNSTopic" + EventBridgeSchedulerRole: + Description: EventBridge Scheduler Role + Value: !GetAtt FSxEventBridgeSchedulerRole.Arn + EventBridgeScheduler: + Description: EventBridge Scheduler + Value: !GetAtt FSxEventBridgeScheduler.Arn + LambdaExecutionRole: + Description: Lambda Execution Role + Value: !GetAtt SnapshotLambdaRole.Arn + LambdaFunction: + Description: Lambda Function + Value: !GetAtt SnapshotLambda.Arn + diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py new file mode 100644 index 000000000..ba1bc5357 --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py @@ -0,0 +1,92 @@ +import json +import os +import time +import datetime +import boto3 +import botocore + +print("boto3 version: " + boto3.__version__) +print("botocore version: " + botocore.__version__) + +session = boto3.session.Session() +fsx_client = session.client(service_name='fsx') +volId = os.environ.get("DEST_VOLUME_ID") + +def deleteSnapshotIfOlderThanRetention(snapshot, retain_days): + snapshot_id = snapshot['SnapshotId'] + created = snapshot['CreationTime'] + created_date = created.date() + now_date = datetime.datetime.now().date() + delta = now_date - created_date + + try: + print("Examining OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + if delta.days > retain_days: + fsx_client.delete_snapshot(SnapshotId=snapshot_id) + print("Deleted FSx for OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + else: + print("Skipping (retaining) FSx for OpenZFS volume " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + except Exception as e: + print("The error is: ", e) + +def deleteSnapshots(retain_days, snapshot_name): + print ("deleting snapshots") + + # query the FSx API for existing snapshots + print ("Getting snapshots for volume id = " + volId) + snapshots = fsx_client.describe_snapshots( + Filters=[{'Name': 'volume-id', 'Values': [volId]}], + MaxResults=20 + ) + print(snapshots) + + # loop thru the results, checking the snapshot date-time and call Fsx API to remove those older than x hours/days + print("Starting purge of snapshots older than " + str(retain_days) + " days for volume " + volId) + for snapshot in snapshots['Snapshots']: + if snapshot['Name'].startswith(snapshot_name): + deleteSnapshotIfOlderThanRetention(snapshot, retain_days) + +def lambda_handler(event, context): + print(event) + src_snapshot_arn = event["src_snapshot_ResourceARN"] + retain_days = event["snapshot_retain_days"] + snapshot_name = event["snapshot_name"] + + rspJson = {} + try: + print ("Starting copy snapshot operation ...") + options_string = os.environ.get("OPTIONS") + options = [] if len(options_string) == 0 else list(options_string.split(", ")) + option_list = [] + for item in options: + option_list.append(item.strip()) + print ("CopySnapshotAndUpdateVolume Options: ") + print (option_list) + + response = fsx_client.copy_snapshot_and_update_volume( + VolumeId=volId, + SourceSnapshotARN=src_snapshot_arn, + Options=option_list, + CopyStrategy=os.environ.get("COPY_STRATEGY") + ) + print (response) + msg = "Started CopySnapshotAndUpdateVolume operation\n\n" + msg += "Destination Volume ID : " + os.environ.get("DEST_VOLUME_ID") + "\n" + msg += "Source Snapshot ARN : " + src_snapshot_arn + print (msg) + rspJson["Message"] = msg + rspJson["Subject"] = 'Success Notification: CopySnapshotAndUpdateVolume' + + except Exception as e: + print("The error is: ", e) + msg = "Error while initiating CopySnapshotAndUpdateVolume operation\n\n" + msg += "Destination Volume ID = " + os.environ.get("DEST_VOLUME_ID") + "\n" + msg += "Source Snapshot ARN = " + src_snapshot_arn + "\n" + str(e) + print (msg) + rspJson["Message"] = msg + rspJson["Subject"] = 'Error Notification: CopySnapshotAndUpdateVolume' + + print (rspJson) + deleteSnapshots(retain_days, snapshot_name) + print ("function completed") + return rspJson \ No newline at end of file diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py new file mode 100644 index 000000000..8ecd6d1de --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py @@ -0,0 +1,154 @@ +import json +import os +import time +import datetime +import boto3 +import botocore + +print("boto3 version: " + boto3.__version__) +print("botocore version: " + botocore.__version__) + +session = boto3.session.Session() +fsx_client = session.client(service_name='fsx') +sns_client = boto3.client('sns') + +sns_notification = os.environ.get('SUCCESS_NOTIFICATION', "No") == 'Yes' +retain_days = int(os.environ.get('SNAPSHOT_RETAIN_DAYS')) +snapshot_name = os.environ.get('SNAPSHOT_NAME') + +def send_sns_notification(msg, subject): + sns_client.publish( + TopicArn=os.environ.get("SNS_TOPIC_ARN"), + Subject=subject, + Message=msg + ) + +def deleteSnapshotIfOlderThanRetention(snapshot): + snapshot_id = snapshot['SnapshotId'] + created = snapshot['CreationTime'] + created_date = created.date() + now_date = datetime.datetime.now().date() + delta = now_date - created_date + + try: + print("Examining OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + if delta.days > retain_days: + fsx_client.delete_snapshot(SnapshotId=snapshot_id) + print("Deleted FSx for OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + else: + print("Skipping (retaining) FSx for OpenZFS volume " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + except Exception as e: + print("The error is: ", e) + +def deleteSnapshots(): + print ("deleting snapshots") + volId = os.environ.get("SRC_VOLUME_ID") + + # query the FSx API for existing snapshots + print ("Getting snapshots for volume id = " + volId) + snapshots = fsx_client.describe_snapshots( + Filters=[{'Name': 'volume-id', 'Values': [volId]}], + MaxResults=20 + ) + print(snapshots) + + # loop thru the results, checking the snapshot date-time and call Fsx API to remove those older than x hours/days + print("Starting purge of snapshots older than " + str(retain_days) + " days for volume " + volId) + for snapshot in snapshots['Snapshots']: + if snapshot['Name'].startswith(snapshot_name): + deleteSnapshotIfOlderThanRetention(snapshot) + +def lambda_handler(event, context): + try: + # call the FSx snapshot API + print ("Creating a snapshot for the volume = " + os.environ.get("SRC_VOLUME_ID")) + response = fsx_client.create_snapshot( + # append datetime to ensure snap name is unique + Name=os.environ.get("SNAPSHOT_NAME") + datetime.datetime.utcnow().strftime("_%Y-%m-%d_%H:%M:%S.%f")[:-3], + VolumeId=os.environ.get("SRC_VOLUME_ID"), + Tags=[{'Key': 'CreatedBy','Value': os.environ.get("SNAPSHOT_TAG_VALUE") },] + ) + print(response) + src_snapshot = response["Snapshot"] + if sns_notification: + print ("Sending SNS notification for successful snapshot creation") + msg = "Snapshot Created Successfully\n\n" + msg += "Snapshot ID : " + src_snapshot["SnapshotId"] + "\n" + msg += "ResourceARN : " + src_snapshot["ResourceARN"] + "\n" + msg += "Snapshot Name : " + src_snapshot["Name"] + "\n" + msg += "Snapshot Tags : " + json.dumps(src_snapshot["Tags"]) + "\n" + msg += "Snapshot Lifecycle : " + src_snapshot["Lifecycle"] + send_sns_notification (msg, 'Success Notification: CreateSnapshot') + + except Exception as e: + print("The error is: ", e) + errMessage = "Error while creating a snapshot from the Source VolumeId = " + os.environ.get("SRC_VOLUME_ID") + "\n" + errMessage += "Error = " + str(e) + send_sns_notification (errMessage, 'Error Notification: CreateSnapshot') + deleteSnapshots() + return + + # call the FSx describe snapshot API to confirm created snapshot is in AVAILABLE state + copy_snapshot = False + for i in range(1, 10): + time.sleep(10) + print ("Describe Snapshot - Attempt=" + str(i)) + ret = fsx_client.describe_snapshots(SnapshotIds=[src_snapshot["SnapshotId"]]) + print("Snapshot = " + src_snapshot["SnapshotId"] + " is in " + ret["Snapshots"][0]["Lifecycle"] +" state.") + if ret["Snapshots"][0]["Lifecycle"] == "AVAILABLE": + copy_snapshot = True + break + + if not copy_snapshot: + print ("ERROR - The snapshot does not transition to AVAILABLE state for some reason - Snapshot ID : " + src_snapshot["SnapshotId"]) + msg = "ERROR - The snapshot does not transition to AVAILABLE state for some reason !!\n\n" + msg += "Snapshot ID : " + src_snapshot["SnapshotId"] + "\n" + msg += "Snapshot Name : " + src_snapshot["Name"] + "\n" + send_sns_notification (msg, 'Error Notification: CreateSnapshot') + else: + try: + print ("Assuming role in target ...") + sts_connection = boto3.client('sts') + target_role = sts_connection.assume_role( + RoleArn=os.environ.get("DEST_IAM_ROLE"), + RoleSessionName="target_lambda_role" + ) + + # create a lambda client using the assumed role credentials + lambda_client = boto3.client( + 'lambda', + region_name=os.environ.get("DEST_LAMBDA_REGION"), + aws_access_key_id=target_role['Credentials']['AccessKeyId'], + aws_secret_access_key=target_role['Credentials']['SecretAccessKey'], + aws_session_token=target_role['Credentials']['SessionToken'], + ) + + # prepare payload to invoke the target/destination lambda function + payload = { + "src_snapshot_ResourceARN": src_snapshot["ResourceARN"], + "snapshot_retain_days":retain_days, + "snapshot_name":snapshot_name + } + payload = json.dumps(payload) + + print ("Invoking target lambda function ...") + response = lambda_client.invoke( + FunctionName=os.environ.get("DEST_LAMBDA_ARN"), + InvocationType='RequestResponse', + Payload=payload + ) + + print ("Received response from a target lambda function ...") + lambda_rsp = json.load(response["Payload"]) + print(lambda_rsp) + send_sns_notification (lambda_rsp["Message"], lambda_rsp["Subject"]) + + except Exception as e: + print("The error is: ", e) + errMessage = "Error while invoking target lambda function\n\n" + errMessage += "Source Snapshot ARN = " + src_snapshot["ResourceARN"] + "\n" + str(e) + print(errMessage) + send_sns_notification (errMessage, 'Error Notification: Invoke Lambda Function') + + deleteSnapshots() + print ("function completed") From d570ce697a5606d5bed0c6ffb24fad264f3556fe Mon Sep 17 00:00:00 2001 From: Anup Rajpara Date: Sun, 26 Jan 2025 17:37:46 +0000 Subject: [PATCH 2/5] Added architecture diagram --- .../ArchDiagram.png | Bin 0 -> 281798 bytes .../README.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/ArchDiagram.png diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/ArchDiagram.png b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/ArchDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a52e2ae77ebef605c7604983585826d538861a8e GIT binary patch literal 281798 zcmeFZbzD?y_cjg)0;1BOAT81@Axa5|bax3zcgN5nB_-Vm(k0!4bPXWgDGZ%M=WmbC zbIx-P=Y8Mr_s`!SkDm|Dz~1b=?{%+rt!rIt4Z(6UVvimWJwQM}cqIN_L;(Q-6^ej> zEQNL-_{q1#i!20$hZ3g3!gAum!sK#x)<&ilh6o7ngJV@u)f9UO(liw)kkR}psgGU+ zy+?8H-R`8&Tb2GFG(gw8J-~oS9&|HyKMX z-eVQCb_t!oy|IU;+Yh8_-bZjl)urzjfB^i?-gx4P1jv|lg~1T!gQ2zyanv2GtA%ri#z9wL%UP*}4u z=@zt`laEKWAW)R3EKA{AsVqC-gD3ZJ$@&7$un|5w^6SQ-d%we6QAhEW$`cNpLNX4P zWAvFM(_d(8qRyMPDYIASt$O&a zrE6VC%PWfyii2MQI_d2{If7z1sI`K}C_GujBR>185hLIcVq9LwCM0H~Nz0vQRU^G3 z9Dm44LCP=~_UqAp*;~&KJniqWjNjW)QQdbBVQ+7dAX5{l)Jho)4OAmrHj8>gYxQF- z&q88*v2lX^qt*bzZ4Ap+gi!via#ZvW`3-|b^a82$G*t-LH>P&naX&eq9V-d8>`7&FUl(^DRc8 z2H6S6G`?y-IP|S;DMLB8u`M_{&^PsTXrz~Eq)a9wC=Nkgz@S7RL`EWz`w{mz$J>J3 zYRhW^^6BD{L%Z>RkGvxM3+VzRnt^br`>9Mq=1qHk zcsRL1hHUj$Y-W4bE%J~x zq~)plk&vuD7F*;KiH9$ymp;|9?1qW`$P%z%<{>_P2KkjNu*CK?b>G`2_NP$oD|M~s z#00B6KM{}pP&cD*JUnd7^EN)AF7nHf(EpN}#o}2mu_1lDi)!rT$LLIMWvHyyR(TuO z;_PhlBVt)fh|UeqD`aOsis*#MN|?S^!%LS;xoAW982b45VS4(d_Hn@eGyYjz&Cfes zG6r4WE7Ul~5!5EJi?Gc*9@8EC3;~TcFW)x~-HD(<-F&Fav9McI{>5%hV~u%jumJ2n zbmYF;)}2b3N`Y%^v|7QlA4;Kr@Ej>OijmNmkQ*UpfoyDR$5HCm8AY$!^B2JtqW54F z7z|zj+v$8DtM&a24uls!kS1H*wY*>N z-@hS8^Y@{}!u-aG7;fIDCBA1_K2GP~S6QBD(ABOuVF21Qn zEAgGNIdq}ubR;==6M=$V2>6c~{T zAMq7@EJV#BbtC<{*;W{b!)HZyskFNpR;WV0Zst8U`>c_bCCAk()HdYeK$#RQBZ@H; zu+CojtoW^S*6}*q(Hl4X9l`XhrYAo}Szj1^dZlmiIaE}SPVN4SHs}XxwWlfpV|vp2 z{JNdI->tUq$+SP^!Ep9x;K7sqfpVtg{uqo``lIl`?F!lRX>-KsqAvPNU+fm2MbSm< zPF!~M5ws3}_SVO(h^^vhjE*?-IKd(>hCZz$rgwbQ=dyiaOJ_@Ei+Mm>mUhIHN0aZIS2{L23K@Gdra#(l z1{>`iJ1Iz&Zzw$x($<{QNi9q(D3R060V`hTT}U5Kyd>&Rg33yMT^)%VGBfEiJvG_m zd_p8c^ybmmPOUJBFt;#CB9?W$di+%3bP<+s@k6I0EI%7K>5|5iw4}k%XZ;fWen}IY zpsFVtSyh>phm~<=JHxz%$4bfHEQ?9LF^%fvHA!FAo(SLX{Qkk_DN-j=r&Fi+yWGd} zUGD;Oql*;_U==dSG7%-!C52X*yAE>_bHeo`QlCxxSJ>f+eRp$K^*WgR~DiAHiK$B`9OQmQi|TotYh( zUBjbxDXWZq8hx57cnsCbabvuNBPx4EmPOG;gzDUC0#!pbOH+8$qtmlx*;5x&GF8Rp zP5NS$1~aRZmX!@A5z`G*##5@(x;BC&vn1`0iAko#aNfCv$9yg#a-EZ(i~6OusJ7*@ z5WIo6q_i@+c%&b*ninI_AeKscJT}$;YQnVvwlg%H)%K1s%!=r`w_{#(QDMW*@S&yD zenOoAQCFjbqYZwYm0i!hX_kIv}D zr;D#9DyCq5@eQir3I5XNMv^A`MrT(65_1lfmrj?Hf&5T@_w-_Z5-{V!%LOJdiKmgL zdoz7A>J7oo+gp+wSstepivg>FP=qxE^&dXo&RQ(H7P~`&jI7VUKmX43{xvN{9_6~u zcUK!D8%rD6AkA(_WY$;zpZh;!zfQPzzCkSgG=U4n=6by?QtRfT{y+wioRc(GO`>Wq4mE@+S(odJ$1D(OIfa8++n4hb$xyNG?RqQ!PFiM^D4J z4lwuErX(ApABujM{#p5{EQbfXsY5~LFOv$Z$Lnc|$Jj+5%0%pw@Is)fV5X?lraj*AhVg{>+Fe#@Rd z)jxKBpPy=-xOU|ysD@f5Q2UiG)**T zb6%PqaHW71tSPRoL2jG6>r9k~l2ODlk_d=cQfl^>FewB^3C!{OLP}W5G*E z3Q0>yYwA58nM?O1ahubW@@Yafs$EGOQ}wmQTt!@ex%C}0jC+-I7u0Gzm8&!M8~Q{| zJa36-)mYi%r8sBwt3NwgzzW;Cu8i}exks#{@)Xx{wXbDF4ULt+HST3@63M6663*^Z zbW>CEB$^(Xomn|X@k1r6RVKxm)#lEdyP*Q8H?wMMYBi3S_Ocr~-&M;_r&vszwPpyx zrG^3^uenl{W-Fc_JaP&Vql0;Srrl=iCQ?=w0#BU2XZJL0{IHg3-m%~^FM0C~WOA;z zxfBq18IDJ~!AH+G?ZF6}Y>Vq*s)>jY@LUyv1Xo8d(F~?M;CH-wxpoxA!Ec;2=$6Xo z67Es5)OdM*p;9w`uesscGo!z$_{O&@pffa$FnPMGnhd<+yfL}@qc68)za*uZ$hGQP zqqT~7Lb23&7Hi(cjpG#Br-@R-KbPhlXp_5A0-Y-dy*n+q`F?328wl$9dg*hjN!HF+ zdo8!We@=CtHJFM)HbNTD$L65`8(lTESGAewFvd-D1V_cc#? zm|hUw9LwnH=%&Z8{5rjT@IkPyss~|lOa{TE2Z41F9K|bCC9uscQkAa9n{eGOz-z8f z^$qp)o1>aLcE(`d+=Ajm$OkNM1Y~jqL^MGJr2qHZ6@Nia|ML`^Z2ABB+}{`TruJqX z4E^6+8h&~=1)~4?v({|W|K-&YTHoybFP~hHJP;WRYL6D5L-D_S8Z=nrz5lm0{xp}* zGaSK$K?<#;PyfrOA&0;o|M}bhgWc`kBk1u5+L#jk4}0^+^#Fsv{$DQfzXtz5+5W!< z|EH(@-#i>k49VG9^I4Z3TMiQTx{VA|#SSUwgVEP>Z~p-$hr)m#3#4qI{Qc^J7HIDi zbkAlACO-%I;Kd29%~xSVF8RZfh<`soE&~Miub0UIWEidPOKS+2 zcae3$wyHB4vs!N*n$ZWBNhan zjA*cc^m}jaqNmR+E&vC725xr_U@;(}!OD^bd@=9qffp6M{{b(NsK5!X-cp2jaA#Qr zFr7?=`dJw{gwXTx{y%JMCkvc#`gsHKj%|z3$RS;3ycqmX{Lg)55&wZXf~3F+Yl!UH ze}Koofg=bP0AikgqopoiR^78#KknTHKjm0B=k5Y5@O(v!;Xn63NL zs+%1|$_TTz(?0&*c`6&u3UBaIQQzaON zvx&Wdn@<6uIb3}3_pF70yetl+vou(5-kprS@>y^;z*V%fW=D&|_-d4u(gR(`{~U)P zMd(gO6m$n3vCG-&>C-!@I|VDKkTo4sh~M=s)_Rywf~+S)?OoFD!vnDSh+jqQFaG1C zzbVJ7=UCi&;5WWkwO{*iyJgbLDVL_TYw^zN2cACyPm?ql3AjzXQ+`DWQH@PBO1YE6 z3%G!cS-^Mune^|g6|6&V7f;x8^GIb6un&gfEHcz{H{wEP+~^MHT%Q~j5b;H@lAUnL z-Tyo5K|r#l0#a?wQ^PlRZe%A#{;!j~>q;)S-RjOOuajBJNM^b^a{hJwoaU0Tr_F)@jNyOYI*3U64Av zEMMgOE!ttvN5yj${B~FW^OYJO^Sf6FqJq(&Yn(z|kuAQTR5|(T#zlH72U51{^S+u&d1sz)D6lU^7uiRJ+_(S4)*J|GlP(j2FnA&OX+z6{1 z?m8B@*?e~nu+hj#wO%Q+j52T%caYoU;;dP3R_2Ymgft=OfhUczZvSCHT!3FD%4I&j z`NL9Xw3>_X9o&xWJ{-pD~dc3h@$_2IFqD zAz$Rdooa1aIz#%7?_dQH0Zx_Ik9Ko6RC(a8nMMC@%`HT6N0LmG6b)AANo+#)_dP~H z&J+Z!^Ps{T^A7%m1PLkuARWx0&u?NYYe4qQ{Lu9Y=2&nN5F_bt?6rjNV)ZjPR@4rhQwvrD_cBg4v6>03=aFr9w^~ad|3{Dz0e+aphMC=HGMX2a_{u(~Zod_y zpYL>5anm#Afl9H4p;g@~L51C_g#BR;P4WxrB$1w`$up$2Nh#`kK7S&Ps4RKG@932L zpcy+dN#niG{AEgn&Wu!#-?jSxl62OK2%=e8guw5@h~icf*bE?usL!zE3p#cPQbIvD z`~OKD?ZJX&XfSR^4Lq9dSRzTaQFo;?a)_##nd_6kuNVP2#2;`M5t;{j{F%6lf;B*0 zhL&FPmqp{CiO45dmn%AE@j?9v@Rwe#D^d(*5phPa>UP)og8y>nZ{w5e0_K5<)~8(i zqr<$e4g#gEn+JHe5<0_(lLIgalfR;N{p_LCuG-62U1=c^?ac= z$_nFRKi-<)t}q_t+G~V`tC#5qn2r_1PMPMW;%u^L*N?ix`njtu0!f_qsg|^})4gt{ zAj#Z=CnMkWglFbUn{UiCsx3?l-yHoE&T-rtH)`0a=BP3ovx|u3jhiU_aF4?X!kX@W z7@Wvy9*2!lW;T)&mapC5^gZbuHYgCbX*R2ASryAi_S&h)(02W6;Duv6i>?*_+2TFe zoby7WXedEqKi3STeAaEN_?nkjzUlUQ&#T&^i^TcmSfMI+G>t45nb%d>lzC|rj@r%1 zj5RbXg1_9|Y08kW0ygkE{&0{JY%#?STaDLEVgaAEj^-xT1(nRA-g(c8*J)d= z_cDq~Ea_xt=5n=R58QBmG$Pxt?L23w1KQz)jcZz;pE?ZJ*&B11{3IXA5W1&%Gi98v zF0Vm|<43K4Dh--na9;3$R*uMUMDSnay#h86a(%i$R-`|eE0b!L#BHrpFpD2E!NNy# zaJpSF$b~6z_1(NvKqA9yB}xoZ)B}b2DOcAs`_D}@R)D24`BXQr z6=hy^FuUxNY1!MgV~Zu^rn&Wo+|pkFW-jI_hE3>t%{gq1GcCPBKVQBDewb`O$fr8y zj*G$cVA7`T(KUOjiIDfzIbeI7-m2QAy0tV8O{=1~i|8|V&P zny*hPeD{F`S%%J3nHzU})Q(Y2h|gnbxy_E(DYq1tQ>i>{I-NJKp47+CBsh`RX&&t) zah}z4J6hLEe!ZEOWr0^u*}vcplO{$iA+A^X)(iz}O2094 zo5YyO_X+#Qpr+giRUOxkXRa$zCmPqz>pxrGbu`o|C6*J@@-{OLteQ%a)Ok@3Lz9J2%m=!g&NdR3H!yCS)f)H+oW$50`S=}^1&T=1S7SlCEhe_bGu#IMCs;<-^ zJ0%YHq`N{BPu|da>w2EALaS%2DpoJnXKG68cI&sckNa4fEl?&8AHdvdDM9J+6D;UZ z2@;mAiPH3qsft{_iNN8$*K9XHpu99rb&P8w#7n1UmHeRk;IiIvYx zMgeZl!kJC%bln$68wNFxZBBXqQdYG`2vYc;v&z3BQO_=m=ZT2L`k8q@y8@G_)jjh5 z+F!i)->5JPD3*gHGZIx=ajY!zF6ka8;_C(@(%e=0B_jI4S?o0449n^ptEsfbpb+Tz z{QmUJtmvmT&4j_x(&pQnnG~1hV7r-|0a=-{z0Rk2JATWsia~z!dWQ}DbZ0W0HUOku z?H7GeiL%!*lQPGFsJGGlCW=^|@u7JAx{tX561OFcR6QLf{&R1-st_=@!VHzw2z^?Au%tcwXyF7`Td^!Ym)etECQC##N`kILNkhc*sz|8 z*8ekA6fv%1)SD0P5IV(wR1&ip@*-Z4$==tI^^o`M^9+X$$k*I@-yH*%c!7VUj`6?< zlAz~#bsz>(q6Yi*qP%n+gs0ysE%jm zbf?z?Q(B?~oPXqktqpP$TYUGi?_ds!WU-vCWP3!+b=3FjKZFA-uO9i30`fYlt|;a> z35AAsPz{$tz$xtKv(u-;nJDTnKC>Gx`MY(!99g4R#MA?`AGr|xgDeEV$$~L`Dr+gN zeQb=bJz@0{ZtKKKU>paO*B$2vTo#Ki!?{|KW3wL!wNlphD0` zlQlA5*GAP@wny13_9Hs#s4Q0gD)&hxH45eYZfm&q8+wLjiDNXD>8CaAhOXS-s)tIx&xEa^xwyO1xWpbL+ms*q{SASQg2eq38h3=)(0Jc-jC39O_nT;2j$_QLL zfLNpw;ssh9E`;=ShOUwXjP+Wtz?Zw`r+KO&7gXUqt;&!1%)SO7A1I|T46CTOHa<(_ zwoZG>?_Qg_C!h5$QQ-D!*7ST`?pYhZjgj1lV_o0xGxz2m?aI zsFt95;Y34E<~(Z)jS?ee1K3iv`2aFir#%J4+{<<6QEAXIoY^TAs`T&8q}F=QH7T{a zi%!!6mR=~)JH_=B8giR%WtGnRWP+m7uz4<68+T9Z0_61P2 z4NW;B)t-1aucd*C;^E{eY`Nrpdn09u!1a-$V%EDyUhSa-OzhIhTvhVx9+xLotu@2n z3#CqOF87i>PNurjwuCRUxB=FyV=M^=PJ;-(@%K_zGu6dU0kXLlEdwMb!itTYK!rWq0jyk?HM6h-2trW5;23HYEyeEzikRc8!L|G7wsipeDkCyPG!*p7uOhj z@cMwue~EXX>+$11?Y$d6zZ-83iZ!K=9`jomN=zkvEJ zx5>{RIZSZeADZ8SQ)v6O0nWf@c0u^3$Aa{F{EB7c+2yL5iD!-*+3`uYS8D zP5oO&OV)+u&@b(a-%XCS&|CDvjp=;@`H~BYGH;BRCAr$qlst2{nllX~#^QU|EG7q~ zZeG|TI@Mpy`oVd-Pb*F>Kt3f=>hQ*?-2S7>b-)F%Ojrzto{q5c<`KXHXRc10Z>w5M zdvAbhB-!hFOP9CGsh2J{0ZvEK3c)7|s!Gm3eOnuQV>NV^qohEU&A^3ofLiQ?cbke9 zvgN7n*>t(vfbO-=aD5daaAR^BI{}-v*Lhn#y)oa^FhuC@uw0Rbe$hB%)u7I%e*M1E zc_)8fFObBj1A1}1l?*tRiYR*MJqPW1KIkz7K>XrT-UXmW0>Z%(V%>agbn2j*c#Y^`mMQGe2S)d&Aue{@_3 zP<*Uv!J|^?i}y`~882QG2JhKQLCXcm>@;voPvC=MnnXPbK;vs+X z0OollhTac-yTc8jNDo-`)=0oUq=5O`%!>Y zO%`lQyW@`wWvN@i5y-yy6(L|H1ArWZyKE|N)u?dDGcUj)rAl?0AWSv0`g^Ytwd7ZD zQe)HjO(Zl+Xki~hK59&$F;?B!+OfBZ3D0$)^x%NkLik&2ki_Wy6lNt= zq}#KDU%0!eww+I%E)hgG7~FKY^xM%Y+8)17u&kcy)G6d+Lb4(FoTJ)+Q=S?ORFO>E zs{r+i{Qf}*>3kzMeb?T8u+n^DV4y+a8kLD;?XXgrAQ_+?#QkM`B3MUDK~&+a_wGM@ zug1#ierA(=p>uo$Aq8z?yZhUt31;9Rr?8eXaaXRR{q|KLL-_nKmaQ5{Vl91tzH+p2 zj+5@kID)>6^OgGD+OPtXoQ(&8Z}7$AWU|SZr>1YT-d>GCmH4x#-b?0r_Er9voQ|qe)?k zA@%%Xt2Di!fGIwsly8&z3u?f|_dxp1_$$@QTY!J{r-618e+~|3OYZQACd7|5!%RCu z@QsGQiE~MNjO0l7mo)5d=EkU|nvUco3f!Ev<(!vlH&lZd3%dZ*O$9vE^*D|V`!a!q zAX=1L?vT&6j*rB<6o%%7UhGGd@Od@ z$Xb?}s$5I-_wI9x^FUVJ7V)LuDz+Vn=u$4Ydm<+*Q&GxQv1)9W zKCtkXS6^T8Mz#21&Mti)c7nz(4+m*r99orjh^fPsQ>7mt& z&;g;ASFt=~MbScpp0O+7*|3o6wY0%5HrGoZi?h$H=@E%pm~gC*r2($v`l<4dNe00& zz<9bSP_OgDRXB<%fB5zg8%V5zS8#>bTIMM>e4BW%@`_l~8660DHFWI1Fvihf4D|3f zxH9hf`mT6tz3#cLJIo_#yDGKd1;JHVyO-DMRlNzip6Z4UvkoI>IT}?a7s0AnK^%b1 zcm|mb{vCsY+MX;k+8oV?4hq}?;Z~OoSJEKBmr*$1iJJe# zn?Z4|dJsV8`XecXAp@`XEP$^@iM>Zxw~FR5?AMK0&s} zady<0ejwM4zldeR2`^$QJPBynEHjF=(Xb5scu3kfJ8M5^2RmP5z)b-}wtAqDj(c^r zPgI7zvEXVPaK40Uz3O93!aK^EY|*;u=P$mNxd=S_Uxz{jqX4mrYa8p!f6;(tGsS+puQN)tbkCM z@RUtoWR>U_FgBQB0_*}|zmjOHJY^3h+an%CA9|sT@>ciq@5%Y!QzdJAGF|D*-qfYR z@{8D%j$Tc8#)S76hnbj8wqr7wC45aaP}K&{Ae+L?v|iX03a^Oy^ePYaGKfy@dN znru0M;EcWBSgTdL8m9?~Rn;+_uC_FhMe+0F9BV&SIgs=-G0GCC&Zic6YJi4o6k6a2h;Z72mev6%Y6nc6KXrI zaQ5cI4+Q(0^R=0V1<%Xkn&Eo&xBbdGPqYWq`1;|rw+}#Rg9?DP(2Oo+S^%9ZLypY* zK;-iQZ>J2NcEuIEeV$m3aI{`FI_qlOgE?l!Tr*RWD+`!|2i_WlbBOuB|<**;NrN@ zP@|^As#0z5`cyTkVo+z(5JQVZyCg*5T50g5MJ?|!2xv=%MDC55=O^-kVhKgc*!38R zFk2gGKgh#dvsF)9$o|;;kT772%KFuayaxF%Entg&m^spp{2mt$$-dhCZw|Yupnxzb zYhqhR=)~=M_>qNZha;wG{r}rT5h%Hwp(9;+-t0C@yY6=Zy0e`=)vYMN=0G~r!=%1z*>Smv*I{Cyhs3rmG z~LS;A`3Gd=eVb<4~!hu2(4GPUlh+dj3k}^1^0CK${c*-c*6*~~P13yr6 z?R9xiIY}{TRI&m(Khtr_0|G|1#cPB^@DS*^05O+^$;p&4Sp}e&(Tv^#?5*(##39|} zb_@YzY|EEoa2DY~^OBiwP0G^aXh`gxyJnS{p}KM@XV%928%kY!>v}S4&mgrnAbGXB;8qy^YCWSpz=Z`|+v>2X zq+mSxofn#ZTckG+vJP-v3c%O7xcDOKk@aru0KBHcF&#gjNN^kWtgiKv89XeNSUzk~ zt^yZ;= z!Gm?+)^M+DL&&uGEs0ZK90ep-q%8~y7;a!8cd!3r>Vcd9h(`mqutHQ@csC0!RhnR) z(<$bBlTy4LRg_hi*UHRMn0tM>6iC*{0#0pWiNn>7@@o98R5lGSzb;gwb%vJ5dDBcPt3?Z zz1L*W75;AH((i@s4P3O>!+79(JbOM_X3#HAllrmaqbf99IPh_mK~$;6^GJ)|tQ(qW zY;gc@2Zg^me9z%|b+%&Wr1R+!u~8*0g$eNU`ikZbfP2ts6>DClkr}k4ZG(qwjV232nR76r(TPJf#xMGZ`=2oi4xYbxmHoZUIS2`bj zquBM#%f08V_hXW{gb7_;?HbLRB%@aU*!evI2Hbl2OIbeUhEXJ6e+eH9md7pI_2xYb zubOYI8uyN=pCVvE?|tV9dkBDgw-ieFpWyxt4(<-it+Oh4rvZdICf0QH>ZV&&nDv=) zee9z0d*9n0tGrP@x`dbZT!7xo@RRrJ4NzKhNW||!g1_TqL%F9u;_6CG)U{s%eYT-@ z3k@d`Jj-aHi(ZD(TFSk^GiL}Oxa`GCBFE>4JtpCOg8mDhE_HJ*LfmDITgoIS`GL-0 zlk%2%GN327>5^wu-qz=Kdy2Nn!gW?Nxb7Tx05n<52nnA#j>>nQGhnM@Z-n@JZ57wJ zr{g8=Qnu>4ZBX}VaFaM2;@dztnMH%Pp1goC(Cg}kRI&LsZaI*pW~wPfvFBgJbN`ZUC$H`v)oxlcRC1JID!83p}|$n!Z-u|98}E~=nR(2k|zVA zoW2QVe81J_-MNNK(}`G>1yNba&ngm*iS16J zCk*;c<`X5*V4Ae=bi34~g;M&p>?rT0;!&u&soyeO@TT$sd*S)~22d!VxrVAqp262R zW1!Pr%WLJ=`6qx%=@IWk-Yq`ZjVkKY7vrQGN*?D%+-o}I?Qa<-iUcP1quk}xWfu)G z7ZNOIEiFPz!U&!UY4rkBjiymh@|5wg2XcU`A@7ryCXrJg{2pyn^?tV5shXI!XTq}C z^8rBtf9Js2i0#zL!8_LYp5e-K(2m=*?wxA^^xjlYe6gwCO^QB{P%RZjz#%d;lTE~m z2^MUunKomXQL&kSIgsi+KQ-PAfPwUjW%7dMIWiD1~3uTil+1~VK66y z7^*4SM^6PQ99%)Oi&cJCG!B!mwiuvlb&oNwX9dSnr!nweM+%!w9v!6ej_tGGFF6^x z4B4~{s~PU&ubG{7RP8|mqvLM6X?8pvDK~W7a}He9`NVDQcgmS_bc(asd})lpMMi8abQesbs0| zOzpim*)a!%0$z|N<-W}8ofXwsHGZ>E+L3SKxGZ6F2i0$4Sxf72!mDx{+mA9#2OW1r zS?n{LhNsEwA#BxBZyPgz_~jI#;IyQ^2f990c|xJA&wCkswL($bU*IZ&fYwK~R7^H` zEm_lv)dEnwS#pFxl>JMjrU)w+h4Qy!!zfIwmOc%SF!Xsd(n8E{T|}o|V;qiWA_pG~ zyu_?8WuxQpfmjY@pQ)zE z$f~)?>FwtE&2>De*`tVHfjW~#P40`hP4hJYXn{$!xe(_pHYyjo`NPG!?A(rpJVT_? z8RPa#z`656@s=f>>f8mV*A2b(!L`2bPt~Q~*yARCRo8_n$%Ybb#G1)W2N9r$W2zD( z5&`7TBPepjAFX6sW}q0rPG&*hn$WVBrYptcE6&@H+SzNqt-dU620mq|0(r*g=Fpmj zV~f8u2aJ#~;7P8;qEL1EVe&-r(1Lk=Dk<}~f&6qL>YUTGJg2jXqnj$Q3(m}^{?4GF zfmDO6zvIe`=-eGiQIg~p6U3NqI6dfD+H`WbN1bjG;VjzO_k2-uUv=7%4HNfB5gpdz zMCh8_alPM$$;H>K(9Y1`FylOr4!gcMu82BwvjRq7;H6&63kwy5s;q~o5<|QGu4~bf zm%EhvxTG@nOaABKB(IYQb=}#%=1@+Xmz;~fmER39k>z5_v@sZY{hYLXu>l(o%IVD9 zs&nicN?*B7WfGF6N`SIsUn+W!U3A9_n746a3qJWKTMh7}*;ApL29t{wH!a}|HDLCM za0{|JzgO@?9Gd5LYvFcV%_1{7<9M>|HvhJDSir8q7~W-`qK=f-(*at;b8nOVk6$oJ z5S&S+muJqtwO7Vj13sK{-Ki3GgO4cSe)hn+uNMF0Y%M)_fx-{(U0A^{%ZBQU<|T*L ztNJbGLuA<4jzx_&=SX%Rk@CE`#Zs#>dejLYXq^4}V(ie9gLcZmbC9nvIf9?QXPJr& z&!_agyK#ll7z~`t4D+m^rL#YE0GQB4j_37<-~-P#idYXy?2=6QSYAkluk4@768zID zLH%(j4>8|aygtR_WJD~_eDPIB{|x99uI@SSPAi$6!ADC%e&RH@Ny(o{*q2nUPSa?` z$t1+9m7v)ZE|pxgAP$08Ub<${Bucc5QQc8BD1KEl-HMgg^gax@kvosO^@^^ zCKHXvkIKiMGuznzo*Ag4kbA1fFVzUnS6tQ^t~=lrD1IR}-=Oo0;8l7`eR_~9_sBDQ z(I1y?CW@W13Ezh=`91`=?$&*2Mj173aN=xanpZI{eoqZy2x$`XgWTQ%s*9Q1vfB=_ z-p#0@xf`YX@&XAaf9-7Fv?`9NfUUmv9(T$rFf-`()THJEko7S>rG@{|ItoIE@09ck zyt@OmaddhMt1V|PE;HimH}GkxYjJn+mEna&pfYSYzqoQ}iApT|C_uiZ%S}#1)^l>_ zwj^dnLYmng$x5yL3O)`qGK4zw@Bs{%g9!slN6Ra#-R4`*tfP~1sdi=2QOQM>qcd!= zXG=A>PMI&aahm(svu!8T+TXoZ`{_$}1w<=O5$2nH!CST+?$Y-jJ7lFbQ}=bmkQ!|=@oP|(P-Nc z?*B1?4K-p^ru(uTEvu3=kQ(pebs8hmM>i}D8nkX?8#=6WZ8O0~T0(|r><){N`Xy3= z>X*CA?vu+8fMIN~z3tX@#h{9t`l!k+NOxxB$4m`NkI_=+#r0`n9P7dLwojmO(4*Z){0{4K_OrHK+1tXPT3y=?{1dQ( zmpP_ma6!3Jrb~rUf6>`OmAPsb8YmIhrtMU&K}UDTgA?;P9!U6E-Bk{GG$xAb1HD+~$+ zbc5=_DwCnsfzZssSj(2|x*BdpcVHH4;t3#ec+E^V-(Fj11&}e%H9fdJF7;ZKN>IHF zBjRM|Fdle$2rpxl<>@ez+Z1AHy#=G-rS)(yL*$HY_;bb4sr=kHkxX>knd-47Q7cDC zPIAtTP?MmdPz_cPpAXPxw+($Ufq`Xg3&eh@)cC!Vgox`~!x)e^P93$=>&ufFw;c6~ z;oEuVjq>(~BpNucnjK6%Shh6G^mKMO%__Su!|ODTnxRP=I!-^zD=K4Sd%+%;)LbD8 z=M65l9>!%QpzV><+IYgaU{+Xcfh&>d)z3Lm3*9c0jAwR|8dzIgMnYc$ z6lnXm9y_V?z;Kvm&e7Ed@)j_CIrm@@plIp%*M5&oy)MR!HD@vb9b(e*zJe&E0R;i* zxpPW{kyQdLn0RM{8Hg)Zk7j>v8qdP;CtOyulUIj*EY(a^8)c6+|&crEJrtE=?LlaN*&&EyuO??ZUqKaFyIHO8gRdG!T^m;&HP}|5|Bw_FgK0XG#E#tkv@y9T{j~ZMT>v&m0 z>W^%{L%|Y#M*npx8&Neev%E^RvE5O9Z@%d|Xr~QRV0JgOq}x2W30}SxXYqlnx-KwS z8b1UKJ>@V;fXjpPBj7DS{w$Jaf2M0*(6wdJ>gCU>U1n?ro7R{lt=nYR2m&Kl5$O+`6%i$@@sy)TG84Odw_ zfWf-s%`uJ;q6w#ahcJNrysR<@xgNiVqta9F8LH$0w_atr;ar+!*g*vU$8vq3R6jh_7j2@;#I|}Lwyv+0PLI_Ew%nU zJPC~CEoVMKKQ&HO9$Buxy;+@ia;5eXFws5ZJ1yGv2rS;XhL*KzF6vNTY*}NV-!@;r zXqlVo=KnB~1MsgJRR(HEVXsw#a*g~|4`@!{@V({U<-VB!l60(V2&?W3N_r7*ARv%m zAQJw`#m#`^Aj;K5t|Jzo3qQ2f`hzMlgZAewt&x}6u66=DYKF^4q`S4l?3qbN2MTB6Uv zr;&3;4K?PWZcfVC6 zlb()8ttc@sp+Hlin{JGUU{2kHJGB^WCfQvuqZ@sFZajkQ;?^=7qn&&aO)21gdAg^@ z>h){Ia_1sXo(a!GbDVP?yc4xj9nQT4AAd?_ppp0t2k-)xi7y><<;c6w9_P+Vzm}ip zQ;XZP#aWB)V!n?C+m&8SkVXm#S}-sD^8U!dGTq%yn#0A$(mJ_etm^r6jYZ;F(M@;) zhq2@H%K$>=W8bGZqGu~7es8^4V?FGe7OUDXfFfRH-5SULoLqb$O9Eim1ss05f3j-~ zfV1f*=0CjFsu_8NvfTyPkX-l;qJJOMuL;j)~5x#f4Ff|)cO!&-8*E2Q|m z8TkVZQ3D9)IF?V4?wF&DLikgH)m(k7nb@F2OfxV#brp2g5lW~@F?pW%8ENnh?6Z8* zDZt7mnAOlu@|)ICF-a|eM&VBJyg=W4{c;FHo1bb2ONyZdkryHK&6*NmS56=mUOTGD@PNd z+u*Dg1BbU%C>5T1sU1^J0601wxzB(jrmb+sTm%7t#)%Bhwh8jl`Dk*V=HMs*y9w7&Q1Xr%K=Bh`R zHZ;2olW?eJwmj+7<9l_O%jtLojavB`DIQeSt>r|PuWApsfsH%>49<*~-wEpVlOZ-%qHta^=M!q~@@%nTt$>W6X zfa2GuJhXrORfr4;c(&MhY0hFLiYK|A28=FF0iS&+o}4OBX0T=%*Ps()LR8Yv&+Jxp zO|GYBSI0ixNQ;tVV*CFXdkdf{ySRH4DG8MZkp_`&MY=-)=}tj9MY=<}6_5@=y1PNT zK@jQgu7h;k{iyHv{pZe|d+*HaI4|KjXFq%YV*S=y`wnoDN*$>4RmX9Wn8|SKnC~s@ z*^-SH12FIU2Jq*1DdENU8uai^UMuG5|*%aSJH1MO|ExoFcOanuk?j4uWJgR!HB7KJmG72#$-(tSvS!^{{E znIwL2!h=CmX_!vECwJZ}4=Wn-Q`y#IY{Wn=L<)%wD#qw-xxg z@k@<@$?`fj{L6$h=#97wI!De9T1wbCj0=yO(Tmx6;+*Hdy>_rU^1KY=p1*YAa66^1 z7}MIw@$-2|^kr9}de=2thsB-t^@%Tq8XMYMfAr!gv+Dt>A45fsV z8oey@^E{V>rzNl~AA_kY89W%-wfk-7N<;+)k7nrTD)3tl6sG_t*3{`SN9fuCHNnX7 zF}!~BwOuRD1vTcgfsF|S*N;Na!OKX#BRz!wM?Umf26d)hqg~)%nz}p^_`aIY>!DH1 z;HUlAuMz>FgPjtJq$&QWzZ7sb+TCLg*6`MThcU+Xl(b9pmW>%v6ZG zO+j21tBgvuLI`1YSU)8C?}c)qz1SzSc>gcch#b;Eq2Pv4zV;?7q~d1cLh?z*>d9th zp=no~mK0CM!1=ajCob;7&k)VEP%X{mrmdrROc-0n8`*}Bt?YPRY(;{#{_#0iB;~!^ zp46Zr#;@6#QrL_4cckD~ZBcLuq0(Q! ztt1LpGkqwQmMnRH_2h6r)$f4zTeaMams25NX8>(ap01q6_XA_bV z-4ZWR{9Qjd`2Q$MQBJV+K@KpTPJ)=N2_OVQ+N!}XTGnQc(`Gbw(`Gpdfc=X9Rp8+i zq}gda?qjI#f<`{mH8yGTZa@o`ZL`o^4Ry;LmwM%cX@U#d4!=~YYXK808=&*OD!UHQ zR0Qx_|4eg%>Sbv{quMfo5a8@Cfc`odL#H$VF(^2}w5VdQdL}V5f~OB?g9Zx$>)!Jw zH*Fw=cj9F0XLr2|kU1p$p3oEAW?msfq=Zap*p+;!j4;VR7d{Z04GD3t)7DV8_UYaw3aQedIPdbnXWW@H}7`P zgh&iJqZba_V`WApypEO2E+R+=2Iq%M5@&`xg%uH>Ib+o~IA~Fh0RB-q|#Um&G z(Uti;g|EY2|Mi9fal0JRE1Gu$l>UsUkuL;J)8b`Td%G9+USVg|>1bLe5}e{x@W zVkii`OJzU)0IJ&cYuIp&1K!tJkeK{7AmOO%>8_b|%Z;Pf?NK*b5@>n(zsjn#$eUki z*);ui*#G zEOw^sN#~XDK`?)}{v(Wh2q;&?fOp?2xm!27%fR3(L)ipt$3FxSsRN1yyV)`Kptl=@ z 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�PoX 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 J$dp0&{Xc#ccL@Lh literal 0 HcmV?d00001 diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md index c2e9689b3..fc6307546 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md @@ -1,5 +1,7 @@ Amazon EventBridge triggers an AWS Lambda function to replicate FSx for OpenZFS volumes across file systems located in the same account and region, or across different accounts and regions. +![Architecture diagram](./ArchDiagram.png) + The AWS SAM template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies the snapshot of a volume and transfers it to the target FSx system, which can be located in the same or a different AWS account and/or region. For FSx-OpenZFS periodic volume replication in same account and same region, please refer to the Serverless Land Pattern From 3eabd177ab7b72bb8b8dee06c4070a0c8bb2ce96 Mon Sep 17 00:00:00 2001 From: Anup Rajpara Date: Fri, 7 Mar 2025 15:22:47 +0000 Subject: [PATCH 3/5] Fixed code review comments --- .../README.md | 51 ++++------- .../destination-template.yaml | 6 +- .../example-pattern.json | 2 +- .../source-template.yaml | 5 +- .../src/CopySnapshotAndUpdateVolume.py | 80 +++++++++++------ .../src/PeriodicReplication.py | 88 ++++++++++++------- 6 files changed, 132 insertions(+), 100 deletions(-) diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md index fc6307546..7257a3ba7 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/README.md @@ -1,12 +1,13 @@ +# Cross-account cross-region replication for FSx for OpenZFS volumes with AWS Lambda Amazon EventBridge triggers an AWS Lambda function to replicate FSx for OpenZFS volumes across file systems located in the same account and region, or across different accounts and regions. ![Architecture diagram](./ArchDiagram.png) -The AWS SAM template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies the snapshot of a volume and transfers it to the target FSx system, which can be located in the same or a different AWS account and/or region. +The [AWS Serverless Application Model](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-cli-install.html) (AWS SAM) template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies the snapshot of a volume and transfers it to the target FSx system, which can be located in the same or a different AWS account and/or region. -For FSx-OpenZFS periodic volume replication in same account and same region, please refer to the Serverless Land Pattern +For FSx for OpenZFS periodic volume replication in same account and same region, please refer to the Serverless Land Pattern -The template contains a sample Lambda function that creates a snapshot of the source FSx Volume ID. Once the snapshot becomes available, it invokes another Lambda function in the destination AWS account or region, which initiates the replication by calling the copy_snapshot_and_update_volume API. This solution also notifies users via an SNS topic of any errors and snapshot creation details. +The template contains a sample Lambda function that creates a snapshot of the source FSx Volume ID. Once the snapshot becomes available, it invokes another Lambda function in the destination AWS account and/or region, which initiates the replication by calling the copy_snapshot_and_update_volume API. This solution also notifies users via an Amazon SNS topic of any errors and snapshot creation details. Important: this application uses various AWS services and there are costs associated with these services after the Free Tier usage - please see the [AWS Pricing page](https://aws.amazon.com/pricing/) for details. You are responsible for any AWS costs incurred. No warranty is implied in this example. @@ -14,7 +15,7 @@ Important: this application uses various AWS services and there are costs associ * [Create two AWS accounts for cross account setup](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) if you do not already have, create them and log in. The IAM user that you use must have sufficient permissions to make necessary AWS service calls and manage AWS resources. -* [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) iinstalled and configure two profiles with credentials for the individual accounts as below: +* [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) installed and configure two profiles with credentials for the individual accounts as below: ``` [default] @@ -42,80 +43,66 @@ Important: this application uses various AWS services and there are costs associ sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t destination-template.yaml --profile crossaccount ``` 4. During the prompts: - - Enter a target stack name - Enter the desired AWS Region - Enter a TargetVolumeID - Enter a CopySnapshotAndUpdateVolume - "Options" parameter. Comma (,) separated values - Enter a CopySnapshotAndUpdateVolume - "CopyStrategy" parameter (Default = INCREMENTAL_COPY) - - Enter Source AWS Acctount Id + - Enter source AWS account Id - Allow SAM CLI to create IAM roles with the required permissions. - - Save arguments to configuration file [Y/n]: Y - - SAM configuration file [samconfig.toml]: - - SAM configuration environment [default]: crossacct - - Once you have run `sam deploy --guided` mode once and saved arguments to a configuration file, you can use `sam deploy` in future to use these defaults by adding `--config-env crossacct`. - - + - Save arguments to configuration file [Y/n]: N 5. Once the above stack is deployed in the target account/region, use the AWS SAM command listed below to deploy the resources in the source AWS account using the source-template.yaml file. ``` sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t source-template.yaml ``` 6. During the prompts: - - Enter a source stack name - Enter the desired AWS Region - Enter a SourceVolumeID - Enter a CRON schedule for snapshots (Default = [0 0/6 * * ? *] every six hours) - - Enter a Value of snapshot Name (Default = fsx_scheduled_snapshot) + - Enter a value of snapshot Name (Default = fsx_scheduled_snapshot) - Enter an Email for notifications - Allow Success Notification (Default = Yes) - - Enter Number of days to retain custom-scheduled snapshots (Default = 7 days) - - Enter Target AWS Acctount Id - - Enter Target Region - - Enter Target stack name used previously - - Once you have run `sam deploy --guided` mode once and saved arguments to a configuration file, you can use `sam deploy` in future to use these defaults. - + - Enter number of days to retain custom-scheduled snapshots (Default = 7 days) + - Enter target AWS account Id + - Enter target region + - Enter target stack name used previously + - Save arguments to configuration file [Y/n]: N 7. Note the outputs from the previous SAM deploy commands. These contain the resource names and/or ARNs which will be used for later review. ## How it works This pattern sets up the following resources: -- An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by the customer to create snapshots of the provided FSx Source Volume ID. +- An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by you to create snapshots of the provided FSx Source Volume ID. - A sample [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) function that creates snapshots of the source FSx Volume ID and invokes another Lambda function in the destination AWS account and/or region, which will initiate the replication by calling the [CopySnapshotAndUpdateVolume](https://docs.aws.amazon.com/fsx/latest/APIReference/API_CopySnapshotAndUpdateVolume.html) API. - The function also deletes the older snapshots in the source and target AWS account/region based on the configured retention period. - An SNS topic that sends notifications for any success or failure events while creating or replicating snapshots. ## Testing - 1. Based on the provided schedule, monitor the CloudWatch logs and the FSx snapshots that are created. 2. The Lambda function will send various success and failure notifications to the configured email address via an SNS topic. - ## Cleanup - - 1. Change directory to the pattern directory: ``` cd serverless-patterns/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication ``` -2. Delete all created resources in same account. +2. Delete resources from the source account. ``` - sam delete --stack-name + sam delete --stack-name ``` -3. If API is deployed in cross account then run the same command again with the stackname that is deployed in different account along with --profile crossaccount +3. Delete resources from the destination/target account. ``` - sam delete --stack-name --profile crossaccount --config-env crossacct + sam delete --stack-name --profile crossaccount --config-env crossacct `````` 3. During the prompts: * Enter all details as per requirement. --- -Copyright 2024 Amazon.com, Inc. or its affiliates. All Rights Reserved. +Copyright 2025 Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: MIT-0 diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml index c81f5d854..9568285e9 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/destination-template.yaml @@ -104,7 +104,9 @@ Resources: - fsx:TagResource - fsx:ListTagsForResource - fsx:CopySnapshotAndUpdateVolume - Resource: "*" + Resource: + - !Sub "arn:aws:fsx:${AWS::Region}:${AWS::AccountId}:*" + - !Sub "arn:aws:fsx:*:${SourceAWSAcctId}:*" # # Lambda function that will make CopySnapshotAndUpdateVolume API call. # @@ -120,7 +122,7 @@ Resources: COPY_STRATEGY: !Ref CopyStrategy Handler: CopySnapshotAndUpdateVolume.lambda_handler Role: !GetAtt CopySnapshotAndUpdateVolumeLambdaRole.Arn - CodeUri: src/ + CodeUri: src/CopySnapshotAndUpdateVolume.py Runtime: python3.13 Timeout: 600 diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json index 65ab658ac..8f60fab29 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json @@ -11,7 +11,7 @@ "This pattern sets up the following resources:", "An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by the customer to take snapshots of the provided FSx Source VolumeID.", "An SNS topic that sends notifications for any failures while creating snapshots.", - "A function also deletes older snapshots.", + "The function also deletes older snapshots.", "Sample Lambda functions that create snapshots of the source FSx VolumeID and replicate them by invoking another Lambda function, which calls the copy_snapshot_and_update_volume API for the target VolumeID in the destination AWS account or region." ] }, diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml index 0d5f9d55d..30f4dcb2d 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/source-template.yaml @@ -121,8 +121,7 @@ Resources: - fsx:DeleteSnapshot - fsx:TagResource - fsx:ListTagsForResource - - fsx:CopySnapshotAndUpdateVolume - Resource: "*" + Resource: !Sub "arn:aws:fsx:${AWS::Region}:${AWS::AccountId}:*" - Effect: Allow Action: - lambda:InvokeFunction @@ -156,7 +155,7 @@ Resources: DEST_LAMBDA_REGION: !Ref DestinationRegion Handler: PeriodicReplication.lambda_handler Role: !GetAtt SnapshotLambdaRole.Arn - CodeUri: src/ + CodeUri: src/PeriodicReplication.py Runtime: python3.13 Timeout: 900 diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py index ba1bc5357..8a9844d5b 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/CopySnapshotAndUpdateVolume.py @@ -4,9 +4,12 @@ import datetime import boto3 import botocore +import logging +logger = logging.getLogger() +logger.setLevel("INFO") -print("boto3 version: " + boto3.__version__) -print("botocore version: " + botocore.__version__) +logger.info("boto3 version: " + boto3.__version__) +logger.info("botocore version: " + botocore.__version__) session = boto3.session.Session() fsx_client = session.client(service_name='fsx') @@ -20,48 +23,67 @@ def deleteSnapshotIfOlderThanRetention(snapshot, retain_days): delta = now_date - created_date try: - print("Examining OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + logger.info("Examining OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) if delta.days > retain_days: fsx_client.delete_snapshot(SnapshotId=snapshot_id) - print("Deleted FSx for OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + logger.info("Deleted FSx for OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) else: - print("Skipping (retaining) FSx for OpenZFS volume " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + logger.info("Skipping (retaining) FSx for OpenZFS volume " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) except Exception as e: - print("The error is: ", e) + logger.info("The error is: " + str(e)) def deleteSnapshots(retain_days, snapshot_name): - print ("deleting snapshots") - + logger.info ("deleting snapshots") + # query the FSx API for existing snapshots - print ("Getting snapshots for volume id = " + volId) - snapshots = fsx_client.describe_snapshots( - Filters=[{'Name': 'volume-id', 'Values': [volId]}], - MaxResults=20 - ) - print(snapshots) + logger.info ("Getting snapshots for volume id = " + volId) + next_token = None + while True: + # Prepare the base request parameters + params = { + 'Filters':[{'Name': 'volume-id', 'Values': [volId]}], + 'MaxResults': 2 # 20 snapshots per API call + } + + # Add NextToken if it exists + if next_token: + params['NextToken'] = next_token + + # Make the API call + response = fsx_client.describe_snapshots(**params) + + # Process snapshots in current response + snapshots = response.get('Snapshots', []) + logger.info(snapshots) + + # loop thru the results, checking the snapshot date-time and call Fsx API to remove those older than x hours/days + logger.info("Starting purge of snapshots older than " + str(retain_days) + " days for volume " + volId) + + for snapshot in snapshots: + if snapshot['Name'].startswith(snapshot_name): + deleteSnapshotIfOlderThanRetention(snapshot, retain_days) - # loop thru the results, checking the snapshot date-time and call Fsx API to remove those older than x hours/days - print("Starting purge of snapshots older than " + str(retain_days) + " days for volume " + volId) - for snapshot in snapshots['Snapshots']: - if snapshot['Name'].startswith(snapshot_name): - deleteSnapshotIfOlderThanRetention(snapshot, retain_days) + # Check if there are more results + next_token = response.get('NextToken') + if not next_token: + break def lambda_handler(event, context): - print(event) + logger.info(event) src_snapshot_arn = event["src_snapshot_ResourceARN"] retain_days = event["snapshot_retain_days"] snapshot_name = event["snapshot_name"] rspJson = {} try: - print ("Starting copy snapshot operation ...") + logger.info ("Starting copy snapshot operation ...") options_string = os.environ.get("OPTIONS") options = [] if len(options_string) == 0 else list(options_string.split(", ")) option_list = [] for item in options: option_list.append(item.strip()) - print ("CopySnapshotAndUpdateVolume Options: ") - print (option_list) + logger.info ("CopySnapshotAndUpdateVolume Options: ") + logger.info (option_list) response = fsx_client.copy_snapshot_and_update_volume( VolumeId=volId, @@ -69,24 +91,24 @@ def lambda_handler(event, context): Options=option_list, CopyStrategy=os.environ.get("COPY_STRATEGY") ) - print (response) + logger.info (response) msg = "Started CopySnapshotAndUpdateVolume operation\n\n" msg += "Destination Volume ID : " + os.environ.get("DEST_VOLUME_ID") + "\n" msg += "Source Snapshot ARN : " + src_snapshot_arn - print (msg) + logger.info (msg) rspJson["Message"] = msg rspJson["Subject"] = 'Success Notification: CopySnapshotAndUpdateVolume' except Exception as e: - print("The error is: ", e) + logger.info("The error is: " + str(e)) msg = "Error while initiating CopySnapshotAndUpdateVolume operation\n\n" msg += "Destination Volume ID = " + os.environ.get("DEST_VOLUME_ID") + "\n" msg += "Source Snapshot ARN = " + src_snapshot_arn + "\n" + str(e) - print (msg) + logger.info (msg) rspJson["Message"] = msg rspJson["Subject"] = 'Error Notification: CopySnapshotAndUpdateVolume' - print (rspJson) + logger.info (rspJson) deleteSnapshots(retain_days, snapshot_name) - print ("function completed") + logger.info ("function completed") return rspJson \ No newline at end of file diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py index 8ecd6d1de..90f688c5f 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/src/PeriodicReplication.py @@ -4,9 +4,12 @@ import datetime import boto3 import botocore +import logging +logger = logging.getLogger() +logger.setLevel("INFO") -print("boto3 version: " + boto3.__version__) -print("botocore version: " + botocore.__version__) +logger.info("boto3 version: " + boto3.__version__) +logger.info("botocore version: " + botocore.__version__) session = boto3.session.Session() fsx_client = session.client(service_name='fsx') @@ -31,47 +34,66 @@ def deleteSnapshotIfOlderThanRetention(snapshot): delta = now_date - created_date try: - print("Examining OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + logger.info("Examining OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) if delta.days > retain_days: fsx_client.delete_snapshot(SnapshotId=snapshot_id) - print("Deleted FSx for OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + logger.info("Deleted FSx for OpenZFS volume snapshot " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) else: - print("Skipping (retaining) FSx for OpenZFS volume " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) + logger.info("Skipping (retaining) FSx for OpenZFS volume " + snapshot['Name'] + " with Sanpshot ID = " + snapshot_id) except Exception as e: - print("The error is: ", e) + logger.info("The error is: %s", str(e)) def deleteSnapshots(): - print ("deleting snapshots") + logger.info ("deleting snapshots") volId = os.environ.get("SRC_VOLUME_ID") # query the FSx API for existing snapshots - print ("Getting snapshots for volume id = " + volId) - snapshots = fsx_client.describe_snapshots( - Filters=[{'Name': 'volume-id', 'Values': [volId]}], - MaxResults=20 - ) - print(snapshots) - - # loop thru the results, checking the snapshot date-time and call Fsx API to remove those older than x hours/days - print("Starting purge of snapshots older than " + str(retain_days) + " days for volume " + volId) - for snapshot in snapshots['Snapshots']: - if snapshot['Name'].startswith(snapshot_name): - deleteSnapshotIfOlderThanRetention(snapshot) + logger.info ("Getting snapshots for volume id = " + volId) + next_token = None + while True: + # Prepare the base request parameters + params = { + 'Filters':[{'Name': 'volume-id', 'Values': [volId]}], + 'MaxResults': 20 # 20 snapshots per API call + } + + # Add NextToken if it exists + if next_token: + params['NextToken'] = next_token + + # Make the API call + response = fsx_client.describe_snapshots(**params) + + # Process snapshots in current response + snapshots = response.get('Snapshots', []) + logger.info(snapshots) + + # loop thru the results, checking the snapshot date-time and call Fsx API to remove those older than x hours/days + logger.info("Starting purge of snapshots older than " + str(retain_days) + " days for volume " + volId) + + for snapshot in snapshots: + if snapshot['Name'].startswith(snapshot_name): + deleteSnapshotIfOlderThanRetention(snapshot) + + # Check if there are more results + next_token = response.get('NextToken') + if not next_token: + break def lambda_handler(event, context): try: # call the FSx snapshot API - print ("Creating a snapshot for the volume = " + os.environ.get("SRC_VOLUME_ID")) + logger.info ("Creating a snapshot for the volume = " + os.environ.get("SRC_VOLUME_ID")) response = fsx_client.create_snapshot( # append datetime to ensure snap name is unique Name=os.environ.get("SNAPSHOT_NAME") + datetime.datetime.utcnow().strftime("_%Y-%m-%d_%H:%M:%S.%f")[:-3], VolumeId=os.environ.get("SRC_VOLUME_ID"), Tags=[{'Key': 'CreatedBy','Value': os.environ.get("SNAPSHOT_TAG_VALUE") },] ) - print(response) + logger.info(response) src_snapshot = response["Snapshot"] if sns_notification: - print ("Sending SNS notification for successful snapshot creation") + logger.info ("Sending SNS notification for successful snapshot creation") msg = "Snapshot Created Successfully\n\n" msg += "Snapshot ID : " + src_snapshot["SnapshotId"] + "\n" msg += "ResourceARN : " + src_snapshot["ResourceARN"] + "\n" @@ -81,7 +103,7 @@ def lambda_handler(event, context): send_sns_notification (msg, 'Success Notification: CreateSnapshot') except Exception as e: - print("The error is: ", e) + logger.info("The error is: " + str(e)) errMessage = "Error while creating a snapshot from the Source VolumeId = " + os.environ.get("SRC_VOLUME_ID") + "\n" errMessage += "Error = " + str(e) send_sns_notification (errMessage, 'Error Notification: CreateSnapshot') @@ -92,22 +114,22 @@ def lambda_handler(event, context): copy_snapshot = False for i in range(1, 10): time.sleep(10) - print ("Describe Snapshot - Attempt=" + str(i)) + logger.info ("Describe Snapshot - Attempt=" + str(i)) ret = fsx_client.describe_snapshots(SnapshotIds=[src_snapshot["SnapshotId"]]) - print("Snapshot = " + src_snapshot["SnapshotId"] + " is in " + ret["Snapshots"][0]["Lifecycle"] +" state.") + logger.info("Snapshot = " + src_snapshot["SnapshotId"] + " is in " + ret["Snapshots"][0]["Lifecycle"] +" state.") if ret["Snapshots"][0]["Lifecycle"] == "AVAILABLE": copy_snapshot = True break if not copy_snapshot: - print ("ERROR - The snapshot does not transition to AVAILABLE state for some reason - Snapshot ID : " + src_snapshot["SnapshotId"]) + logger.info ("ERROR - The snapshot does not transition to AVAILABLE state for some reason - Snapshot ID : " + src_snapshot["SnapshotId"]) msg = "ERROR - The snapshot does not transition to AVAILABLE state for some reason !!\n\n" msg += "Snapshot ID : " + src_snapshot["SnapshotId"] + "\n" msg += "Snapshot Name : " + src_snapshot["Name"] + "\n" send_sns_notification (msg, 'Error Notification: CreateSnapshot') else: try: - print ("Assuming role in target ...") + logger.info ("Assuming role in target ...") sts_connection = boto3.client('sts') target_role = sts_connection.assume_role( RoleArn=os.environ.get("DEST_IAM_ROLE"), @@ -131,24 +153,24 @@ def lambda_handler(event, context): } payload = json.dumps(payload) - print ("Invoking target lambda function ...") + logger.info ("Invoking target lambda function ...") response = lambda_client.invoke( FunctionName=os.environ.get("DEST_LAMBDA_ARN"), InvocationType='RequestResponse', Payload=payload ) - print ("Received response from a target lambda function ...") + logger.info ("Received response from a target lambda function ...") lambda_rsp = json.load(response["Payload"]) - print(lambda_rsp) + logger.info(lambda_rsp) send_sns_notification (lambda_rsp["Message"], lambda_rsp["Subject"]) except Exception as e: - print("The error is: ", e) + logger.info("The error is: " + str(e)) errMessage = "Error while invoking target lambda function\n\n" errMessage += "Source Snapshot ARN = " + src_snapshot["ResourceARN"] + "\n" + str(e) - print(errMessage) + logger.info(errMessage) send_sns_notification (errMessage, 'Error Notification: Invoke Lambda Function') deleteSnapshots() - print ("function completed") + logger.info ("function completed") From b9410855048e534882ab444b0a7cc6931dcb1791 Mon Sep 17 00:00:00 2001 From: Anup Rajpara Date: Fri, 7 Mar 2025 20:04:12 +0000 Subject: [PATCH 4/5] Fixed code review comment regarding description field --- .../example-pattern.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json index 8f60fab29..497e2d527 100644 --- a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/example-pattern.json @@ -1,6 +1,6 @@ { "title": "Replicate FSx-OpenZFS volumes across file systems", - "description": "Periodic Amazon FSx for OpenZFS volume replication between file systems across AWS Regions and accounts using Amazon EventBridge Scheduler and AWS Lambda", + "description": "Periodic Amazon FSx for OpenZFS volume replication across AWS Regions and accounts using Amazon EventBridge Scheduler and AWS Lambda", "language": "Python", "level": "200", "framework": "SAM", @@ -46,4 +46,4 @@ "linkedin": "anup-rajpara-developer/" } ] -} \ No newline at end of file +} From 33706ba1c7bd49e798008226c2b762aa8754e0fc Mon Sep 17 00:00:00 2001 From: Ben <9841563+bfreiberg@users.noreply.github.com> Date: Fri, 7 Mar 2025 21:15:06 +0100 Subject: [PATCH 5/5] Add final pattern.json file --- ...s-account-region-periodic-replication.json | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication.json diff --git a/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication.json b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication.json new file mode 100644 index 000000000..c82b3854c --- /dev/null +++ b/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication.json @@ -0,0 +1,79 @@ +{ + "title": "Replicate FSx-OpenZFS volumes across file systems", + "description": "Periodic Amazon FSx for OpenZFS volume replication across AWS Regions and accounts using Amazon EventBridge Scheduler and AWS Lambda", + "language": "Python", + "level": "200", + "framework": "SAM", + "introBox": { + "headline": "How it works", + "text": [ + "The AWS SAM template deploys an Amazon EventBridge Scheduler to trigger an AWS Lambda function based on a user-defined schedule. This function copies snapshots of the volume and replicates them to the target FSx system available in a different AWS account and/or region. The template contains a sample Lambda function that creates a snapshot of the source FSx VolumeID. Once the snapshot becomes available, it invokes another Lambda function in the destination AWS account or region, which initiates the replication by calling the copy_snapshot_and_update_volume API. This solution also notifies users using an SNS topic for any errors and snapshot creation details.", + "This pattern sets up the following resources:", + "An Amazon EventBridge Scheduler that triggers a Lambda function based on the schedule defined by the customer to take snapshots of the provided FSx Source VolumeID.", + "An SNS topic that sends notifications for any failures while creating snapshots.", + "The function also deletes older snapshots.", + "Sample Lambda functions that create snapshots of the source FSx VolumeID and replicate them by invoking another Lambda function, which calls the copy_snapshot_and_update_volume API for the target VolumeID in the destination AWS account or region." + ] + }, + "gitHub": { + "template": { + "repoURL": "https://github.com/aws-samples/serverless-patterns/tree/main/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", + "templateURL": "serverless-patterns/eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", + "projectFolder": "eventbridge-lambda-fsx-openzfs-cross-account-region-periodic-replication", + "templateFile": "source-template.yaml" + } + }, + "deploy": { + "text": [ + "sam deploy --guided --capabilities CAPABILITY_AUTO_EXPAND CAPABILITY_IAM CAPABILITY_NAMED_IAM -t source-template.yaml" + ] + }, + "testing": { + "text": [ + "See the GitHub repo for detailed testing instructions." + ] + }, + "cleanup": { + "text": [ + "Delete the stack: sam delete --stack-name ." + ] + }, + "authors": [ + { + "name": "Anup Rajpara", + "image": "https://drive.google.com/file/d/1MqpPNLCqbU4kvvtTspNXZBqD99aVIJI9/view?usp=sharing", + "bio": "Anup is passionate about serverless & event-driven architectures.", + "linkedin": "anup-rajpara-developer/" + } + ], + "patternArch": { + "icon1": { + "x": 20, + "y": 50, + "service": "eventbridge-scheduler", + "label": "EventBridge Scheduler" + }, + "icon2": { + "x": 50, + "y": 50, + "service": "lambda", + "label": "AWS Lambda" + }, + "icon3": { + "x": 80, + "y": 50, + "service": "fsx", + "label": "FSx for OpenZFS" + }, + "line1": { + "from": "icon1", + "to": "icon2", + "label": "" + }, + "line2": { + "from": "icon2", + "to": "icon3", + "label": "" + } + } +}