すべてのプロダクト
Search
ドキュメントセンター

Function Compute:OSSイベントトリガーの概要

最終更新日:Sep 09, 2024

Object Storage Service (OSS) をFunction Computeと統合すると、OSSイベントにより、OSSバケット内のデータを処理する関数の実行がトリガーされます。 このトピックでは、Function ComputeのネイティブOSSトリガーとEventBridgeベースのOSSトリガーの制限、イベントタイプ、トリガールールについて説明します。

背景情報

OSSは、OSSトリガーを使用してFunction Computeとシームレスに統合されます。 OSSイベントを使用して関数を記述し、関数を呼び出すことができます。 OSSが特定のタイプのイベントをキャプチャすると、イベントは対応する関数の実行をトリガーします。 たとえば、PutObjectイベントを処理する関数を記述できます。 OSSのPutObject操作を呼び出して画像をOSSにアップロードすると、関数が呼び出されて画像が処理されます。

OSSがFunction Computeと統合された後、さまざまな関数を呼び出して画像とオーディオデータを処理し、結果を複数のストレージサービスに書き込むことができます。 プロセス全体で、関数ロジックの記述に集中するだけで済みます。 Function Computeは、大量のデータをリアルタイムで並行して処理できます。

制限

  • ネイティブOSSトリガーのみが、バケットの関連するすべてのトリガーのクエリをサポートします。

    ビジネス要件に基づいて、既存のOSSトリガーを再利用したり、使用されなくなったOSSトリガーを削除したりできます。 これにより、バケットに関連付けられたトリガーの数が10を超えるのを防ぎます。 関数の詳細ページの [トリガー管理 (URL)] タブで、管理するトリガーを見つけ、[設定] 列のバケット名をクリックします。 [OSSバケット関連のトリガー] パネルで、バケットに関連付けられているOSSトリガーを表示できます。

    created-oss-trigger

    説明

    削除されたトリガーは復元できません。 トリガーを削除するときは注意が必要です。

  • EventBridgeベースのOSSトリガーに対してのみ、複数のオブジェクトプレフィックスとサフィックスを設定できます。 詳細については、「EventBridgeベースのOSSトリガーの設定」をご参照ください。

  • 正規表現の照合は、ネイティブOSSトリガーとEventBridgeベースのOSSトリガーに設定したオブジェクトプレフィックスとサフィックスではサポートされていません。 詳細については、「ネイティブOSSトリガーの設定」および「EventBridgeベースのOSSトリガーの設定」をご参照ください。

  • 10を超えるOSSトリガーをバケットに関連付ける場合は、EventBridgeベースのOSSトリガーのみを関連付けることができます。 詳細については、「EventBridgeベースのOSSトリガーの設定」をご参照ください。

    10個を超えるトリガーをバケットに関連付けないことを推奨します。 より多くのトリガーを関連付ける場合は、新しいバケットを作成し、新しいバケットに基づいて新しいトリガーを作成することを推奨します。

OSSイベント

OSSがイベントをキャプチャすると、OSSはイベント情報をJSON文字列としてエンコードし、その文字列を対応するイベント処理関数に渡します。 OSSイベント通知の形式の詳細については、「イベント通知を使用してオブジェクトの変更をリアルタイムで監視する」トピックの「イベント通知」セクションをご参照ください。

次の表に、Function ComputeでサポートされているOSSイベントを示します。 各イベントタイプは、ObjectCreated、ObjectRemoved、またはObjectModifiedオペレーションに対応する。 操作が期待どおりに呼び出されると、関数がトリガーされ、1回実行されます。

イベントタイプ

イベント名

説明

ObjectCreated

oss:ObjectCreated:PutObject

オブジェクトをアップロードするには、PutObject操作が呼び出されます。 詳しくは、「PutObject」 をご参照ください。

oss:ObjectCreated:PutSymlink

PutSymlink操作は、OSSで宛先オブジェクトのシンボリックリンクを作成するために呼び出されます。 このシンボリックリンクを使用して、宛先オブジェクトにアクセスできます。 詳細については、「PutSymlink」をご参照ください。

oss:ObjectCreated:PostObject

PostObject操作は、HTMLフォームを使用して指定されたバケットにファイルをアップロードするために呼び出されます。 詳細については、「PostObject」をご参照ください。

oss:ObjectCreated:CopyObject

CopyObject操作は、OSS内の既存のオブジェクトをコピーするために呼び出されます。 詳細については、「CopyObject」をご参照ください。

oss:ObjectCreated:InitiateMultipartUpload

マルチパートアップロードを使用してデータをアップロードする前に、InitiateMultipartUpload操作を呼び出して、マルチパートアップロードイベントを開始するようにOSSに通知する必要があります。 詳細については、「InitiateMultipartUpload」をご参照ください。

oss:ObjectCreated:UploadPart

マルチパートアップロードイベントが開始された後、指定されたオブジェクト名とアップロードIDに基づいてデータをパーツでアップロードできます。 詳細については、「UploadPart」をご参照ください。

oss:ObjectCreated:UploadPartCopy

UploadPartCopy操作は、既存のオブジェクトからデータをコピーして部品をアップロードするために呼び出されます。 詳細については、「UploadPartCopy」をご参照ください。

oss:ObjectCreated:CompleteMultipartUpload

オブジェクトのマルチパートアップロードを完了するには、CompleteMultipartUpload操作が呼び出されます。 詳細については、「CompleteMultipartUpload」をご参照ください。

oss:ObjectCreated:AppendObject

AppendObject操作は、オブジェクトを既存のオブジェクトに追加してアップロードするために呼び出されます。 詳細については、「AppendObject」をご参照ください。

oss:ObjectCreated:*

前述のObjectCreated操作のいずれかが呼び出されると、関数がトリガーされます。

ObjectRemoved

oss:ObjectRemoved:DeleteObject

オブジェクトを削除するには、DeleteObject操作が呼び出されます。 詳細については、「DeleteObject」をご参照ください。

oss:ObjectRemoved:DeleteObjects

DeleteMultipleObjects操作は、一度に複数のオブジェクトを削除するために呼び出されます。 詳細については、「DeleteMultipleObjects」をご参照ください。

oss:ObjectRemoved:AbortMultipartUpload

指定したアップロードIDに基づいてマルチパートアップロードタスクをキャンセルするには、AbortMultipartUpload操作が呼び出されます。 詳細については、「AbortMultipartUpload」をご参照ください。

ObjectModified

oss:ObjectModified:UpdateObjectMeta

UpdateObjectMeta操作は、オブジェクトの属性を変更するために呼び出されます。

説明

このタイプのイベントは、中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (深セン) 、中国 (成都) の各リージョンでサポートされています。

トリガールール

ループトリガーを実行しない

警告

OSSイベントトリガーを使用する場合は、ループトリガーを実行しないでください。 たとえば、オブジェクトをOSSバケットにアップロードすると、アップロード操作によって関数がトリガーされます。 この関数は、OSSバケットに書き込まれる1つ以上のオブジェクトを生成し、書き込み操作によって関数が再びトリガーされます。 この結果、ループが生じる。

ループトリガーによる追加コストを防ぐため、OSSトリガーの作成時にObject PrefixパラメーターまたはObject Suffixパラメーターを設定することを推奨します。 たとえば、関数の呼び出しに使用されるオブジェクトのプレフィックスをsrcに設定し、関数の実行後に生成されるオブジェクトのプレフィックスをdstに設定できます。 このように、生成されたオブジェクトは関数を再度呼び出さない。 Object PrefixパラメーターまたはObject Suffixパラメーターを指定しない場合、すべてのプレフィックスとサフィックスを持つオブジェクトが一致します。 詳細については、「OSSトリガーの設定」をご参照ください。

セマンティックの一意性を確保する

トリガーの構成セマンティクスは、トリガーが作成されるバケット全体で一意である必要があります。 設定には、Trigger Eventパラメーター、Object Prefixパラメーター、およびObject Suffixパラメーターが含まれます。 たとえば、バケットのトリガーイベントがoss:ObjectCreated:PutObjectであるトリガーを作成します。 トリガーのObject PrefixパラメーターとObject Suffixパラメーターは、sourcezipに設定されます。 次の表に、バケットの新しいトリガーが有効かどうかを示します。

トリガーイベント

オブジェクトプレフィックス

オブジェクト接尾辞

有効

説明

oss:ObjectCreated:*

ソース1

zip1

任意

新しいトリガーは、既存のトリガーと同じタイプのイベントで構成されます。

説明

oss:ObjectCreated:* には、すべてのObjectCreatedイベントが含まれます。 ObjectCreatedイベントタイプのトリガーをバケットに作成した場合、oss:ObjectCreated:* イベントタイプのトリガーは作成できません。 同様に、oss:ObjectCreated:* イベントタイプのトリガーをバケットに作成した場合、ObjectCreatedイベントのトリガーは作成できません。

oss:ObjectCreated:PutObject

source

zip

任意

新しいトリガーは、既存のトリガーと同じObject PrefixパラメーターとObject Suffixパラメーターの値で設定されます。

source

なし

任意

新しいトリガーは、既存のトリガーと同じObject Prefixパラメーターの値で設定されます。 Object Suffixパラメーターを指定しない場合、zipサフィックスの付いたオブジェクトが含まれます。

なし

zip

任意

新しいトリガーは、既存のトリガーと同じObject Suffixパラメーターの値で設定されます。 Object Prefixパラメーターを指定しない場合、ソースプレフィックスを持つオブジェクトが含まれます。

ソース1

zip1

必須

新しいトリガーは、既存のトリガーとは異なるObject PrefixパラメーターとObject Suffixパラメーターの値で設定されます。

source

zip1

必須

新しいトリガーは、既存のトリガーとは異なるObject Suffixパラメーターの値で設定されます。

ソース1

zip

必須

新しいトリガーは、既存のトリガーとは異なるObject Prefixパラメーターの値で設定されます。

oss:ObjectCreated:PostObject

source

zip

必須

新しいトリガーは、既存のトリガーとは異なるトリガーイベントパラメーターの値で設定されます。

重要

ネイティブOSSトリガーでは、セマンティックの一意性を確保する必要があります。 したがって、異なる関数に対して同じOSSトリガーを設定することはできません。

同じイベントタイプの異なる関数に対して同じOSSトリガーを設定する場合は、EventBridgeベースのOSSトリガーを設定できます。 詳細については、「EventBridgeベースのOSSトリガーの設定」をご参照ください。

よくある質問

関連ドキュメント