非同期モードで関数を呼び出すと、リクエストは信頼できる方法で処理される前に、function Computeの内部キューに保持されます。 各フェーズで非同期呼び出しの状態を追跡して保存し、より優れたタスク制御機能と監視機能を取得する場合は、タスクモードを有効にして非同期リクエストを処理できます。 このトピックでは、非同期タスクの背景情報、制限、および一般的な機能について説明します。
背景
非同期タスク機能を有効にすると、次の機能を取得できます。
各関数呼び出しに対する、呼び出し入力、実行結果、およびエラー情報などの状態遷移情報が記録される。
各呼び出しを管理できます。 たとえば、呼び出しを終了できます。
非同期タスク機能を有効にすると、ステータス情報を保存する必要があるため、関数の呼び出しと実行のレイテンシが増加します。 レイテンシが増加しても追加料金は発生しません。 Function Computeの課金の詳細については、「課金の概要」をご参照ください。
制限事項
シナリオの制限
非同期タスク機能はより多くの機能を提供しますが、より多くのシステムオーバーヘッドが発生します。 次のシナリオでは、非同期タスク機能を無効にすることを推奨します。
ビジネスアプリケーションは、リクエスト処理リンクのレイテンシに敏感であり、平均レイテンシが100ミリ秒未満である必要があります。
1秒あたり少なくとも数千の非同期呼び出しを開始する必要があります。
サポートされるリージョン
非同期タスクは、中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (深セン) 、中国 (成都) 、中国 (香港) 、シンガポール、英国 (ロンドン) 、米国 (シリコンバレー) 、米国 (バージニア) 、ドイツ (フランクフルト) 、オーストラリア (シドニー) サービス終了、マレーシア (クアラルンプール) 、インドネシア (ジャカルタ) 、タイ (バンコク) 、日本 (東京) 、韓国 (ソウル) 。
有効期間
タスクのステータス情報は、過去7日以内にのみ照会できます。
機能の比較
非同期タスク処理プラットフォームを構築したり、単純なスケジュールタスクを実行したりする場合は、Kubernetesジョブを使用できます。 以下は、Function ComputeジョブとKubernetesジョブの非同期タスクの比較です。
項目 | Function Computeの非同期タスク | Kubernetesジョブ |
シナリオ | 数十ミリ秒続くリアルタイムタスクと数十時間続くオフラインタスク。 | 負荷が固定され、タスクの送信速度と適時性に関する要件が低いオフラインタスク。 |
可観測性 | サポートされています。 ログやキューに入れられたタスクの数などのメトリックと、タスクリンク期間やタスクステータスのクエリを含む可観測性機能が提供されます。 | オブザーバビリティ機能を実装するには、オープンソースソフトウェアを統合する必要があります。 |
タスクインスタンスの自動スケーリング | サポートされています。 キューに入れられたタスクの数とインスタンスのリソース使用量に基づく自動スケーリングを実行できます。 | タスクキューを使用して、インスタンスのスケーリングと負荷分散を手動で実装する必要がありますが、これはより複雑です。 |
タスクインスタンスのスケーリング速度 | ミリ秒単位。 | 数分で |
タスクインスタンスのリソース使用率 | インスタンスタイプのみを選択する必要があります。 インスタンスは自動的にスケーリングされます。 実際のタスク処理期間に基づいて課金されます。 リソース使用率が高い。 | ジョブの送信時に、インスタンスの仕様と数を決定する必要があります。 インスタンスの自動スケーリングと負荷分散を実装することは困難です。 リソース使用率は低いです。 |
タスク送信速度 | 1人のユーザーが1秒あたり数万のタスクを送信できます。 | 1秒間に最大数百のジョブをクラスターで開始できます。 |
スケジュールまたは遅延タスクの送信 | サポートされています。 | スケジュールされたタスクの送信がサポートされます。 遅延タスクの送信はサポートされていません。 |
タスク重複排除 | サポートされています。 | サポートされていません。 |
タスクの終了 | サポートされています。 | 特定の条件下でサポートされます。 タスクインスタンスを停止することで、タスクを終了できます。 |
タスク調整 | サポートされています。 スロットリングは、ユーザレベルまたはタスク処理機能レベルなど、異なる粒度で実行することができる。 | サポートされていません。 |
タスクの自動結果コールバック | サポートされています。 | サポートされていません。 |
開発とO&Mのコスト | タスク処理ロジックのみを実装する必要があります。 | Kubernetesクラスターを維持する必要があります。 |
通常の機能
非同期タスクの一般的な機能については、次のトピックを参照してください。