본문으로 건너뛰기

SDK 개요

사전 작업

Pub/Sub에서는 현재 Go SDK를 지원하며, Go SDK를 사용하려면 다음 사전 작업을 수행해야 합니다.

액세스 키 발급

사용자 인증 토큰(API 인증 토큰)을 획득하려면 먼저 액세스 키를 생성한 후 액세스 키 ID와 보안 액세스 키를 확인합니다.

주의

액세스 키를 발급받은 프로젝트에 속한 리소스에만 접근할 수 있습니다.

  1. 카카오클라우드 콘솔 > 우측 상단 프로필 > 자격 증명 > IAM 액세스 키로 이동합니다.

  2. 사용자 액세스 키를 생성한 후, API 사용 준비를 참고하여 액세스 키 ID와 보안 액세스 키를 확인합니다.

SDK 요구사항

Go SDK

Go SDK를 사용하려면 다음 사전 요구사항을 충족해야 합니다.

  1. Go Package(1.19 이상)를 다운로드합니다.

    Go Package 다운로드
    wget https://objectstorage.kr-central-2.kakaocloud.com/v1/e9130193fc734337b2b0c1da50e44395/pubsub-sdk/go/v1.0.1/pubsub.tgz
    tar -xf pubsub.tgz

    cd {your-project}
    go mod edit -require github.kakaoenterprise.in/cloud-platform/kc-pub-sub-sdk-go@v1.0.1
    go mod edit -replace github.kakaoenterprise.in/cloud-platform/kc-pub-sub-sdk-go@v1.0.1={pubsub-sdk-path}
    go.mod 파일 결과
    module ...

    require (
    github.kakaoenterprise.in/cloud-platform/kc-pub-sub-sdk-go v1.0.1
    )
    replace github.kakaoenterprise.in/cloud-platform/kc-pub-sub-sdk-go v1.0.1 => {pubsub-sdk-path}
  2. 액세스 키 발급을 참고하여 Credentials 키를 발급받습니다. 기본적으로 SDK에서는 액세스 키를 이용해 인증을 시도합니다. 인증은 CredentialsProvider 유형을 사용하며, 다음과 같이 DefaultCredentialsProvidercredentialID, credentialSecret을 설정하여 사용합니다.

    Credentials 키를 사용한 예제
    accessKey := pubsub.AccessKey{CredentialID: "credentialID", CredentialSecret: "credentialSecret"}
    opts := []option.ClientOption{
    option.WithAccessKey(accessKey),
    }
    client, err := pubsub.NewClient(ctx, domainID, projectID, opts...)
주의

액세스 키를 발급받은 프로젝트에 속한 리소스에만 접근할 수 있습니다.
따라서 API 호출 시 domain, project는 발급받은 액세스 키가 포함된 정보로 설정해야 합니다.

Client

토픽과 서브스크립션을 조작하고 메시지를 전송 및 수신할 때 사용하는 객체입니다.

주의

Client 객체는 스레드와 같은 리소스들을 해제시켜야 하므로, close() 메서드를 호출해야 합니다.

사용자 지정 설정값

Client에서 인증 및 Endpoint 등과 같은 값은 ClientOption을 통해 관리합니다.
Client 객체 생성 시 ClientOption을 직접 생성하여 사용자가 임의로 값을 설정할 수 있습니다.

안내

기본 엔드포인트는 kr-central-2 리전 엔드포인트로 설정됩니다. kr-central-1 리전을 사용하는 경우 엔드포인트를 변경해야 합니다.

Method설명
Close()스레드와 같은 리소스들을 해제
Client 사용 예제
import (
"context"
"fmt"
"github.kakaoenterprise.in/cloud-platform/kc-pub-sub-sdk-go"
"github.kakaoenterprise.in/cloud-platform/kc-pub-sub-sdk-go/option"
)

func test(domainID, projectID, credentialID, credentialSecret string) error {
ctx := context.Background()
accessKey := pubsub.AccessKey{CredentialID: "credentialID", CredentialSecret: "credentialSecret"}
opts := []option.ClientOption{
option.WithAccessKey(accessKey),
}
client, err := pubsub.NewClient(ctx, domainID, projectID, opts...)
if err != nil {
return fmt.Errorf("pubsub.NewClient: %v", err)
}

// do something

err = client.Close()
return err
}
sample. option customizing
opts := []option.ClientOption{
option.WithEndpoint("{endpoint-url}:443"),
}
client, err := pubsub.NewClient(ctx, domainID, projectID, opts...)