イベントの開始
イベント・サービスを使用して自動化を作成する方法について学習します。
テナンシ内の特定のコンパートメントにバケットを作成するたびに通知を送信する単純なルールを作成できます。
イベントのための設定
このチュートリアルでイベント・サービスの設定を試みるには、最初に次の内容を設定する必要があります:
テナンシ管理者は、イベントのテナンシを構成する必要があります。これらの構成によって、必要なIAMポリシーおよびアクションとして使用するリソースを持つOracle Cloud Infrastructureテナンシにアクセスできます。
ユーザー、グループおよびコンパートメントの作成
既存のユーザー、グループ、コンパートメントを使用することも、新規に作成することもできます。
グループおよびユーザーを作成するには
ルールを操作するユーザー権限を割り当てる適切なユーザーおよびグループが存在しない場合、テナンシ管理者としてコンソールにログインし、作成します。
- テナンシ管理者としてコンソールにログインします。
- イベントのグループが必要な場合は、次のステップを実行します:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。「アイデンティティ」で、「ドメイン」を選択します。テナンシのグループのリストが表示されます。
- 「グループの作成」をクリックし、新規グループを作成します(グループの作成を参照)。グループにわかりやすい名前および説明を指定します。機密情報の入力は避けてください。
- イベントのユーザー・アカウントが必要な場合は、次のステップを実行します:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。「アイデンティティ」で、「ユーザー」を選択します。テナンシのユーザーのリストが表示されます。
- 「ユーザーの作成」をクリックし、新規ユーザーを作成します(ユーザーの作成を参照)。
- ユーザーがまだグループに追加されていない場合は、次のステップを実行します:
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。「アイデンティティ」で、「ドメイン」を選択します。テナンシのグループのリストが表示されます。
- イベントに使用するグループをクリックします。
- 「ユーザーをグループに追加」をクリックします。
- ドロップダウン・リストからユーザーを選択し、「追加」をクリックします。
コンパートメントを作成するには
ルール、およびイベントを発行するリソースに適切なコンパートメントが存在しない場合、テナンシ管理者としてコンソールにログインして、これを作成します。
- テナンシ管理者としてコンソールにログインします。
- ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。「アイデンティティ」で、「コンパートメント」を選択します。テナンシのコンパートメントのリストが表示されます。
- 「コンパートメントの作成」をクリックし、新規コンパートメントを作成します(コンパートメントの作成を参照)。コンパートメントにわかりやすい名前および説明を指定します。機密情報の入力は避けてください。
イベントのIAMポリシーの作成
テナンシ管理者として、ユーザーがイベントの使用を開始して自動化を作成する前に、IAMポリシーを作成する必要があります:
ユーザーにルールの作成および管理を許可するポリシーを作成するには
- テナンシ管理者としてコンソールにログインします。
- コンソールでナビゲーション・メニューを開き、「アイデンティティとセキュリティ」を選択します。「アイデンティティ」で、「ポリシー」を選択します。表示しているコンパートメント内のポリシーのリストが表示されます。
- ルート・コンパートメントを選択します。
- 「ポリシーの作成」をクリックします。
- 次を入力します:
- 名前: ポリシーのわかりやすい名前。この名前は、テナンシ内のすべてのポリシー間で一意である必要があります。これは後で変更できません。機密情報の入力は避けてください。
- 説明: わかりやすい説明。これは必要に応じて後で変更できます。
-
ステートメント: 次のポリシー・ステートメントを入力して、グループ内のユーザーがルールを管理および作成できるようにします。
この行では、ユーザーはコンパートメントのリソースへの検査アクセス権が付与され、アクションが選択されます。
allow group <RuleAdmins> to inspect compartments in tenancy
この行では、ユーザーは定義済のタグへのアクセス権が付与され、フィルタ・タグがルールに適用されます。
allow group <RuleAdmins> to use tag-namespaces in tenancy
この行では、ユーザーはストリーミング・リソースへのアクセス権をアクションのために付与されます
allow group <RuleAdmins> to inspect streams in tenancy allow group <RuleAdmins> to use stream-push in tenancy allow group <RuleAdmins> to use stream-pull in tenancy
この行では、ユーザーはファンクション・リソースへのアクセス権をアクションのために付与されます。
allow group <RuleAdmins> to use virtual-network-family in tenancy allow group <RuleAdmins> to manage function-family in tenancy
この行では、ユーザーは通知トピックへのアクセス権がアクションのために付与されます。
allow group <RuleAdmins> to use ons-topic in tenancy
この行では、ユーザーはイベントのルールに対する管理アクセス権が付与されます。
allow group <RuleAdmins> to manage cloudevents-rules in tenancy
- 「作成」をクリックします。
通知トピックとサブスクリプションの作成
適切な通知トピックが存在しない場合は、テナンシ管理者としてコンソールにログインしてこれを作成する必要があります。既存のトピックを使用する場合も新しいトピックを作成する場合も、通知のためにその電子メール・アカウントをモニターできるように、サブスクリプションとして電子メール・アドレスを追加します。
トピックを作成するには
- ナビゲーション・メニューを開き、「開発者サービス」を選択します。「アプリケーション統合」で、「通知」を選択します。
- トピック・リストの上部にある「トピックの作成」をクリックします。
- 「トピックの作成」パネルで、トピックを構成します。
- 名前: 必須。トピックにわかりやすい名前を指定します。一意である必要があります。検証では大文字と小文字が区別されます。機密情報の入力は避けてください。
- 説明: オプション。トピックの説明を入力します。
- 「作成」をクリックします。
サブスクリプションを作成するには
- ナビゲーション・メニューを開き、「開発者サービス」を選択します。「アプリケーション統合」で、「通知」を選択します。
- 前のステップで作成したトピックまたはこのチュートリアルで使用するトピックの名前をクリックします。
- トピックの詳細ページで、「サブスクリプションの作成」をクリックします。
- 「サブスクリプションの作成」パネルで、「電子メール」を選択して電子メール・アドレスを入力します。
- 「作成」をクリックします。
サブスクリプションが作成され、サブスクリプション確認URLが送信されます。サブスクリプションは、確認されるまで「保留中」ステータスのままです。
サブスクリプションを確認するには
- 前の手順で指定したアドレスに送信される確認の電子メールで、確認URLをクリックします。
コンソールを使用したルールの作成
コンソールを使用して、オブジェクト・ストレージで発行されたバケット作成イベントと一致するパターンを持つルールを作成します。一致するイベントを配信するためのアクションとして作成した通知トピックを指定します。ルールをテストするには、バケットを作成します。オブジェクト・ストレージは、アクションをトリガーするイベントを発行します。通知を受信するには、サブスクリプションで指定されている電子メールを確認します。
ルールの作成
- ナビゲーション・メニューを開き、「監視および管理」を選択します。「イベント・サービス」で、「ルール」を選択します。
- 作業の権限があるコンパートメントを選択し、「ルールの作成」をクリックします。
イベントは、このコンパートメントに作成したルールと、このコンパートメントおよび子コンパートメントのリソースから発行されたイベント・メッセージを比較します。
- 次のように入力します。
- 表示名: ルールのわかりやすい名前を指定します。この名前は後で変更できます。機密情報の入力は避けてください。
- 説明: ルールの機能に関する説明を指定します。この説明は後で変更できます。
- 「条件」で、「イベント・タイプ」を選択します。
- 「サービス名」」で、「オブジェクト・ストレージ」を選択します。
- 「イベント・タイプ」で、「バケット」- 「作成」を選択します。
- 「アクション」で、フィルタが一致を検出したときにトリガーするアクションを指定します:
- 「アクション・タイプ」で、「通知」を選択します。
- 「通知コンパートメント」で、トピックを含むコンパートメントを選択します。
- 「トピック」で、トピックを選択します。
- 「ルールの作成」をクリックします。
- ナビゲーション・メニューを開き、「ストレージ」を選択します。「Object Storage & Archive Storage」で、「Buckets」を選択します。
- ルールを作成したコンパートメント(またはその下位コンパートメントのいずれか)を選択します。
- 「バケットの作成」をクリックします。
- 「バケットの作成」ダイアログで、バケットの属性を指定します:
- 名前: 必須。わかりやすい名前または説明。機密情報の入力は避けてください。
-
ストレージ層: データを格納する層を選択します。使用可能な層は次のとおりです:
- 「標準」は、高速な即時アクセスを必要とする、アクセス頻度の高いデータを格納するためのデフォルトのプライマリ・オブジェクト・ストレージ層です。
- 「アーカイブ」は、アクセス頻度が低く、長い保持期間が必要なデータを格納するための特別な層です。アーカイブ層のデータへのアクセスは、即時に処理されません。アクセスする前にアーカイブ済データをリストアする必要があります。詳細は、アーカイブ・ストレージの概要を参照してください。
- 「作成」をクリックします。
通知の取得
CLIを使用したルールの作成
CLIを使用してルールを作成する場合は、コンソールを使用する場合と比べて少し作業内容が異なります。
- ルールにアクションを指定するには、JSON形式のファイルを使用します。このファイルを作成してからルールを作成すると、コマンドラインで入力する必要のある情報量がファイルによって簡素化されます。
- 照合するイベントを指定するには、JSON形式の文字列を使用します。ルールを作成するときに、コンソールにこの権限を入力します。
処理ファイルの作成
- ファイルを作成し、次の内容を追加します。
{ "actions": [ { "actionType": "ONS", "description": "string", "isEnabled": true, "topicId": "<topic_OCID>" } ] }
ヒント: ファンクション、ストリームまたはトピックをアクションとして指定できます。
アクション・ファイル・テンプレートの例{ "actions": [ { "actionType": "FAAS", "description": "string", "functionId": "<function_OCID>", "isEnabled": true }, { "actionType": "ONS", "description": "string", "isEnabled": true, "topicId": "<topic_OCID>" }, { "actionType": "OSS", "description": "string", "isEnabled": true, "streamId": "<stream_OCID>" } ] }
- テナンシの実際のトピックOCID値を<topic_OCID>に入力します。
- 説明を追加します。
- ファイル名としてaction.jsonを付けてファイルを保存します。
ルールの作成
コマンド・プロンプトを開き、oci events rule create
を実行してルールを作成します。
次のオプションを使用します:
display-name
は、コンソールでルールの名前を示します。is-enabled
は、ルールが評価されるかどうかを示します。-
condition
イベントの一致のパターンを示すために使用されるJSON形式の文字列(使用方法は次のコマンド例を参照)。 compartment-id
は、ルールが適用されるコンパートメントを示します。イベントは、このコンパートメントおよび子コンパートメント内のリソースからのメッセージを評価します。actions
は、ルールに対するアクションを指定するために作成したJSON形式ファイルのローカル・ファイル・システムでのロケーションを示します。- ACTIVEで使用した場合の
wait-for-state=
は、CLIでサービスがルールを作成するのを待機して、別のGET操作を実行してから、アクティブ状態のルールを表示することを示します。このオプションを選択しない場合、CLIでは作成中のルールがただちに表示されます。
例:
oci events rule create --display-name CLI-created_rule --is-enabled true --condition "{\"eventType\":[\"com.oraclecloud.objectstorage.createbucket\"]}" --compartment-id <compartment_OCID> --actions <path_to_json_formatted_actions_file> --wait-for-state=ACTIVE
<compartment_OCID>および<path_to_json_formatted_actions_file>の値を、テナンシおよびローカル・ファイル・システムの実際の値で置き換えてください。
前述のコマンドを実行すると、ルールとその表示に関するCLIプロンプトが表示されます:
Action completed. Waiting until the resource has entered state: ACTIVE
{
"data": {
"actions": {
"actions": [
{
"action-type": "ONS",
"description": "Notifications action",
"id": "ocid1.eventaction.oc1.phx.<unique_ID>",
"lifecycle-message": null,
"lifecycle-state": "ACTIVE",
"topic-id": "ocid1.onstopic.oc1.phx.<unique_ID>"
}
]
},
"compartment-id": "ocid1.compartment.oc1..<unique_ID>",
"condition": "{\"eventType\":[\"com.oraclecloud.objectstorage.createbucket\"]}",
"defined-tags": {},
"description": null,
"display-name": "CLI-created_rule",
"freeform-tags": {},
"id": "ocid1.eventrule.oc1.phx.<unique_ID>",
"is-enabled": true,
"lifecycle-message": null,
"lifecycle-state": "ACTIVE",
"time-created": "2019-04-25T01:32:56.855000+00:00"
},
"etag": "<unique_ID>--gzip"
}
- ナビゲーション・メニューを開き、「ストレージ」を選択します。「Object Storage & Archive Storage」で、「Buckets」を選択します。
- ルールを作成したコンパートメント(またはその下位コンパートメントのいずれか)を選択します。
- 「バケットの作成」をクリックします。
- 「バケットの作成」ダイアログで、バケットの属性を指定します:
- 名前: 必須。わかりやすい名前または説明。機密情報の入力は避けてください。
-
ストレージ層: データを格納する層を選択します。使用可能な層は次のとおりです:
- 「標準」は、高速な即時アクセスを必要とする、アクセス頻度の高いデータを格納するためのデフォルトのプライマリ・オブジェクト・ストレージ層です。
- 「アーカイブ」は、アクセス頻度が低く、長い保持期間が必要なデータを格納するための特別な層です。アーカイブ層のデータへのアクセスは、即時に処理されません。アクセスする前にアーカイブ済データをリストアする必要があります。詳細は、アーカイブ・ストレージの概要を参照してください。
- 「作成」をクリックします。
通知の受信
-
前の手順で指定した電子メール・アカウントにログインし、作成されるバケットについての通知を受信します。
ヒント
ルールを無効化するまで、バケットがコンパートメント(またはそのサブ・コンパートメント)に作成されるたびに通知を受け取ります。