Message Pull

페이지 이동경로

Message Pull

Pub/Sub 서비스에서 서브스크립션 타입 Pull을 생성한 경우, 사용자가 서브스크립션에 메시지를 전송 요청하고 메시지를 정상 수신한 후 확인 응답이 필요합니다.

안내
전송 요청을 위해서는 액세스 키 ID와 액세스 보안 키를 발급해야 합니다.
- 카카오 i 클라우드 콘솔 > 사용자 프로필 > 사용자 액세스 키 탭에서 사용자의 자격 증명을 위한 사용자 액세스 키(액세스 키 ID, 보안키)를 발급받을 수 있습니다.

주요 개념

Pull의 주요 개념은 다음과 같습니다.

Pull 주요 개념

주요 개념 설명
서브스크립션 타입 Pull: 사용자가 메시지 전송을 요청
응답 대기 시간 메시지 응답까지 대기하는 시간
- 시간 범위: 10-600초(10분) 이내 설정
확인 응답 응답 대기 시간 안에 Response code 200이 없는 경우, 메시지 재전송

API 엔드포인트 URL

API 사용을 위한 Pub/Sub 엔드포인트 URL은 다음과 같습니다.

코드 예제 Web API 엔드포인트 URL 형식

https://pub-sub.kr-central-1.kakaoi.io

안내
Pub/Sub API는 현재 kr-central-1 리전에서만 제공됩니다.

Pull

서브스크립션에 요청할 메시지를 설정합니다.

Request Syntax

코드 예제 메시지 요청 Request Syntax

curl -k --location --request POST 'https://pub-sub.kr-central-1.kakaoi.io/pub-sub/kic-event/v1/projects/353094e122d6493d9899f0f2523d4cc1/subscriptions/peb-test-pull-subs/pull' \
  --header "Credential-ID: ****" \
  --header "Credential-Secret: ****" \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "maxMessages": 1
  }'

API 호출 방식

메서드 요청 URL
POST /pub-sub/kic-event/v1/projects/{project-id}/subscriptions/{subscription-name}/pull
Path 타입 필수 여부 설명
project-id String 필수 Kakao i Cloud 프로젝트 이름(고유 ID)
- 콘솔 상단에서 확인 가능
subscription-name String 필수 서브스크립션의 이름

Request Header

Request 타입 필수 여부 설명
Credential-ID String 필수 사용자 액세스 Key ID
Credential-Secret String 필수 사용자 액세스 보안 Key

Request Elements

Request 타입 설명
maxMessages Integer 최대 메시지 요청 수, 1개 ~ 4,096개

Response Syntax

코드 예제 메시지 요청 Response Syntax

{
  "receivedMessages": [
    {
      "ackId": "Ifaswn660rXu8FZdE2ki7upOjG4pI3Q3eaqNHJxIOXZ4Abj5VpCQRXm/EPoxDHTgImaXz8HK7P5l1rmhLoSJaf0Q330DO10BivvG+yt4sEGMGLc5wB4VKACuzGDTFOAyhFAkualNoKqZLyzQYAJuILZeZfO7BUBmmMkS3O+pZlMvxmthpyDrNnyUmLBb2uXlzig5kBWh0ZFWegioX7nLs/uODqMhlj2U2qEX6E33q0R9qEuJjv4HWEnVRjrTUdrRV6fiahbf7gnH68jN9f0+MisPBqPLzpQBj+eyqt2BZAq9J2cn70I5lzErIpxMBPXwfmM4sF7MhtyvaNvAbq9Sm02IVOIwxHDsoON/yjggIVeY5g+6XvKQgq5/jg==",
      "message": {
        "data": "eyJldmVudF92ZXJzaW9uIjoiMS4wLjAiLCJldmVudF9pZCI6InRyYWlsXzBfNjAzNDUyNjY2XzE2Njg0MTQzNTAzMzQiLCJldmVudF9uYW1lIjoiS2V5cGFpciBjcmVhdGUiLCJldmVudF9zb3VyY2UiOiJWaXJ0dWFsIG1hY2hpbmUiLCJldmVudF90aW1lIjoiMjAyMi0xMS0xNFQwODoyNTo1MC4zMzRaIiwia2ljX3JlZ2lvbiI6Ii0iLCJkb21haW5faWQiOiI5ODJmYzM5MjY5OWQ0Mzg1YjBiMWE5ZDEwYjlmMjM5MyIsImRvbWFpbl9uYW1lIjoia2FrYW9lbnRlcnByaXNlIiwicHJvamVjdF9pZCI6IjM1MzA5NGUxMjJkNjQ5M2Q5ODk5ZjBmMjUyM2Q0Y2MxIiwicHJvamVjdF9uYW1lIjoiYmlnZGF0YSIsInJlc291cmNlX25hbWUiOiJwcHBwcGViIiwicmVzb3VyY2VfaWQiOiItIiwicmVzb3VyY2VfdHlwZSI6IktleXBhaXIiLCJ1c2VyX2lkIjoiY2Q3MGU1M2JkNGYxNDFkM2FhYjZmNjUyOGNjNGM0N2MiLCJ1c2VyX25hbWUiOiJwZWIubGVlQGtha2FvZW50ZXJwcmlzZS5jb20iLCJ1c2VyX2FnZW50IjoiLSIsInNvdXJjZV9pcF9hZGRyZXNzIjoiMTAuMTg3LjcwLjEzMyIsIm90aGVyX2FkZGl0aW9uYWxfaW5mbyI6Int9In0=",
        "messageId": "1430458965141036376811744864924447649781668345309",
        "publishTime": "2022-11-13T13:15:09Z"
      },
      "deliveryAttempt": 1
    }
  ]
}
}

Response Elements

Response 타입 설명
ackId String 메시지 요청 후 확인에 사용되는 ackIds 값
message Object 메시지 상세값
   data String 이벤트 로그, Base64 인코딩 처리
   messageId String 메시지 고유 아이디
   publishTime String 메시지 발생 시각
deliveryAttempt Integer 메시지 전송을 시도한 수

Status Code

HTTP Status 설명
200 성공
400 요청 정보 오류
401, 403 인증 실패, 권한 없음
404 서브스크립션를 찾을 수 없음

Acknowledge

메시지가 정상적으로 수신된 경우, 확인 응답을 할 수 있습니다.

Request Syntax

코드 예제 메시지 확인 응답 Request Syntax

curl -k --location --request POST 'https://pub-sub.kr-central-1.kakaoi.io/pub-sub/kic-event/v1/projects/353094e122d6493d9899f0f2523d4cc1/subscriptions/peb-test-pull-subs/acknowledge' \
  --header "Credential-ID: 924faa3684e4446eaed3de49b10e3afa" \
  --header "Credential-Secret: zMTsIHAR-TbF_pUndY-DR5mtvvhpQ6KVgKQJzKf79s8R3wPDVHjVeNjDVbn7LzH0YFNPMyLq8-t6tlMjd7J74Q" \
  --header 'Content-Type: application/json' \
  --data-raw '{
      "ackIds": [
          "Ifaswn660rXu8FZdE2ki7upOjG4pI3Q3eaqNHJxIOXZ4Abj5VpCQRXm/EPoxDHTgImaXz8HK7P5l1rmhLoSJaf0Q330DO10BivvG+yt4sEGMGLc5wB4VKACuzGDTFOAyhFAkualNoKqZLyzQYAJuILZeZfO7BUBmmMkS3O+pZlMvxmthpyDrNnyUmLBb2uXlzig5kBWh0ZFWegioX7nLs/uODqMhlj2U2qEX6E33q0R9qEuJjv4HWEnVRjrTUdrRV6fiahbf7gnH68jN9f0+MisPBqPLzpQBj+eyqt2BZAq9J2cn70I5lzErIpxMBPXwfmM4sF7MhtyvaNvAbq9Sm02IVOIwxHDsoON/yjggIVeY5g+6XvKQgq5/jg=="
      ]
 }'

API 호출 방식

메서드 요청 URL
POST /pub-sub/kic-event/v1/projects/{project-id}/subscriptions/{subscription-name}/acknowledge
Path 타입 필수 여부 설명
project-id String 필수 Kakao i Cloud 프로젝트 이름(고유 ID)
- 콘솔 상단에서 확인 가능
subscription-name String 필수 서브스크립션의 이름

Request Header

Request 타입 필수 여부 설명
Credential-ID String 필수 사용자 액세스 Key ID
Credential-Secret String 필수 사용자 액세스 보안 Key

Request Elements

Request 타입 설명
ackIds [String] 메시지 요청 후 확인한 ackIds 값

Status Code

HTTP Status 설명
200 성공
400 요청 정보 오류
401, 403 인증 실패, 권한 없음
404 서브스크립션를 찾을 수 없음