AWS Lambda для активации конвейера данных

Я пытаюсь активировать конвейер данных на основе наличия *.tar файлов в S3. Я создал функцию Lambda и написал код Python Boto 3 для активации конвейера данных. Я протестировал функцию Lambda и обнаружил, что она работает, когда файл .tar существует, конвейер данных активирован, если конвейер данных не существует, не активируется.

Я пытаюсь понять причину этих проблем:

  1. Если в папке s3 нет файлов tar, print ("datapipeline not activated") не печатается в журналах.
  2. # P3 #
    # P4 #
  3. # P5 #
    # P6 #

Это сценарий Python, пожалуйста, дайте рекомендации по устранению этих проблем.

import boto3
import logging
logger = logging.getLogger()

def lambda_handler(event, context):
client = boto3.client('datapipeline')
s3_client = boto3.client('s3')
#client = boto3.client('datapipeline')
data_pipeline_id="df-xxxxxxxx"
bucket = 'xxxxx'
prefix = 'xxxx/xxxxx/'
paginator = s3_client.get_paginator('list_objects_v2')
response_iterator = paginator.paginate(Bucket=bucket, Prefix=prefix)
response_pipeline = client.describe_pipelines(pipelineIds=[data_pipeline_id])
for response in response_iterator:
for object_data in response['Contents']:
key = object_data['Key']
    #print (key)
if key.endswith('.tar'):
if(response_pipeline):
activate = client.activate_pipeline(pipelineId=data_pipeline_id,parameterValues=[])
print ("activated")
else:
print ("datapipeline not activated")

person Kumaran    schedule 10.09.2018    source источник


Ответы (1)


Думаю, я только что видел те же симптомы. Надеюсь, что мы поделимся нашим исправлением, и это поможет вам?

Мы отменили экземпляр конвейера, и нам нужно было снова включить конвейер, чтобы избежать этой ошибки.

person Don Vince    schedule 28.12.2018