Google Cloudは先頃、Cloud Functions上で動作するPHPの公開プレビューを発表した。このFunctions Framework for PHPはHTTP関数、HTTPイベントへの応答に加えて、Pub/Sub、Cloud Storage、Firestoreといった外部および内部のGoogle Cloudサービスが発行したイベントを処理するCloudEvent関数をサポートする。
Cloud Functionsは、Node.js、Python、Go、Java、.NET、Ruby、そして今回のPHPという、サポートする言語特有のランタイム内で実行される関数でクラウドサービスの構築や接続を行う、サーバレスな実行環境である。
Functions Framework for PHPはオープンソースとして、GitHubで公開されており、ローカル開発マシンやKnativeベースの環境、Cloud Run、GKE上のCloud Runなど、さまざまな環境で動作する軽量関数をサポートする。PHP 7.4環境にはランタイム、オペレーティングシステム、関数を起動するライブラリが含まれる。
GoogleのデベロッパプログラムエンジニアのBrent Shaffer氏とプロダクトマネージャのVinod Ramachandran氏が、PHPライブラリの使い方を説明している。
PHP Functions Frameworkは、一般的なPHP開発プロセスやツールに無理なく適合します。デプロイメントにcomposer.jsonファイルを追加してください。必要なパッケージがインストールされて、オートローダが登録されます。php.iniファイルを追加することで、独自のコンフィギュレーションがロードされ、エクステンションが有効になります。
ログ機能はCloud Loggingを使って、情報とエラーメッセージはGoogleのCloud Client Librariesまたは標準エラーstderrで、それぞれサポートされる。GCP上でPHPをサポートするサービスはCloud Functionsだけではなく、Cloud RunでもPHP関数がサポートされている。
汎用スクリプティング言語の追加はCloud Functionsのユーザ層を拡大するだろう — Squarefoot Capitalのテクニカルリーダで、South WalesのPHPユーザグループを立ち上げたMcDougall氏は、次のようにツイートしている。
PHPサポートがGCPに来たことは最高にハッピーです!サポートがないという理由で今までクラウド関数を使っていませんでしたが、ついに使えるようになりました。アイデアも、選択肢もたくさんあります。本当に素晴らしいことです。
eHealthのテクノロジストでオープンソースアドボケートのStephen Musoke Senkomago氏も、この意見に賛同している。
Googleがやっと事情を理解して、PHP Cloud Functionsでゲームに参加してくれました。
RedditのスレッドでユーザのAnreyは、Googleがファンクション・アズ・ア・サービスでPHPをサポートする唯一のクラウドプロバイダであることを強調している。
最高にクールです!AWS LambdaでPHPを使いたいとずっと思っていました。Brefなどを使わない、手軽な公式サポートは今のところありませんが、SymfonyあるいはLaravelのラッパがまもなく登場すると信じています。負荷状況によっては、小さなWebサイトやアプリ全体をフリーティア内で実行できるかも知れません。
Azure Functionsは、現時点ではC#、JavaScript、F#、Java、PowerShell、Python、TypeScriptをサポートしている。AWS LambdaはJava、Go、PowerShell、Node.js、C#、Python、Rubyのコードをネイティブにサポートする。
Google Cloudには、使用するプログラミング言語を問わないフリーティアがあり、1ヶ月あたり200万回のCloud Functions起動、40万GB秒および20万GHz秒の計算時間が無償で提供されている。