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; это услуга сама по себе. Вы можете использовать синхронизацию данных с помощью командной строки или консоли для выполнения миграции.