PHP ランタイム

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

関数の準備

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

サポートされている PHP ランタイムとベースイメージ

ランタイム ランタイム ID スタック ランタイム ベースイメージ
PHP 8.3 php83
  • google-22(デフォルト)
  • google-22-full
  • google-22/php83
  • google-22-full/php83
  • PHP 8.2 php82
  • google-22(デフォルト)
  • google-22-full
  • google-22/php82
  • google-22-full/php82
  • PHP 8.1 php81 google-18-full google-18-full/php81
    PHP 7.4 php74 google-18-full google-18-full/php74

    ランタイムの選択

    デプロイ時に、関数にサポートされている PHP ランタイムのいずれかを選択できます。

    ランタイム バージョンを選択するには、Google Cloud コンソールまたは gcloud CLI を使用します。使用するツールのタブをクリックして、手順を確認してください。

    gcloud

    関数をデプロイするときに、--base-image フラグを使用して関数の PHP ベースイメージを指定します。次に例を示します。

    gcloud run deploy FUNCTION \
        --source . \
        --function FUNCTION_ENTRYPOINT \
        --base-image php83
    

    次のように置き換えます。

    • FUNCTION: デプロイする関数の名前。このパラメータは省略できますが、省略すると名前の入力を求められます。

    • FUNCTION_ENTRYPOINT: ソースコード内の関数のエントリ ポイント。これは、関数の実行時に Cloud Run が実行するコードです。このフラグには、ソースコード内に存在する関数名または完全修飾クラス名を指定する必要があります。

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

    コンソール

    ランタイム バージョンは、Google Cloud コンソールで Cloud Run 関数を作成または更新するときに選択できます。関数のデプロイ手順については、Cloud Run で関数をデプロイするをご覧ください。

    関数を作成するときに Google Cloud コンソールでランタイムを選択する手順は次のとおりです。

    1. Google Cloud コンソールで [Cloud Run] ページに移動します。

      Cloud Run に移動

    2. [関数を作成] をクリックします。

    3. [ランタイム] リストで、PHP ランタイム バージョンを選択します。

    4. [作成] をクリックし、Cloud Run がプレースホルダ リビジョンを使用してサービスを作成するのを待ちます。

    5. コンソールの [ソース] タブにリダイレクトされ、関数のソースコードが表示されます。[保存して再デプロイ] をクリックします。

    関数のデプロイ後にランタイム バージョンを更新する手順については、新しいソースコードを再デプロイするをご覧ください。

    ソースコードの構造

    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/ ディレクトリは無視されます。