1

我正在为跨不同区域的 EFS-EFS 自动执行 AWS Datasync 任务。我在 python 中编写了一个 lambda 代码,并希望通过 CloudWatch 事件 cron 表达式开始执行数据同步任务。

    import boto3

    client = boto3.client('datasync', region_name='us-west-2')

    def lambda_handler(event,context):

    response = client.start_task_execution(
    TaskArn='arn:aws:datasync:us-west-2:7777777777:task/task-0ede5d4rd8a63338dfd8',

    OverrideOptions={
        'VerifyMode': 'POINT_IN_TIME_CONSISTENT'|'NONE',
        'Atime': 'NONE'|'BEST_EFFORT',
        'Mtime': 'NONE'|'PRESERVE',
        'Uid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'Gid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'PreserveDeletedFiles': 'PRESERVE'|'REMOVE',
        'PreserveDevices': 'NONE'|'PRESERVE',
        'PosixPermissions': 'NONE'|'BEST_EFFORT'|'PRESERVE',
        'BytesPerSecond': 123
    },
)

我在 python 中的上述 lambda 代码上遇到错误。任何人都可以帮我更正上面的代码吗?

4

2 回答 2

0

Datasync 不再可用作 boto3 的资源;它本身就是一项服务。您可以使用 CLi 或控制台使用数据同步来执行迁移

于 2020-01-17T21:38:27.827 回答
0

我知道这是一个旧线程,但我有类似的需求,最终在我的 lambda 中使用以下代码来触发数据同步任务运行。我正在使用 S3 触发器来启动 Lambda,以便当我将文件添加到我的存储桶时,它会启动数据同步到 Datasync 中的预配置任务。

import boto3

client = boto3.client('datasync', region_name='us-east-1')

def lambda_handler(event,context):
    response = client.start_task_execution(TaskArn='inserttaskarnhere')
于 2021-06-08T17:29:35.517 回答