フィードバックを送信
イベントを直接公開する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
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
: イベント 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
API Explorer(ブラウザ)
リクエスト本文をコピーして、メソッドのリファレンス ページ を開きます。ページの右側に [API Explorer] パネルが開きます。このツールを操作してリクエストを送信できます。このツールにリクエスト本文を貼り付け、その他の必須フィールドに入力して、[Execute ] をクリックします。
成功すると、サーバーは HTTP 200 OK
ステータス コードと JSON 形式の空のレスポンス本文を返します。
次のステップ
フィードバックを送信
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンス により使用許諾されます。コードサンプルは Apache 2.0 ライセンス により使用許諾されます。詳しくは、Google Developers サイトのポリシー をご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-04-02 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-02 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."]]],[]]