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-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
: イベント 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\"}" }
リクエストを送信するには、次のいずれかのオプションを展開します。
成功すると、サーバーは HTTP 200 OK
ステータス コードと JSON 形式の空のレスポンス本文を返します。
200 OK {}