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

Function Compute:概要

最終更新日:Jun 05, 2025

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

背景情報

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

OSS と Function Compute を統合した後、さまざまな関数を呼び出して画像ファイルや音声ファイルを処理し、処理されたファイルを特定のストレージサービスに書き込むことができます。プロセス全体を通して、関数ロジックの作成にのみ集中する必要があります。Function Compute は、大量のデータをリアルタイムで並行して処理できます。

OSS トリガーの制限

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

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

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

    10 個を超えるトリガーをバケットに関連付けないことをお勧めします。さらに多くのトリガーを関連付ける場合は、新しいバケットを作成し、新しいバケットに基づいて新しいトリガーを作成できます。

OSS イベント

OSS が指定されたタイプのイベントをキャプチャすると、OSS はイベント情報を JSON 文字列としてエンコードし、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 操作を呼び出す必要があります。詳細については、InitiateMultipartUpload を参照してください。

oss:ObjectCreated:UploadPart

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

oss:ObjectCreated:UploadPartCopy

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

oss:ObjectCreated:CompleteMultipartUpload

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

oss:ObjectCreated:AppendObject

AppendObject 操作が呼び出されて、オブジェクトのコンテンツを既存のオブジェクトに追加することでオブジェクトがアップロードされます。詳細については、AppendObject を参照してください。

oss:ObjectCreated:*

上記の ObjectCreated タイプの API 操作のいずれかが呼び出されます。

ObjectRemoved

oss:ObjectRemoved:DeleteObject

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

oss:ObjectRemoved:DeleteObjects

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

oss:ObjectRemoved:AbortMultipartUpload

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

オブジェクト変更

oss:ObjectModified:UpdateObjectMeta

[UpdateObjectMeta] 操作が呼び出され、オブジェクトの属性が変更されます。

説明

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

オブジェクトレプリケーション

oss:ObjectReplication:ObjectCreated

データレプリケーション タスクでオブジェクトが作成されます。

oss:ObjectReplication:ObjectModified

データレプリケーションタスクでオブジェクトが上書きされます。

oss:ObjectReplication:ObjectRemoved

データレプリケーション タスクでオブジェクトが削除されました。

トリガー規則

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

警告

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

ループトリガーによって発生する追加コストを防ぐために、OSS トリガーを作成するときにオブジェクトプレフィックスまたはオブジェクトサフィックスを構成することをお勧めします。たとえば、オブジェクトプレフィックスを src に設定し、オブジェクトプレフィックスを dst に設定できます。このようにして、生成されたオブジェクトは関数を再度呼び出しません。オブジェクトプレフィックスまたはオブジェクトサフィックスを構成しない場合、すべてのプレフィックスとサフィックスを持つオブジェクトが一致となります。詳細については、「手順 1: OSS トリガーを作成する」をご参照ください。

ネイティブ OSS トリガーのセマンティックな一意性を確保する

トリガーの構成セマンティクスは、トリガーが作成されるバケット内で一意である必要があります。構成には、トリガーイベントパラメーター、オブジェクトプレフィックスパラメーター、およびオブジェクトサフィックスパラメーターが含まれます。たとえば、トリガーイベントが oss:ObjectCreated:PutObject であるバケットのトリガーを作成します。オブジェクトプレフィックスパラメーターは source に設定され、オブジェクトサフィックスパラメーターは zip に設定されます。次の表は、異なる構成の新しいトリガーがバケットに対して有効かどうかを示しています。

トリガーイベント

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

オブジェクトサフィックス

有効かどうか

説明

oss:ObjectCreated:*

source1

zip1

いいえ

新しいトリガーのイベントタイプが、既存のトリガーのイベントタイプと競合しています。

説明

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

oss:ObjectCreated:PutObject

source

zip

いいえ

新しいトリガーのオブジェクトプレフィックスパラメーターとオブジェクトサフィックスパラメーターの値が、既存のトリガーの値と同じです。

source

なし

いいえ

新しいトリガーの オブジェクトプレフィックス パラメーターの値が、既存のトリガーの値と同じです。オブジェクトサフィックス パラメーターを構成しない場合、zip サフィックスを持つオブジェクトが含まれます。

なし

zip

いいえ

新しいトリガーの オブジェクトサフィックス パラメーターの値が、既存のトリガーの値と同じです。オブジェクトプレフィックス パラメーターを構成しない場合、source プレフィックスを持つオブジェクトが含まれます。

source1

zip1

はい

新しいトリガーのオブジェクトプレフィックスパラメーターとオブジェクトサフィックスパラメーターの値が、既存のトリガーの値と異なります。

source

zip1

はい

新しいトリガーの オブジェクトサフィックス パラメーターの値が、既存のトリガーの値と異なります。

source1

zip

はい

新しいトリガーの オブジェクトプレフィックス パラメーターの値が、既存のトリガーの値と異なります。

oss:ObjectCreated:PostObject

source

zip

はい

新しいトリガーのトリガーイベントパラメーターの値が、既存のトリガーの値と異なります。

重要

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

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

参考資料

詳細情報