2016-07-26 4 views
1

데이터 파이프 라인 정의가 json 형식이므로 파이썬에서 Boto3을 사용하여 'put'하고 싶습니다.Boto3을 사용하여 json 데이터 파이프 라인 정의 넣기

난 당신이 put-pipeline-definition를 사용하여 AWS CLI를 통해이 작업을 수행 할 수 있습니다 알고 있지만 Boto3 (그리고 AWS API는) pipelineObjects, parameterObjectsparameterValues에 정의를 분할하는 different format를 사용합니다.

json 정의에서 API/Boto로 예상되는 코드로 변환하려면 코드를 작성해야합니까? 그렇다면이 작업을 수행하는 라이브러리가 있습니까?

답변

1

데이터 파이프 라인에서 내 보낸 JSON 형식을 다음 양식의 python 함수를 사용하여 boto3이 필요로하는 pipelineObjects 형식으로 변환 할 수 있습니다.

def convert_to_pipeline_objects(pipeline_definition_dict): 
    objects_list = [] 
    for def_object in pipeline_definition_dict['objects']: 
     new_object = { 
      'id': def_object['id'], 
      'name': def_object['name'], 
      'fields': [] 
     } 
     for key in def_object.keys(): 
      if key in ('id', 'name'): 
       continue 
      if type(def_object[key]) == dict: 
       new_object['fields'].append(
        { 
         'key': key, 
         'refValue': def_object[key]['ref'] 
        } 
       ) 
      else: 
       new_object['fields'].append(
        { 
         'key': key, 
         'stringValue': def_object[key] 
        } 
       ) 
     objects_list.append(new_object)