コンテンツに移動
アプリケーション開発

Cloud Functions での PHP 使用について

2021年5月10日
https://storage.googleapis.com/gweb-cloudblog-publish/images/appdev.max-2600x2600.jpg
Google Cloud Japan Team

※この投稿は米国時間 2021 年 4 月 24 日に、Google Cloud blog に投稿されたものの抄訳です。

Google Cloud が提供する Function as a Service(FaaS)である Cloud Functions は、サーバーまたはランタイム環境を管理することなく、イベントに応答する単一目的のスタンドアロン関数を作成するための軽量で使いやすいコンピューティング プラットフォームです。Cloud Functions は、サーバーレス アプリケーション、モバイルまたは IoT のバックエンド、リアルタイムのデータ処理システム、動画、画像、感情分析、さらには chatbot や仮想アシスタントのようなものにも最適です。

本日、この Cloud Functions に、汎用プログラミング言語として広く利用されている PHP のサポートを導入いたします。これにより、Functions Framework for PHP を使って慣用的な PHP 関数の記述と、ビジネス クリティカルなアプリケーションや統合レイヤの構築が可能になります。また、現在プレビュー版として提供されている Cloud Functions for PHP では、限定公開 VPC ネットワーク内のリソースにアクセスして、フルマネージド PHP 7.4 環境で関数をデプロイできます。PHP 関数は負荷に応じて自動的にスケールされます。さらに、HTTP イベントに応答するための HTTP 関数や、Pub/SubCloud StorageFirestore などの社内外のサービスから提供されたイベントを処理する CloudEvent 関数も記述できます。

可搬性のある PHP 関数を記述するためのオープンソースの Functions as a Service フレームワークである Functions Framework for PHP を使って関数を開発できます。Functions Framework を使用すると、関数の開発、テスト、実行はローカルで行い、その関数を Cloud Functions または別の PHP ホスティング環境にデプロイできます。

PHP 関数の記述

Functions Framework for PHP は、HTTP 関数CloudEvent 関数をサポートしています。HTTP 関数は Webhook に似ていますが、CloudEvent 関数は CNCF CloudEvents を使用して Pub/Sub、Cloud Storage、Firestore などの Google サービスに応答します。

ここでは、非常にわかりやすい HTTP 関数の例をご紹介します。

読み込んでいます...

ここでは、Pub/Sub を使った非常にわかりやすい CloudEvent 関数の例をご紹介します。

読み込んでいます...

ロギング

PHP で使用する Cloud Functions では、Cloud Logging によるロギングを行えるため、情報とエラー メッセージを Cloud Logging クライアント ライブラリを使用するか、Logging UI に表示される stderr を使用して記録する必要があります。

PHP ライブラリの使用

PHP Functions Framework は、一般的に利用されている PHP 開発プロセスやツールとも親和性があります。composer.json ファイルをデプロイメントに含めると、このファイルのパッケージがインストールされ、オートローダーが登録されます。php.ini ファイルを含めると、カスタム構成が読み込まれ、拡張機能が有効になります。全一覧については、動的に読み込み可能な拡張機能をご覧ください。

Cloud Functions for PHP をぜひお試しください

Cloud Functions for PHP はすぐにお試しいただけます。クイックスタート ガイドを読み、多くの Cloud Functions チュートリアルのうちいずれか試し、Google Cloud の無料トライアルをご利用ください。さらに詳細な技術情報を知りたい場合は、GitHub で PHP Functions Framework を確認し、投稿することができます。これからどんな PHP 関数が生まれるのか楽しみです。

役に立つリンク

-デベロッパー プログラム エンジニア Brent Shaffer

-プロダクト マネージャー Vinod Ramachandran
投稿先