PHP ランタイム

Cloud Run functions は、オペレーティング システムのバージョンに加えて、アドオン パッケージ、言語サポート、お使いの関数をサポートして呼び出す Functions Framework ライブラリで構成される環境で実行されます。この環境は言語バージョンで識別され、ランタイムとして知られています。

これらのランタイムは、nginxPHP-FPM を使用してリクエストを処理します。ランタイム全般の詳細と、各 PHP ランタイムが使用する Ubuntu のバージョンについては、Cloud Run functions 実行環境をご覧ください。

ランタイムの選択

Cloud Run functions は、ランタイム サポートのページに記載されている複数のバージョンの PHP をサポートしています。関数の優先 PHP ランタイムは、デプロイ時に選択できます。

Google Cloud CLI を使用している場合は、--runtime パラメータを使用してランタイムを指定します。NAME には、関数名を指定します。例:

gcloud functions deploy NAME --no-gen2 --runtime php82 --trigger-http

その他のデプロイ パラメータについては、Cloud Run functions をデプロイするをご覧ください。

関数の準備

関数はローカルマシンで作成してアップロードできます。PHP 開発用にローカルマシンを準備するには、 Google Cloudでの PHP の使用をご覧ください。

関数を呼び出すライブラリは、PHP Functions Framework です。

ソースコードの構造

Cloud Run functions が関数の定義を見つけるには、ソースコードが特定の構造に従っている必要があります。詳細については、Cloud Run functions の作成をご覧ください。

PHP の構成

PHP 関数を構成するには、関数のルート ディレクトリにある php.ini ファイルを使用します。既存の PHP 構成設定は、次のコードサンプルに示すように、phpinfo() 関数を使用して表示できます。

  
use Psr\Http\Message\ServerRequestInterface;

function phpInfoDemo(ServerRequestInterface $request): string
{
    // phpinfo() displays its output directly in the function's
    // HTTP response, so we don't need to explicitly return it
    //
    // Note: we recommend deleting the deployed Cloud Function once you no
    // longer need it, as phpinfo() may broadcast potential security issues.
    phpinfo();
    return '';
}

依存関係の指定

関数の依存関係は、composer.json というプロジェクト ファイルに追加することで指定できます。詳細については、PHP での依存関係を指定するをご覧ください。