カスタムコンテナ関数は、Function Compute がユーザーに代わって予約するリソースに依存します。これには、コールドスタートのレイテンシーを削減するために Alibaba Cloud Container Registry (ACR) からキャッシュされたイメージも含まれます。イメージのキャッシュはバックグラウンドで非同期に行われるため、関数の作成または更新直後は、呼び出しを処理する準備ができていない場合があります。関数の状態を確認することで、関数がいつ呼び出し可能になるかを正確に把握できます。
関数の状態
Function Compute は、すべてのカスタムコンテナ関数に次のいずれかの状態を割り当てます。
| 状態 | 呼び出し可能 | 説明 |
|---|---|---|
| Pending | いいえ | 関数が作成された後の初期状態です。Function Compute はリソースを予約し、イメージをキャッシュしています。イメージの準備が完了すると、Active に移行します。 |
| Active | はい | リソースの予約が完了しました。関数は正常に呼び出しを処理します。 |
| Failed | いいえ | リソースの準備またはイメージへのアクセスでエラーが発生しました。回復手順については、「Failed 状態」をご参照ください。 |
| Inactive | いいえ | 関数が長時間アイドル状態であったため、Function Compute はキャッシュされたリソースを解放しました。関数を再デプロイまたはトリガーすると、Pending 状態に戻ります。リソースの準備に成功した場合、関数は Active 状態に戻ります。それ以外の場合は、Inactive 状態のままになります。 |
Failed 状態
関数は、次の 2 つの状況で Failed 状態になります:
作成または更新中のリソース準備の失敗:リソースの準備中に問題が発生したため、関数を呼び出すことができません。
元のイメージにアクセスできなくなった:Function Compute はコールドスタートを高速化するためにイメージをキャッシュしますが、ACR 内の元のイメージは呼び出し中にアクセス可能である必要があります。イメージが削除されたり、タグが別のダイジェストで上書きされたりすると、関数は Failed 状態になります。有効なイメージ情報で関数を更新し、再デプロイしてください。
Function Compute は、関数の作成または更新時に選択したイメージバージョンのタグとダイジェストの両方を記録します。そのダイジェストが後で ACR で上書きされると、関数の呼び出しは失敗します。デプロイ後にイメージタグが上書きされないようにしてください。上書きされた場合は、最新のイメージ情報を使用して関数を再デプロイしてください。
更新の状態
関数の更新が進行中の間、LastUpdateStatus フィールドは、関数のメインの状態とは別に更新を追跡します。
LastUpdateStatus | 説明 | 呼び出しのルーティング |
|---|---|---|
InProgress | Function Compute は更新のためのリソースを準備しています。 | 更新前のコードに転送されます。 |
Successful | 更新が完了しました。 | 更新後のコードに転送されます。 |
Failed | 更新のためのリソース準備に失敗しました。 | 更新前のコードに転送されます。 |
呼び出し前の状態確認
GetFunction 操作を呼び出すことで、関数の状態とイメージダイジェストを取得できます。SDK または Serverless Devs を使用してカスタムコンテナ関数を作成または更新する場合は、呼び出し前に GetFunction 操作を呼び出して関数の状態を確認してください。
新しく作成された関数:状態が
Activeであることを確認します。他の状態の関数は呼び出すことができません。更新された関数:
LastUpdateStatusがSuccessfulであることを確認します。
状態図
次の図は、Active 状態の新規作成された関数を示しています。

次の図は、更新中の関数 (LastUpdateStatus: InProgress) を示しています。

次の図は、更新が成功した後の関数 (LastUpdateStatus: Successful) を示しています。
