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