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

Function Compute:トラブルシューティング

最終更新日:Jan 09, 2026

このトピックでは、カスタムランタイムで発生する一般的なエラーとそのトラブルシューティング方法について説明します。

関数インスタンスの起動失敗

エラー

The function cannot be started. Failed to start function instance. Error: the file /code/bootstrap is not exist

考えられる原因とトラブルシューティング方法

関数インスタンスの起動に失敗する場合、起動コマンドに例外が発生したか、起動コマンドが存在しないことが原因として考えられます。

  • デフォルトでは、起動コマンドが指定されていない場合、Function Compute は /code/bootstrap を使用します。コードパッケージに /code/bootstrap ファイルが含まれていない場合は、/code/bootstrap スクリプトをコードパッケージに追加するか、起動コマンドを変更してください。

  • 起動コマンドが指定されている場合は、/code/bootstrap ファイルが存在するかどうかを確認してください。

起動コマンドの設定方法については、「関数の作成」をご参照ください。

関数インスタンスのヘルスチェックの失敗

エラー

Function instance health check failed on port 9001 in 120 seconds.\nLogs:

考えられる原因とトラブルシューティング方法

関数インスタンスがヘルスチェックに失敗する場合、コードでリスナーに指定された IP アドレスまたはポートが正しくないことが原因として考えられます。関数インスタンスが起動した後、Function Compute プラットフォームは IP ポートの接続性をチェックします。タイムアウト期間内に接続性チェックの結果が返されない場合、Function instance health check failed エラーが返されます。

リスナーに指定する IP アドレスとポートは、次の要件を満たす必要があります。

  • IP アドレス

    リスナーの IP アドレスを 0.0.0.0 または * に指定します。コード内で IP アドレスを 127.0.0.0 または localhost に設定しないことを推奨します。

  • ポート

    リスナーに指定するポートは、Function Compute インスタンスで設定されたリスナーポートと同じである必要があります。カスタムランタイムのデフォルトのリスナーポートは 9000 です。

    • デフォルトのリスナーポートを使用する場合は、コード内で HTTP サーバーがリッスンするポートが 9000 であることを確認してください。

    • Function Compute インスタンスでリスナーポートを指定した場合は、コード内で HTTP サーバーがリッスンするポートが、指定したリスナーポートと同じであることを確認してください。

リスナーポートについては、「関数の作成」をご参照ください。

関数インスタンスプロセスの予期せぬ終了

エラー

Function instance exited unexpectedly(code 2, message:no such file or directory) with start command '/code/bootstrap '.
Logs:
  • Function instance exited unexpectedly は、関数インスタンスの起動プロセスが予期せず終了したことを示します。

  • code 2, message:no such file or directory は、起動プロセスの Linux 終了コードとその意味を示します。

  • with start command '/code/bootstrap ' は、関数インスタンスの起動コマンドを示します。

説明

プロセスの Linux 終了コードとその意味は参考情報です。エラーログでプロセスが終了した原因を特定してください。

考えられる原因とトラブルシューティング方法

  • 起動コマンドが実行可能でない

    The function cannot be started. Function instance exited unexpectedly(code 13, message:permission denied) with start command '/code/bootstrap '.

    インスタンスの起動コマンドが実行可能でない場合、エラーメッセージの終了コードは code 13, message:permission denied となります。コードをパッケージ化する前に、chmod 755 bootstrapchmod 777 bootstrap、または chmod +x bootstrap コマンドを実行して、起動コマンドを実行可能にしてください。

  • 指定されたファイルが存在しない

    Function instance exited unexpectedly(code 2, message:no such file or directory) with start command 'python3 not_exist_file.py '.
    Logs:xxx

    起動コマンドで指定したファイルが存在しない場合、エラーメッセージの終了コードは code 2, message:no such file or directory となります。場合によっては、エラーメッセージの終了コードが code 2, message:no such file or directory でなかったり、終了コードがエラーメッセージに含まれていなかったりすることがあります。この場合は、エラーログに基づいてエラーをトラブルシューティングする必要があります。

    次のセクションでは、起動コマンドで指定したファイルが存在しない場合に、さまざまなプログラミング言語で返されるエラーメッセージについて説明します。

    • Python

      インスタンスの起動コマンドが python3 not_exist_file.py の場合、終了コードは code 2, message:no such file or directory です。

      コマンドをシェルスクリプトに貼り付けて起動コマンドを /code/bootstrap に変更すると、関数を実行したときに /code/not_exist_file.py エラーメッセージが返されます。次のサンプルコードに例を示します。

      シェルスクリプト

      #!/bin/bash
      python3 not_exist_file.py

      エラーメッセージ

      Function instance exited unexpectedly(code 2, message:no such file or directory) with start command '/code/bootstrap '.
      Logs:python3: can't open file '/code/not_exist_file.py': [Errno 2] No such file or directory
    • Node.js

      インスタンスの起動コマンドが npm run start で、package.json ファイルで指定されているスクリプト起動コマンドが node ./not_exist_file.js の場合、次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'npm run start '.
      Logs:> nodejs-express@0.0.0 start /code
      > node ./not_exist_file.js
      
      internal/modules/cjs/loader.js:905
        throw err;
        ^
      
      Error: Cannot find module '/code/not_exist_file.js'
          at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
          at Function.Module._load (internal/modules/cjs/loader.js:746:27)
          at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:75:12)
          at internal/main/run_main_module.js:17:47 {
        code: 'MODULE_NOT_FOUND',
        requireStack: []
      }
      npm ERR! code ELIFECYCLE
      npm ERR! errno 1
       ERR! nodejs-express@0.0.0 start: `node ./not_exist_file.js`
       npm ERR!
       ERR! Failed at the nodejs-express@0.0.0 start script.
      npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
      
      npm ERR! A complete log of this run can be found in:
      npm ERR!     /root/.npm/_logs/2022-10-31T08_02_29_434Z-debug.log

      エラーログから、原因が Error: Cannot find module '/code/not_exist_file.js' であり、/code/not_exist_file.js ファイルが存在しないことを確認できます。終了コードは code 1, message:operation not permitted です。

      インスタンスの起動コマンドが node ./not_exist_file.js の場合も、同様のエラーメッセージが返されます。

    • Java

      インスタンスの起動コマンドが java -Dserver.port=9000 -jar target/not_exist_file.jar の場合、次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'java -Dserver.port=9000 -jar target/not_exist_file.jar '.
      Logs:Error: Unable to access jarfile target/not_exist_file.jar

      エラーログから、原因が Unable to access jarfile target/not_exist_file.jar であり、target/not_exist_file.jar ファイルが存在しないことを確認できます。終了コードは code 1, message:operation not permitted です。

    • PHP

      インスタンスの起動コマンドが php not_exist_file.php の場合、次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'php not_exist_file.php '.
      Logs:Could not open input file: not_exist_file.php

      エラーログから、原因が Could not open input file: not_exist_file.php であり、not_exist_file.php ファイルが存在しないことを確認できます。終了コードは code 1, message:operation not permitted です。

    • .NET Core

      インスタンスの起動コマンドが dotnet ./target/NotExistFile.dll の場合、次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 145) with start command 'dotnet ./target/NotExistFile.dll '.
      Logs:Could not execute because the application was not found or a compatible .NET SDK is not installed.
      Possible reasons for this include:
        * You intended to execute a .NET program:
            The application './target/NotExistFile.dll' does not exist.
        * You intended to execute a .NET SDK command:
            It was not possible to find any installed .NET SDKs.
            Install a .NET SDK from:
              https://aka.ms/dotnet-download

      返されたエラーメッセージには、トラブルシューティング方法が含まれています。エラーの原因は、./target/NotExistFile.dll ファイルが存在しないか、.NET SDK がインストールされていないことです。終了コードは code 145 です。

    • Ruby

      インスタンスの起動コマンドが ruby not_exist_file.rb の場合、次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 1, message:operation not permitted) with start command 'ruby not_exist_file.rb '.
      Logs:Traceback (most recent call last):
      ruby: No such file or directory -- not_exist_file.rb (LoadError)

      エラーログから、原因が No such file or directory -- not_exist_file.rb であり、not_exist_file.rb ファイルが存在しないことを確認できます。終了コードは code 1, message:operation not permitted です。

  • ファイル形式が無効

    Function instance exited unexpectedly(code 8, message:exec format error) with start command '/code/bootstrap '.
    Logs:

    カスタムランタイムは 64 ビット x86 Linux システムで実行されます。起動ファイルがシステムでサポートされていることを確認してください。起動コマンドがシェルスクリプトの場合、ファイルが Linux でサポートされている形式であり、シェルシバン #! が含まれていることを確認してください。起動コマンドがバイナリ実行可能ファイルの場合、ファイルが Linux オペレーティングシステムと互換性のある実行可能およびリンク可能フォーマット (ELF) ファイルであることを確認してください。次のセクションでは、ファイル形式のエラーについて説明します。

    • 起動コマンドのシェルシバンでエラーが発生する

      シェルスクリプトにシバンが含まれていないか、シバンの内容が正しくない場合、インスタンスの終了コードは 8 exec format error となります。この場合、シェルスクリプトの最初の行に正しいシバンを追加する必要があります。

      スクリプトを bash ファイルとして実行する場合は、シェルスクリプトの最初の行に #!/usr/bin/env bash コマンドまたは #!/bin/bash コマンドを追加します。#!/usr/bin/env bash コマンドを追加することを推奨します。カスタムランタイム環境では、/bin/sh/bin/bash と同等です。シェルスクリプトの最初の行に #!/usr/bin/env sh コマンドまたは #!/bin/sh コマンドを追加することもできます。

    • 起動コマンドのシェルスクリプトが Windows OS 向けである

      次のテストスクリプトを実行します。

      #!/usr/bin/env bash
      node /code/index.js

      次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 127, message:key has expired) with start command '/code/bootstrap '.
      Logs:/usr/bin/env: 'bash\r': No such file or directory

      エラーログの bash\r は、bash の後に追加の \r があることを示します。UNIX OS では、行末は \n で表されます。Windows OS では、行末は \r\n で表されます。提供されたスクリプトは Windows OS 向けの形式です。

      Windows OS でスクリプトを作成した場合、UNIX OS と互換性のある形式に変換する必要があります。Linux OS で dos2unix コマンドを実行するか、Function Compute の WebIDE 機能を使用してスクリプトを変換できます。詳細については、「Function Compute の Web IDE 機能を使用してファイル形式を変換する方法」をご参照ください。

    • 起動コマンドが Linux OS と互換性のないバイナリ実行可能ファイルである

      起動コマンドが実行可能ファイルの場合、そのファイルが Linux OS と互換性のある ELF ファイルであることを確認してください。たとえば、M1 チップを搭載した Mac コンピューターで、デフォルト構成の GOOS=darwin GOARCH=arm64 を使用して Golang コードをコンパイルし、パッケージ化されたコードをテストすると、次のエラーメッセージが返されます。

      Function instance exited unexpectedly(code 8, message:exec format error) with start command './main '.
      Logs:

      インスタンスの終了コードは 8 exec format error であり、ファイル形式が無効であることを示します。コードをコンパイルする際に、GOOS=linux GOARCH=amd64 構成を追加する必要があります。詳細については、「コードパッケージのコンパイルとデプロイ」をご参照ください。

      コード内の実行可能ファイルの形式の確認

      • 次のサンプルコードは、GOOS=darwin GOARCH=arm64 構成を使用してコンパイルされた実行可能ファイルの形式を確認する方法の例です。

        $ file main
        main: Mach-O 64-bit arm64 executable, flags:<|DYLDLINK|PIE>

        ファイル形式は Mach-O、CPU アーキテクチャは arm64 です。この実行可能ファイルは OS と互換性がありません。

      • 次のサンプルコードは、GOOS=linux GOARCH=amd64 構成でコンパイルされた実行可能ファイルのフォーマットを確認する例です。

        $ file main
        main: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=xxx, not stripped

        ファイル形式は ELF です。CPU アーキテクチャは x86-64 です。実行可能ファイルは OS と互換性があります。

      説明
      • 通常、Linux OS の実行可能ファイルは ELF 形式です。

      • Mac OS の実行可能ファイルは Mach-O 形式です。

      • Windows OS の実行可能ファイルはポータブル実行可能 (PE) 形式です。

  • 一般的な終了コード

    次のセクションでは、その他の一般的な終了コードについて説明します。

    • 終了コード 137

      ほとんどの場合、この終了コードはメモリ不足を示す OOMKilled(Out of Memory) エラーが原因で返されます。この場合、関数のメモリ構成をスペックアップできます。

補足情報

このトピックに記載されていないエラーが発生した場合は、「カスタムランタイムのよくある質問」をご参照ください。