AWSDMS是否可以将S3Glacier作为目标?
创始人
2024-09-24 21:02:35
0

AWS DMS本身不支持将数据流式传输到S3 Glacier,但是可以使用Lambda函数将数据从DMS传输到S3 Glacier。以下是解决方法的代码示例:

  1. 创建Lambda函数

创建一个Lambda函数,将以下源代码复制到Lambda中。

import boto3
import os
import json
from io import BytesIO
import gzip

s3_res = boto3.resource('s3')

def lambda_handler(event, context):
    # Capture the DynamoDB stream event
    input_data = event['Records']

    # S3 bucket configuration - replace with your bucket & folder name
    bucket_name = 'my-glacier-bucket'
    folder_name = 'my_data_folder'

    # Create a new S3 object
    client = boto3.client('s3')
    key = folder_name + '/ssm-' + str(time.time()) + '.json.gz'

    byte_data = json.dumps(input_data).encode('UTF-8')

    # Compress data using GZIP compression
    gzip_data = BytesIO()
    with gzip.GzipFile(fileobj=gzip_data, mode='wb') as gz:
        gz.write(byte_data)
    data = gzip_data.getvalue()

    # Upload compressed data to S3 Glacier
    client.upload_archive(vaultName=bucket_name, body=data)

    # Log output to CloudWatch
    print('Data uploaded to S3 Glacier.')

    # Return success message
    return 'Success'
  1. 将Lambda函数连接到DMS任务

在DMS任务中设置Lambda函数作为目标端点,并将输入映射到Lambda函数的输入参数。在AWS管理控制台中启动DMS任务之前,请确保按照以下格式创建表映射:

{
    "TableName": "my_table_name",
    "TableMappings": [
        {
            "Type": "Include",
            "SourceSchema": "my_source_schema",
            "SourceTable": "my_source_table",
            "TargetTable": "my_target_table",
            "TargetSchema": "my_target_schema",
            "MappingProperties": {}
        }
    ],
    "TargetEndpointArn": "arn:aws:dms:us-east-1:123456789012:endpoint:QJLTZ7VV5YB6OQF435DG5PR73M",
    "ReplicationInstanceArn": "arn:aws:dms:us-east-1:123456789012:rep:3H5PB45D9JPYSOI25LVGNAE5GI",
    "MigrationType": "full-load",
    "TableMappingsEnabled": true,
    "StreamEnabled":

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...