シナリオ: 関数へのキュー・メッセージの送信
コネクタ・ハブを使用してキューをファンクションと統合します。
このシナリオでは、関数を作成し、その関数をコネクタ(コネクタ・ハブ)でターゲットとして参照して、キューからのメッセージを受信および処理します。
関数が受信したペイロードには、キューからのメッセージのみが含まれます。
関連チュートリアルについては、OCI関数およびOCIキューを使用した承認者に管理権限を公開せずにユーザー機能を認可を参照してください。
トラブルシューティングに関するヘルプは、コネクタのトラブルシューティングを参照してください。
必要なIAMポリシー
キューの処理時のエラー処理
関数に送信されるキュー・メッセージのコンテキストでは、バッチ内のメッセージの処理中の部分的な失敗はサポートされていません。
キューからのメッセージのバッチを処理しているファンクションでエラーが発生すると、そのバッチ内のすべてのメッセージがキューに再度表示され、そのファンクションが正常に処理されたメッセージも含まれます。したがって、関数によってメッセージが複数回処理される可能性があります。任意のターゲットと同様に、コネクタは関数ターゲットが成功するまで無期限に再試行を続けます。詳細は、配信詳細を参照してください。
メッセージのバッチの処理中に障害が発生した場合でも、それらのメッセージの配信数は増加します。メッセージの配信数がキュー・レベルで定義された最大数に達すると、メッセージは配信不能キューに送信されます。詳細は、配信数を参照してください。
メッセージの再処理を防ぐには、関数をべき等にします。
キューおよび機能の設定
コネクタ(コネクタ・ハブ)を作成する前に、キューからデータを受信するキューおよびファンクションを設定する必要があります。
キューの手順については、キューの作成を参照してください。
関数の手順は、次のとおりです。
作成プロセスが開始され、その進行状況が表示されます。完了すると、コネクタの詳細ページが開きます。 CreateServiceConnector操作を実行してコネクタを作成します。
リクエストの例:
POST /20200909/serviceConnectors Host: service-connector-hub.us-phoenix-1.oraclecloud.com <authorization and other headers> { "displayName": "My Queue to Function Connector", "compartmentId": "<compartment_OCID>", "description": "My connector description", "source": { "kind": "plugin", "pluginName": "QueueSource", "configMap": { "queueId": "<queue_OCID>" } }, "target": { "kind": "functions", "functionId": "<function_OCID>", "batchSizeInKbs": "5000", "batchSizeInNum": "10", "batchTimeInSec": "60" } }
起動の検証およびトラブルシューティング
Functionsサービスでの起動を検証およびトラブルシューティングするには、ファンクション・ログの格納および表示を参照してください。