提供意見
直接發布事件
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
預先發布版
— Eventarc Advanced
這項功能受《服務專屬條款 》中「一般服務條款」一節的「正式發布前產品條款」規範。
正式發布前功能是依「原樣」提供,支援服務可能受限。
詳情請參閱推出階段說明 。
您可以使用 Google Cloud CLI,或向 Eventarc 發布 REST API 傳送要求,直接以支援的格式將 CloudEvents 事件發布至 Eventarc 進階匯流排。您也可以使用 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 或完整修飾 ID。
您只能使用下列其中一種 :
AVRO_MESSAGE
:根據此規格 ,以 Avro 格式呈現的事件訊息。
JSON_MESSAGE
:根據此規格 ,以 JSON 格式傳送事件訊息。
DATA_PAYLOAD
:已發布事件的資料。
如果使用 --event-data
標記,則必須同時使用下列標記:
EVENT_ID
:事件 ID。事件製作者必須確保 source
+ id
對每個獨立事件而言都是不重複的。
EVENT_SOURCE
:已發布事件的事件來源。
EVENT_TYPE
:與原始事件相關的事件類型。
如果使用 --event-data
標記,您可以選擇使用下列標記:
範例:
gcloud beta eventarc message-buses publish my-bus \
--event-data= '{"key": "hello-world-data"}' \
--event-id= hello-world-id-1234 \
--event-source= hello-world-source \
--event-type= hello-world-type \
--event-attributes= "datacontenttype=application/json"
gcloud beta eventarc message-buses publish my-bus --json-message= '{
"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"}
}'
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
:事件 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
APIs Explorer (瀏覽器)
複製要求主體並開啟方法參考頁面 。系統會在頁面右側開啟 API Explorer 面板。
您可以使用這項工具來傳送要求。將要求主體貼到這項工具中,並填妥其他必填欄位,然後按一下「執行」 。
如果成功,伺服器會傳回 HTTP 200 OK
狀態碼,並以 JSON 格式傳回空白的回應內文:
後續步驟
提供意見
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權 ,程式碼範例則為阿帕契 2.0 授權 。詳情請參閱《Google Developers 網站政策 》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-06-12 (世界標準時間)。
想進一步說明嗎?
[[["容易理解","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-06-12 (世界標準時間)。"],[[["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."]]],[]]