Google Cloud Pub/Sub 확장 프로그램

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

<ph type="x-smartling-placeholder">

버전: 1.3.0

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

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

기본 요건

확장 문구 정책을 사용하여 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입니다.

작업

<ph type="x-smartling-placeholder">

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 배열 없음 아니요

응답

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

{"messageId":"165918654986954"}

구성 참조

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

일반적인 확장 속성

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

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

이 확장 프로그램의 속성

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