AWS DataSync Lambda Automation

Я автоматизирую выполнение задачи AWS Datasync для EFS-EFS в разных регионах. Я написал лямбда-код на python и хочу начать выполнение задачи datasync с помощью выражения cron события CloudWatch.

    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. Может ли кто-нибудь помочь мне исправить приведенный выше код?

3 ответа

Я знаю, что это старый поток, но у меня была аналогичная потребность, и в итоге я использовал приведенный ниже код в моей лямбда-выражении, чтобы запустить задачу datasync. Я использую триггер 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')

Если целью является синхронизация между регионами, теперь вы можете использовать репликацию EFS. Нет необходимости в DataSync

Datasync больше не доступен в качестве ресурса для boto3; это услуга сама по себе. Вы можете использовать синхронизацию данных с помощью командной строки или консоли для выполнения миграции.

Другие вопросы по тегам