イベント・メッセージの内容

イベント・メッセージの内容について学習します。

すべてのイベント・メッセージには、次の2つの主要な部分があります:

  • エンベロープ: すべてのイベント・メッセージのコンテナ

  • ペイロード: イベント・メッセージを発行するリソースのデータ

イベント・エンベロープ

イベント・エンベロープのこれらの属性は、すべてのイベントで同じです。エンベロープの構造は、Cloud Native Computing Foundation (CNCF)によって推進されているCloudEvents業界標準形式に従っています。

プロパティ 説明
cloudEventsVersion

CloudEvents仕様のバージョン。

ノート: イベントは、CloudEventsイベント・エンベロープのバージョン0.1の仕様を使用します。

contentType application/jsonに設定します。data属性に含まれているデータのコンテンツ・タイプ。
data イベントのペイロード。data内のすべての情報は、イベントを発行するリソースから取得されます。ペイロードの構造の詳細は、次の表を参照してください。
eventID

イベントのUUID。この識別子はOCIDではなく、イベントの一意のIDです。

eventTime イベントの時刻。RFC 3339タイムスタンプ書式で表されます。
eventType

発生したイベントのタイプ。イベントを生成するすべてのサービスのリストおよびそれらのサービスがトラッキングするイベント・タイプについては、イベントを生成するサービスを参照してください。

ノート: イベントを生成するサービスでは、新しいバージョンのeventTypeを公開し、eventTypeVersionフィールドを変更することで、フィールドの内容を追加、削除または変更することもできます。

eventTypeVersion

イベント・タイプのバージョン。

extensions イベントの発生元コンパートメントのOCID。テナンシのルート・コンパートメントでイベントが発生している場合、この属性はテナンシOCIDを指定します。CloudEvents仕様のOracle Cloud Infrastructure実装では、この属性は必須です。
source イベントを生成したリソース。たとえば、Autonomous Databaseまたはオブジェクト・ストレージ・バケットです。

ペイロード

これらのフィールドのデータは、イベントを生成したサービスおよび定義したイベント・タイプによって異なります。

プロパティ 説明
compartmentId

イベントを生成するソースのコンパートメントのOCID。

compartmentName イベントを生成するソースのコンパートメントの名前。
resourceName イベントを生成するリソースの名前。
resourceId

イベントを発生するリソースのOCIDまたはID。

availabilityDomain イベントを生成するリソースの可用性ドメイン。
freeFormTags

イベントを生成するリソースのフリーフォーム・タグ。

definedTags イベントを生成するリソースに追加された定義済タグ。
additionalDetails

イベントを生成するリソース固有の属性のコンテナ。次に示すバケット・イベントの例では、ペイロードに3つのオブジェクト・ストレージ属性が含まれています:

  • namespace
  • publicAccessType
  • eTag

他のリソースに含まれる属性を決定するには、イベントを取得するか、イベントを生成するサービスのリファレンス・サンプルを参照してください。

リソース識別子

ほとんどのタイプのOracle Cloud Infrastructureリソースには、Oracle Cloud ID (OCID)と呼ばれるOracleによって割り当てられた一意の識別子があります。OCIDのフォーマットおよびリソースを識別するその他の方法の詳細は、リソース識別子を参照してください。

サンプル・イベント

次に、オブジェクト・ストレージによって発行されるバケット・イベントの例を示します。

{
	"cloudEventsVersion": "0.1",
	"eventID": "<unique_ID>",
	"eventType": "com.oraclecloud.objectstorage.deletebucket",
	"source": "objectstorage",
	"eventTypeVersion": "1.0",
	"eventTime": "2019-01-10T21:19:24Z",
	"contentType": "application/json",
	"extensions": {
		"compartmentId": "ocid1.compartment.oc1..<unique_ID>"
	},
	"data": {
		"compartmentId": "ocid1.compartment.oc1..<unique_ID>",
		"compartmentName": "example_name",
		"resourceName": "my_bucket",
		"resourceId": "ocid1.compartment.oc1..<unique_ID>",
		"availabilityDomain": "NfHZ:PHX-AD-2",
		"freeFormTags": {
			"Department": "Finance"
		},
		"definedTags": {
			"Operations": {
				"CostCenter": "42"
			}
		},
		"additionalDetails": {
			"namespace": "example_namespace",
			"publicAccessType": "NoPublicAccess",
			"eTag": "f8ffb6e9-f602-460f-a6c0-00b5abfa24c7"
		}
	}
}