Google Cloud Pub/Sub 확장 프로그램

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

버전: 1.5.1

Google Cloud Pub/Sub 서비스의 주제에 메시지를 게시합니다.

이 콘텐츠는 이 확장 프로그램을 구성하고 사용하기 위한 참조를 제공합니다.

기본 요건

Extension콜아웃 정책을 사용하여 API 프록시의 확장 프로그램을 사용하려면 다음 요건을 충족해야 합니다.

  1. 빠른 시작: 콘솔 사용에 설명된 대로 Cloud Pub/Sub 주제를 만듭니다.

  2. 주제를 확보했으면 Cloud Pub/Sub 주제에 게시할 권한을 부여합니다. 예를 들어 roles/pubsub.publisher 역할을 사용하여 주제에 게시할 수 있습니다. Cloud Pub/Sub 역할에 대한 자세한 내용은 액세스 제어를 참조하세요.

  3. GCP 콘솔을 사용하여 서비스 계정의 키를 생성합니다.

  4. 구성 참조를 사용하여 확장 프로그램을 추가 및 구성할 때 결과 키 JSON 파일의 콘텐츠를 사용합니다.

Cloud Pub/Sub 정보

Cloud Pub/Sub는 발신자와 수신자를 분리하는 다대다 비동기 메시지 기능을 제공합니다. Cloud Pub/Sub는 낮은 지연 시간과 안정적인 메시지 전달을 제공하며, 개발자는 이를 이용해 Google Cloud Platform과 외부에 호스트된 시스템을 빠르게 통합할 수 있습니다.

Cloud Pub/Sub를 처음 사용하는 경우 Cloud Pub/Sub 문서의 빠른 시작을 참조하세요.

샘플

다음 예는 Extension콜아웃 정책을 사용하여 Cloud Pub/Sub 확장 프로그램 작업 지원을 구성하는 방법을 보여줍니다.

SMS

이 예에서 publish 작업은 메시지를 간단한 문자열로 확장 프로그램의 구성에 지정된 주제에 게시합니다. publish 작업은 메시지가 게시된 주제에 게시된 메시지의 ID를 반환하고 <Output> 태그로 지정된 변수에 씁니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : "My test message."
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

다음 Assign Message 정책은 확장 프로그램의 응답을 저장하는 변수 값을 사용하여 응답 페이로드를 할당합니다. 메시지 ID는 출력 변수의 messageId 속성에 저장됩니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

응답 데이터는 JSON으로 반환됩니다.

{"messageId":"165918654986954"}

따라서 topic.message.messageId 값은 165918654986954입니다.

JSON 메시지

이 예에서 publish 작업은 메시지를 JSON으로 확장 프로그램의 구성에 지정된 주제에 게시합니다. publish 작업은 메시지가 게시된 주제에 게시된 메시지의 ID를 반환하고 <Output> 태그로 지정된 변수에 씁니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="true" enabled="true" name="Publish-Message">
    <DisplayName>Publish Message</DisplayName>
    <Connector>cloud-pub-sub-extension-example</Connector>
    <Action>publish</Action>
    <Input><![CDATA[
      {
          "message" : { "info" : "My test message" }
      }
    ]]></Input>
    <Output>topic.message</Output>
</ConnectorCallout>

다음 Assign Message 정책은 확장 프로그램의 응답을 저장하는 변수 값을 사용하여 응답 페이로드를 할당합니다. 메시지 ID는 출력 변수의 messageId 속성에 저장됩니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Get-Topic-Message-ID">
    <DisplayName>Get Topic Message ID</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{topic.message.messageId}</Payload>
    </Set>
</AssignMessage>

응답 데이터는 JSON으로 반환됩니다.

{"messageId":"165918654986954"}

따라서 topic.message.messageId 값은 165918654986954입니다.

작업

publish

이 확장 프로그램의 구성에 지정된 주제에 메시지를 게시합니다.

문법

<Action>publish</Action>
<Input><![CDATA[{
  "message" : "message-to-publish" | JSON-structured-data,
  "customAttributes": JSON-array
}]]></Input>

문자열 예

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : "My test message."
  }
]]></Input>

JSON 구조화된 데이터 예시

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" }
  }
]]></Input>

커스텀 속성 예

<Action>publish</Action>
<Input><![CDATA[
  {
      "message" : { "info" : "My test message" },
      "customAttributes": {"attr1": "foo", "attr2": "bar"}
  }
]]></Input>

요청 매개변수

매개변수 설명 유형 기본 계정 필수
메시지 게시할 메시지입니다. 간단한 문자열을 사용하거나 직접 디자인한 JSON으로 메시지를 구조화할 수 있습니다. 문자열 또는 JSON 없음 지원됨
customAttributes

양식의 메시지에 추가할 커스텀 속성:

"customAttributes": {"attr1": "foo", "attr2": "bar"}.
JSON 배열 없음 No

응답

주제에 게시된 메시지의 ID가 포함된 JSON입니다. 예를 들면 다음과 같습니다.

{"messageId":"165918654986954"}

구성 참조

API 프록시에서 사용할 이 확장 프로그램을 구성하고 배포할 때 다음을 사용하세요.

일반적인 확장 속성

모든 확장 프로그램에는 다음과 같은 속성이 있습니다.

속성 설명 기본 필수
name 확장 프로그램의 구성에 지정할 이름입니다. 없음 지원됨
packageName Apigee Edge에서 제공하는 확장 프로그램 패키지 이름입니다. 없음 지원됨
version 확장 프로그램을 구성하는 확장 프로그램 패키지의 버전 번호입니다. 없음 지원됨
configuration 추가하는 확장 프로그램 관련 구성 값입니다. 이 확장 프로그램 속성의 속성을 참조하세요. 없음 지원됨

이 확장 프로그램 패키지의 속성

속성 설명 기본 계정 필수
topic 게시할 주제입니다. 서비스의 GCP Console과 같이 Pub/Sub 서비스에서 이 값을 가져옵니다. 예를 들어 주제 이름은 projects/GCP-PROJECT-ID/topics/TOPIC-NAME 형식을 취할 수 있습니다. 없음 예.
credentials Apigee Edge 콘솔에 입력하면 서비스 계정 키 파일의 콘텐츠가 됩니다. 관리 API를 통해 전송되는 경우 서비스 계정 키 파일에서 생성된 base64로 인코딩된 값입니다. 없음 예.