PHP ランタイム

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

関数の準備

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

ランタイムの選択

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

gcloud

Cloud Run functions を使用して gcloud CLI で HTTP 関数をデプロイするには、Google Cloud CLI を使用してデプロイするをご覧ください。

Console

Google Cloud コンソールを使用している場合は、関数を作成してデプロイするときにランタイムを選択します。詳しい手順については、Google Cloud コンソール クイックスタートをご覧ください。

ソースコードの構造

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

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 '';
}

依存関係の指定

PHP では、Composer を使用して依存関係を管理します。関数の依存関係は、composer.json というプロジェクト ファイルに追加することで指定します。

Cloud Run functions の PHP ランタイムには、Functions Framework が明示的な依存関係として必要です。Functions Framework を依存関係として追加するには、関数コードが含まれるディレクトリで次のコマンドを実行します(このディレクトリには composer.json ファイルも含まれている必要があります)。

composer require google/cloud-functions-framework

これにより、Functions Framework が composer.json に追加され、パッケージが vendor/ ディレクトリにインストールされます。

autoload.php ファイル

autoload.php は、vendor/ ディレクトリに含まれるファイルの 1 つです。

PHP スクリプトの先頭に次の行を追加して autoload.php ファイルを require すると、関数の他の依存関係が自動的に require されます。

require_once __DIR__ . '/vendor/autoload.php';

デフォルトでは、デプロイ時に送信されるファイル数を減らすために、生成される .gcloudignore ファイル内で vendor/ ディレクトリは無視されます。