はい。Function Compute は、CAPort (Container Application Port) を使用してコンテナに PING を送信し、リクエストを処理できる状態にあるかを確認します。カスタムランタイム内の HTTP サーバーは、CAPort と同じポートでリッスンする必要があります。そうでない場合、準備状況チェックが失敗し、FunctionNotStarted エラーが発生します。
CAPort のデフォルト値は 9000 です。デフォルト設定を維持する場合、HTTP サーバーもポート 9000 でリッスンする必要があります。CAPort を 8080 に変更した場合、HTTP サーバーは 8080 でリッスンする必要があります。
バインドアドレスの要件
HTTP サーバーを 127.0.0.1:CAPort ではなく、0.0.0.0:CAPort または *:CAPort にバインドしてください。ループバックアドレスはコンテナ内部からのみ到達可能です。Function Compute はコンテナの外部から準備状況チェックの PING を送信するため、127.0.0.1 にバインドされたサーバーは応答しません。
正しいバインドと誤ったバインドの例 (Node.js)
// 正しい例 — コンテナ外部から到達可能
server.listen(9000, '0.0.0.0');
// 誤った例 — FunctionNotStarted エラーが発生
server.listen(9000, '127.0.0.1');FunctionNotStarted エラー
ポートが一致しない場合、またはサーバーがループバックアドレスにバインドされている場合、コンテナの起動タイムアウトが経過した後に、Function Compute は以下のエラーを返します:
{
"ErrorCode": "FunctionNotStarted",
"ErrorMessage": "The CA's HTTP server cannot be started: ContainerStartDuration: 25000000000. Ping CA failed due to: dial tcp 21.0.5.7:9000: getsockopt: connection refused"
}このエラーを解決するには、以下の点を確認してください:
HTTP サーバーがリッスンするポートが
CAPortと一致していること。HTTP サーバーが
127.0.0.1ではなく、0.0.0.0または*にバインドされていること。