AWS Data Pipeline 는 더 이상 신규 고객이 사용할 수 없습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS Data Pipeline 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS Data Pipeline으로 HTTP 요청
AWS Data Pipeline의 프로그래밍 객체에 관한 전체 설명은 AWS Data Pipeline API 참조를 확인하십시오.
AWS SDK 중 하나를 사용하지 않는 경우 POST 요청 메서드를 사용하여 HTTP를 통해 AWS Data Pipeline 작업을 수행할 수 있습니다. POST 메서드를 사용하는 경우, 요청의 헤더에 작업을 지정하고 요청 본문에 JSON 형식으로 작업 데이터를 입력해야 합니다.
HTTP 헤더 콘텐츠
AWS Data Pipeline 작업 시 HTTP 요청의 헤더에 다음 정보를 제공해야 합니다.
-
hostAWS Data Pipeline 엔드포인트입니다.엔드포인트에 대한 자세한 내용은 리전 및 엔드포인트를 참조하십시오.
-
x-amz-dateHTTP 날짜 헤더 또는 AWS x-amz-date 헤더에 타임스탬프를 제공해야 합니다. (일부 HTTP 클라이언트 라이브러리에서는 날짜 헤더를 설정할 수 없습니다.) x-amz-date 헤더가 있으면 요청 인증 시 모든 날짜 헤더가 무시됩니다.HTTP/1.1 RFC에 지정된 다음 3개 형식 중 하나로 날짜를 지정해야 합니다.
-
Sun, 06 Nov 1994 08:49:37 GMT (RFC 822, RFC 1123 이후)
-
Sunday, 06-Nov-94 08:49:37 GMT(RFC 1036에 의해 폐기된 RFC 850)
-
Sun Nov 6 08:49:37 1994(ANSI C asctime() 형식)
-
-
AuthorizationAWS가 요청의 유효성 및 진위를 확인하기 위해 사용하는 인증 파라미터의 집합입니다. 이 헤더를 생성하는 자세한 방법은 Signature Version 4 Signing Process 단원을 참조하십시오. -
x-amz-target– 요청 및 데이터 작업의 대상 서비스로 다음과 같은 형식을 띱니다.<<serviceName>>_<<API version>>.<<operationName>>예:
DataPipeline_20121129.ActivatePipeline -
content-typeJSON 및 버전을 지정하는 부분입니다. 예:Content-Type: application/x-amz-json-1.0
다음은 파이프라인을 활성화하기 위한 HTTP 요청의 헤더 예제입니다.
POST / HTTP/1.1 host: https://datapipeline.us-east-1.amazonaws.com x-amz-date: Mon, 12 Nov 2012 17:49:52 GMT x-amz-target: DataPipeline_20121129.ActivatePipeline Authorization: AuthParams Content-Type: application/x-amz-json-1.1 Content-Length: 39 Connection: Keep-Alive
HTTP 본문
HTTP 요청의 본문에는 HTTP 요청의 헤더에 지정한 작업의 데이터가 포함되며, JSON 데이터 스키마에 따라 각 AWS Data Pipeline API에 데이터 형식을 지정해야 합니다. AWS Data Pipeline JSON 데이터 스키마는 각 작업에 사용할 수 있는 데이터 및 파라미터(예: 비교 연산자, 열거형 상수)의 유형을 정의합니다.
HTTP 요청의 본문 형식 지정
JSON 데이터 형식을 사용하여 데이터 값과 데이터 구조를 동시에 표현합니다. 괄호 표기를 사용하여 요소를 다른 요소 안에 중첩할 수 있습니다. 다음 예제는 객체 3개와 해당 슬롯으로 구성되는 파이프라인 정의의 입력 요청을 보여줍니다.
{ "pipelineId": "df-00627471SOVYZEXAMPLE", "pipelineObjects": [ {"id": "Default", "name": "Default", "slots": [ {"key": "workerGroup", "stringValue": "MyWorkerGroup"} ] }, {"id": "Schedule", "name": "Schedule", "slots": [ {"key": "startDateTime", "stringValue": "2012-09-25T17:00:00"}, {"key": "type", "stringValue": "Schedule"}, {"key": "period", "stringValue": "1 hour"}, {"key": "endDateTime", "stringValue": "2012-09-25T18:00:00"} ] }, {"id": "SayHello", "name": "SayHello", "slots": [ {"key": "type", "stringValue": "ShellCommandActivity"}, {"key": "command", "stringValue": "echo hello"}, {"key": "parent", "refValue": "Default"}, {"key": "schedule", "refValue": "Schedule"} ] } ] }
HTTP 응답 처리
다음은 HTTP 응답의 몇 가지 중요 헤더와 애플리케이션에서 이를 처리하는 방법입니다.
-
HTTP/1.1—이 헤더 다음에는 상태 코드가 이어집니다. 코드 값 200은 작업 성공을 나타냅니다. 그 외의 값은 오류를 나타냅니다.
-
x-amzn-RequestId—이 헤더는 AWS Data Pipeline에 요청 시 발생하는 문제를 해결해야 할 경우 사용할 수 있는 요청 ID를 포함합니다. 요청 ID의 예로는 K2QH8DNOU907N97FNA2GDLL8OBVV4KQNSO5AEMVJF66Q9ASUAAJG가 있습니다.
-
x-amz-crc32—AWS Data Pipeline는 HTTP 페이로드의 CRC32 체크섬을 계산하고 이 체크섬을 x-amz-crc32 헤더에 반환합니다. 클라이언트 측에서 자체 CRC32 체크섬을 계산하여 x-amz-crc32 헤더와 비교해 보는 것이 좋습니다. 체크섬이 일치하지 않을 경우 데이터가 전송 중 손상되었을 수 있습니다. 이 경우 요청을 다시 시도해야 합니다.
AWS SDK 사용자의 경우, SDK가 Amazon DynamoDB로부터 오는 각 회신의 체크섬을 계산하고 불일치가 감지될 경우 자동으로 재시도하기 때문에 수동으로 확인을 수행하지 않아도 됩니다.
예제 AWS Data Pipeline JSON 요청 및 응답
다음 예제는 새 파이프라인 생성 요청을 보여줍니다. 그 다음은 새로 생성된 파이프라인의 파이프라인 식별자를 포함한 AWS Data Pipeline 응답을 보여줍니다.
HTTP POST 요청
POST / HTTP/1.1 host: https://datapipeline.us-east-1.amazonaws.com x-amz-date: Mon, 12 Nov 2012 17:49:52 GMT x-amz-target: DataPipeline_20121129.CreatePipeline Authorization: AuthParams Content-Type: application/x-amz-json-1.1 Content-Length: 50 Connection: Keep-Alive {"name": "MyPipeline", "uniqueId": "12345ABCDEFG"}
AWS Data Pipeline 응답
HTTP/1.1 200 x-amzn-RequestId: b16911ce-0774-11e2-af6f-6bc7a6be60d9 x-amz-crc32: 2215946753 Content-Type: application/x-amz-json-1.0 Content-Length: 2 Date: Mon, 16 Jan 2012 17:50:53 GMT {"pipelineId": "df-00627471SOVYZEXAMPLE"}