Object Storage Service (OSS) コンソールでイベント通知ルールを構成し、特定のオブジェクトをモニターできます。指定されたイベントがオブジェクトに対して発生すると、Object Storage Service (OSS) は Simple Message Queue (SMQ) キューに通知を送信します。
利用シーン
ある企業が中国 (杭州) リージョンに srcbucket という名前のバケットを作成しました。このバケットには log/ プレフィックスを持つログオブジェクトと、destdir/ プレフィックスを持つ顧客事例画像オブジェクトが格納されています。
srcbucket
└── log/
├── date1.txt
├── date2.txt
├── date3.txt
├── .......
└── destdir/
├── photo1.jpg
├── photo2.jpg
├── ......
子会社では、srcbucket 内の新しいログおよび画像オブジェクト(作成、削除、変更を含む)をリアルタイムで複製する必要があります。複製先は、親会社が所有しイギリス (ロンドン) リージョンにある destbucket という名前のバケットです。また、企業側では、srcbucket および destbucket の両方で log/ および destdir/ プレフィックスに一致するオブジェクトの変更について、全従業員に通知したいと考えています。
これらの要件を満たすため、srcbucket に対してクロスリージョンレプリケーション (CRR) ルールを構成し、srcbucket および destbucket の両方にイベント通知を設定します。
ステップ 1:キューの作成
-
SMQ コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
-
上部のナビゲーションバーで、中国 (杭州) リージョンを選択します。
-
キュー ページで、キューを作成 をクリックします。 キュー名を myqueue1 に設定し、他のパラメーターはデフォルト設定のままにします。
-
OK をクリックします。
-
前の手順を繰り返して、イギリス (ロンドン) リージョンに myqueue2 という名前のキューを作成します。
ステップ 2:クロスリージョンレプリケーションの構成
-
OSS コンソール にログインします。
-
バケット をクリックし、次に srcbucket をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。
-
クロスリージョンレプリケーション ページで、クロスリージョンレプリケーション をクリックします。
-
クロスリージョンレプリケーション パネルで、以下のパラメーターを構成し、OK をクリックします。
パラメーター
説明
ターゲットバケット
イギリス (ロンドン) をリージョンとして選択し、バケットとして destbucket を選択します。
複製するオブジェクト
[指定プレフィックスのオブジェクト] を選択し、プレフィックス destdir/ および log/ を追加します。
レプリケーションポリシー
[追加/削除/変更の同期] を選択します。
既存データの複製
コピー を選択します。
RAM ロール名
クロスリージョンレプリケーション用の RAM ロールを選択します。
ステップ 3:イベント通知の構成
ステップ 2 で構成した CRR ルールには、既存データの複製が含まれます。既存データの量が多い場合、このプロセスにより大量のメッセージがトリガーされる可能性があります。これを回避するため、既存データの複製が完了した後にイベント通知を有効にしてください。
-
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 コンソール にログインします。
-
左側のナビゲーションウィンドウで、トピック をクリックします。
-
上部のナビゲーションバーで、中国 (杭州) リージョンを選択します。
-
SMQ が自動的に作成したトピックを見つけ、操作列の 購読を見る をクリックします。
-
-
サブスクリプションを作成します。
-
トピック詳細ページで、[サブスクリプション] タブをクリックし、次に 購読の作成 をクリックします。
-
購読の作成 ページで、ソースバケット srcbucket 用のサブスクリプションを作成します。サブスクリプション名 は mysubscription1、[プッシュタイプ] は [キュー]、受信側エンドポイント は myqueue1 に設定します。他のパラメーターはデフォルト設定のままにします。
-
OK をクリックします。
-
-
イギリス (ロンドン) リージョンで同様の手順を繰り返し、送信先バケット destbucket 用に mysubscription2 という名前のサブスクリプションを作成します。[キュー] をプッシュタイプとして選択し、受信エンドポイントとして myqueue2 を指定します。他のパラメーターはデフォルト設定のままにします。
-
通知を受信します。
-
左側のナビゲーションウィンドウで、キュー をクリックします。
-
対象キュー myqueue1 の操作列で、 を選択します。
-
[メッセージの受信] セクションで、右上隅の [メッセージの受信] をクリックします。
これにより、srcbucket 内で
log/およびdestdir/プレフィックスに一致するオブジェクトの作成、変更、削除に関するイベント通知を受信できるようになります。 -
myqueue2 キューに対しても同様の手順を実行し、送信先バケット destbucket からの通知を受信します。構成が完了すると、CRR ルールによって destbucket 内のオブジェクトが作成、上書き、または削除された際にイベント通知を受信できるようになります。
イベント通知の受信が不要になった場合は、対応するイベント通知ルールを削除してください。ルールを削除しても、そのルール用に作成されたトピックは自動的には削除されません。不要な課金を回避するため、未使用のトピックは手動で削除する必要があります。
-