의견 보내기
이벤트 직접 게시
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
Preview
— Eventarc Advanced
This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section
of the Service Specific Terms .
Pre-GA features are available "as is" and might have limited support.
For more information, see the
launch stage descriptions .
Google Cloud CLI를 사용하거나 Eventarc Publishing REST API에 요청을 전송하여 지원되는 형식으로 CloudEvents 이벤트를 Eventarc Advanced 버스에 직접 게시할 수 있습니다. Eventarc 클라이언트 라이브러리 를 사용하여 지원되는 언어에서 Eventarc API에 액세스할 수도 있습니다.
메시지는 CloudEvents 사양 을 준수해야 합니다.
gcloud
터미널을 엽니다.
gcloud beta eventarc message-buses publish
명령어를 사용하여 버스에 이벤트를 게시할 수 있습니다. 예를 들면 다음과 같습니다.
gcloud beta eventarc message-buses publish BUS_NAME \
--avro-message= AVRO_MESSAGE
또는
gcloud beta eventarc message-buses publish BUS_NAME \
--json-message= JSON_MESSAGE
또는
gcloud beta eventarc message-buses publish BUS_NAME \
--event-data= DATA_PAYLOAD \
--event-id= EVENT_ID \
--event-source= EVENT_SOURCE \
--event-type= EVENT_TYPE \
--event-attributes= EVENT_ATTRIBUTE
다음을 바꿉니다.
BUS_NAME
: 이벤트를 게시할 버스의 ID 또는 정규화된 식별자입니다.
다음 중 하나 만 사용해야 합니다.
AVRO_MESSAGE
: 이 사양 에 따라 Avro 형식의 이벤트 메시지입니다.
JSON_MESSAGE
: 이 사양 에 따른 JSON 형식의 이벤트 메시지입니다.
DATA_PAYLOAD
: 게시된 이벤트의 데이터입니다.
--event-data
플래그를 사용하는 경우 다음도 사용해야 합니다.
EVENT_ID
: 이벤트 식별자입니다. 이벤트 제작자는 고유한 이벤트마다 source
+ id
가 고유하도록 보장해야 합니다.
EVENT_SOURCE
: 게시된 이벤트의 이벤트 소스입니다.
EVENT_TYPE
: 원래 발생과 관련된 이벤트 유형입니다.
--event-data
플래그를 사용하는 경우 원하는 경우 다음을 사용할 수 있습니다.
예:
gcloud beta eventarc message-buses publish my-bus \
--event-id= 1234 \
--event-type= event-provider.event.v1.eventType \
--event-source= "//event-provider/event/source" \
--event-data= '{"key": "value"}' \
--event-attributes= attribute1 = value
gcloud beta eventarc message-buses publish my-bus --json-message @- << EOF
{
"specversion" : "1.0" ,
"type" : "com.example.someevent" ,
"source" : "google.cloud.storage.object.v1.finalized" ,
"id" : "A234-1234-1234" ,
"time" : "2024-04-05T17:31:00Z" ,
"bucket" : "bucketName" ,
"datacontenttype" : "application/json" ,
"data" :{ "key" : "value" }
}
EOF
REST API 버스에 이벤트를 게시하려면 projects.locations.messageBuses.publish
메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
projects/PROJECT_ID /locations/LOCATION /messageBuses/BUS_NAME
형식의 버스의 전체 리소스 이름입니다.
다음을 바꿉니다.
PROJECT_ID
: 버스 프로젝트의 Google Cloud프로젝트 ID입니다.
LOCATION
: 버스가 배포되는 리전 입니다(예: us-central1
).
BUS_NAME
: 이벤트를 게시할 버스의 이름입니다.
SPEC_VERSION
: 이벤트에서 사용하는 CloudEvents 사양 버전입니다(예: 1.0
).
EVENT_TYPE
: 원래 발생과 관련된 이벤트 유형입니다.
EVENT_SOURCE
: 게시된 이벤트의 이벤트 소스입니다.
EVENT_ID
: 이벤트 식별자입니다.
제작자는 고유한 이벤트마다 source
+ id
가 고유하도록 보장해야 합니다.
CONTENT_TYPE
(선택사항): data
값의 콘텐츠 유형입니다. JSON 형식 이벤트에 datacontenttype
속성이 없으면 데이터가 application/json
미디어 유형을 준수하는 JSON 값이라고 가정됩니다.
DATA_PAYLOAD
(선택사항): datacontenttype
로 지정된 미디어 형식으로 인코딩된 이벤트 페이로드이며 이러한 속성이 있는 경우 dataschema
를 준수합니다.
JSON 요청 본문:
{
"jsonMessage":
"{\"specversion\":\"SPEC_VERSION \",
\"type\":\"EVENT_TYPE \",
\"source\":\"EVENT_SOURCE \",
\"id\":\"EVENT_ID \",
\"datacontenttype\":\"CONTENT_TYPE \",
\"data\":\"DATA_PAYLOAD \"}"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
cURL(Linux, macOS, Cloud Shell)
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
cat > request.json << 'EOF'
{
"jsonMessage":
"{\"specversion\":\"SPEC_VERSION \",
\"type\":\"EVENT_TYPE \",
\"source\":\"EVENT_SOURCE \",
\"id\":\"EVENT_ID \",
\"datacontenttype\":\"CONTENT_TYPE \",
\"data\":\"DATA_PAYLOAD \"}"
}
EOF
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ "https://eventarcpublishing.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /messageBuses/BUS_NAME :publish"
PowerShell(Windows)
요청 본문을 request.json
파일에 저장합니다.
터미널에서 다음 명령어를 실행하여 현재 디렉터리에 이 파일을 만들거나 덮어씁니다.
@'
{
"jsonMessage":
"{\"specversion\":\"SPEC_VERSION \",
\"type\":\"EVENT_TYPE \",
\"source\":\"EVENT_SOURCE \",
\"id\":\"EVENT_ID \",
\"datacontenttype\":\"CONTENT_TYPE \",
\"data\":\"DATA_PAYLOAD \"}"
}
'@ | Out-File -FilePath request.json -Encoding utf8
그런 후 다음 명령어를 실행하여 REST 요청을 전송합니다.
$cred = gcloud auth print-access-token $headers = @{ "Authorization" = "Bearer $cred" } Invoke-WebRequest ` -Method POST ` -Headers $headers ` -ContentType: "application/json; charset=utf-8" ` -InFile request.json ` -Uri "https://eventarcpublishing.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /messageBuses/BUS_NAME :publish" | Select-Object -Expand Content
API 탐색기(브라우저)
요청 본문을 복사하고 메서드 참조 페이지 를 엽니다.
페이지 오른쪽에 API 탐색기 패널이 열립니다.
이 도구를 사용하여 요청을 보낼 수 있습니다.
요청 본문을 이 도구에 붙여넣고 다른 필수 필드를 입력한 후 실행 을 클릭합니다.
성공하면 서버는 HTTP 200 OK
상태 코드와 JSON 형식의 빈 응답 본문을 반환합니다.
다음 단계
의견 보내기
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스 에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스 에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책 을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-04-09(UTC)
의견을 전달하고 싶나요?
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-04-09(UTC)"],[[["Eventarc Advanced allows direct publishing of CloudEvents to an Eventarc bus using the Google Cloud CLI or the Eventarc Publishing REST API."],["The `gcloud beta eventarc message-buses publish` command facilitates event publishing, supporting Avro, JSON, or individual event data with attributes."],["The REST API's `projects.locations.messageBuses.publish` method can be used to publish events, requiring a JSON message body that specifies event attributes like `specversion`, `type`, `source`, and `id`."],["The gcloud CLI can be used through the terminal and the REST API through curl (Linux, macOS, or Cloud Shell), Powershell (Windows), and the API explorer (browser)."],["Eventarc Advanced is currently a Pre-GA feature and is subject to limited support."]]],[]]