監視対象のオブジェクトについて、Object Storage Service (OSS) コンソールでイベント通知ルールを構成できます。ルールで指定されたイベントがこれらのオブジェクトで発生した場合、通知が送信されます。
シナリオ例
会社の China (Hangzhou) リージョンに srcbucket という名前のバケットを作成し、srcbucket に log/ と destdir/ という 2 つのディレクトリを作成します。 log/ ディレクトリは、名前に log/ プレフィックスを含むログオブジェクトを格納するために使用されます。 destdir/ ディレクトリは、名前に destdir/ プレフィックスを含む画像を格納するために使用されます。
srcbucket
└── log/
├── date1.txt
├── date2.txt
├── date3.txt
├── .......
└── destdir/
├── photo1.jpg
├── photo2.jpg
├── ...... 会社は、srcbucket 内のログと顧客ケース画像、およびこれらのオブジェクトに対するすべての変更(オブジェクトの追加、削除、変更など)を UK (London) リージョンの destbucket という名前のバケットに同期する必要があります。 さらに、会社は、srcbucket と destbucket の log/ ディレクトリと destdir/ ディレクトリ内のオブジェクトに対するすべての変更について、すべての従業員に通知を送信したいと考えています。
この場合、srcbucket のクロスリージョンレプリケーション (CRR) ルールと、srcbucket と destbucket のイベント通知ルールを構成できます。
ステップ 1:SMQ キューを作成する
SMQ コンソール にログインします。
左側のナビゲーションウィンドウで、[キューモデル] > キュー を選択します。
上部のナビゲーションバーで、[中国 (杭州)] リージョンを選択します。
キュー ページで、キューを作成 をクリックします。キュー名を myqueue1 に設定し、その他のパラメーターについてはデフォルト設定を保持します。
[OK] をクリックします。
上部のナビゲーションバーで [英国 (ロンドン)] リージョンに切り替え、上記の手順を繰り返して、destbucket のイベント通知を受信するための myqueue2 という名前のキューを作成します。
ステップ 2:srcbucket の CRR ルールを構成する
OSS コンソール にログインします。
左側のナビゲーションウィンドウで、[バケット] をクリックします。表示されるページで、srcbucket をクリックします。
左側のナビゲーションツリーで、 を選択します。
[CRR] タブで、[CRR] をクリックします。
[CRR] パネルで、次のパラメーターを構成し、[OK] をクリックします。
パラメーター
説明
[宛先バケット]
[英国 (ロンドン)] を選択し、次に [destbucket] を選択します。
[レプリケートするオブジェクト]
[指定されたプレフィックスを持つオブジェクト] を選択し、プレフィックス destdir/ と log/ を指定します。
[レプリケーションポリシー]
[追加/削除/変更] を選択します。
[履歴データのレプリケート]
[はい] を選択します。
[RAM ロール名]
CRR のロールを選択します。
ステップ 3:srcbucket と destbucket のイベント通知ルールを構成する
ステップ 2 で構成した CRR ルールでは、履歴データが destbucket にレプリケートされるように指定されています。 大量の履歴データが利用可能な場合、レプリケーションが発生するときに多くの通知がトリガーされます。 レプリケーション中に通知を受けたくない場合は、すべての履歴データが同期された後に、srcbucket と destbucket のイベント通知ルールを構成することをお勧めします。
OSS コンソール にログインします。
左側のナビゲーションウィンドウで、[バケット] をクリックします。表示されるページで、srcbucket と destbucket をそれぞれ選択し、以下の手順に従ってそれぞれのイベント通知ルールを構成します。
左側のナビゲーションツリーで、 を選択します。
[イベント通知] ページで、[ルールの作成] をクリックします。
[ルールの作成] パネルで、次の表に従ってパラメーターを構成し、[OK] をクリックします。
パラメーター
srcbucket
destbucket
[ルール名]
ルール名を notification1 に設定します。
ルール名を notification2 に設定します。
[イベントタイプ]
[PutObject]、[CopyObject]、[DeleteObject]、[DeleteObjects] を選択します。
[ObjectReplication:ObjectCreated]、[ObjectReplication:ObjectRemoved]、[ObjectReplication:ObjectModified] を選択します。
[リソースの説明]
[プレフィックスとサフィックス] を選択し、プレフィックス log/ と destdir/ を追加します。
[プレフィックスとサフィックス] を選択し、プレフィックス log/ と destdir/ を追加します。
[エンドポイント]
[キュー] を選択し、ステップ 1 で作成した myqueue1 を入力します。
[キュー] を選択し、ステップ 1 で作成した myqueue2 を入力します。
新しいイベント通知ルールが有効になるまで約 10 分かかります。
ステップ 4:通知を受信するためのサブスクリプションを構成する
ルールに一致するイベントがトリガーされると、SMQ は自動的にトピックを作成します。 トピック名は、mns-en-topics-[Product]-[RuleName]-[Timestamp] 形式(例:mns-en-topics-oss-notification1-1700098799)です。 通知を受信するには、トピックをサブスクライブし、サブスクリプションルールでエンドポイントを指定する必要があります。
ログインして、[サブスクリプション] ページに移動します。
SMQ(旧 MNS)コンソール にログインします。
左側のナビゲーションウィンドウで、[トピック] をクリックします。
上部のナビゲーションバーで、[中国 (杭州)] リージョンを選択します。
自動的に作成されたトピックを見つけ、[アクション] 列の [サブスクリプションの表示] をクリックします。
サブスクリプションを作成します。
表示されたパネルで、[サブスクリプション] をクリックします。表示されるページで、[サブスクリプションの作成] をクリックします。
[サブスクリプションの作成] パネルで、srcbucket 用に SMQ によって作成された Topic へのサブスクリプションを作成するようにパラメーターを設定します。[名前] に mysubscription1 を入力し、[プッシュタイプ] で [キュー] を選択し、[受信側エンドポイント] に myqueue1 を入力します。その他のパラメーターはデフォルト設定のままにします。
[OK] をクリックします。
[英国 (ロンドン)] リージョンに切り替え、上記の手順を繰り返して、MNS が destbucket 用に作成したトピックへの mysubscription2 サブスクリプションを作成します。 プッシュタイプに [キュー] を選択し、受信者エンドポイントに myqueue2 と入力します。 その他のパラメーターについてはデフォルト設定を保持します。
通知を受信するための設定を構成します。
左側のナビゲーションウィンドウで、[キュー] をクリックします。
myqueue1 を見つけ、[アクション] 列の を選択します。
表示されたページの [メッセージの受信] セクションで、[メッセージの受信] をクリックします。
srcbucket の log/ ディレクトリと destdir/ ディレクトリ内のオブジェクトが作成、変更、または削除されると、システムから通知されます。
上記の手順を繰り返して、destbucket 用に作成された myqueue2 から通知を受信します。 構成が完了すると、CRR ルールに基づいて destbucket 内のオブジェクトの作成、上書き、または削除に関するイベント通知を受信します。
このような通知が不要になった場合は、イベント通知ルールを削除します。 イベント通知ルールを削除しても、自動的に作成されたトピックは削除されません。 そのため、不要な料金が発生しないように、不要なトピックはできるだけ早く削除してください。