PHPアクションを利用する

Cloud Functionsでは、PHPコードを実行させられるアクションコンテナーを提供します。PHP 7.1バージョンを基本提供し、独立した環境でコードを実行することができます。

JavaScriptのNPMのように、PHPのパッケージマネージャーであるコンポーザー(Composer)を利用し、依存関係を管理することができ、依存ライブラリーとともにパッケージングしてアクションを作成することもできます。

アクションを作成する

まず、以下のように、名前と場所を含む"Hello World"を出力する簡単なPHPアクションであるhelloを作成します。

<?php
function main(array $args) : array
{
    $name = $args["name"] ?? "World";
    $place = $args["place"] ?? "Naver";
    $greeting = "Hello $name in $place!";
    echo $greeting;
    return ["payload" => $greeting];
}

PHPコードは、複数の関数を含むことができるが、main関数はプログラムの開始点として必ず宣言されなければなりません。

上記で作成したコードで'hello'という名前のアクションを作ります。

compute-15-2-501

依存ファイルをパッケージングしてアクションを作成する

コードを作成していると、1つのアクションファイル以外の依存ファイルを一緒にパッケージングしなければならない場合があります。このような場合、関連するファイルを1つに圧縮してパッケージングし、圧縮されたファイルを利用してパッケージングされたアクションを作成することができます。

基本値に使用されるmain(args)関数のように、アクションの実行の際に、入口点の役割を担うメイン関数は、index.phpファイル内に必ず定義されている必要があります。

例えば、メインアクションで利用される関数の作成されたhelper.phpファイルとともにパッケージングしてアクションを作りたい場合には、以下のコマンドを使います。

  1. アクションに関連するファイルをhelloPHP.zipで圧縮します。

     zip -r helloPHP.zip index.php hello.php
    
  2. その後、作成された圧縮ファイルを利用してアクションを作ります。

コンポーザー(Composer)の依存性をパッケージングしてアクションを作成する

PHPアクションコードを作成する際、依存関係管理ツールであるcomposerを利用し、色んなライブラリーを利用する場合があります。

基本的にパッケージングする方法と同様に、vendorに含まれた依存モジュールまで一緒にパッケージングしてアクションを作成し、実行させることができます。もちろん、index.phpファイル内にメイン関数が定義されていなければなりません。

例題

fzaninotto/fakerライブラリーを追加し、実際のアドレスと類似するfakeデータを作成するアクションを作る例です。

  1. まず、composerコマンドを通じてライブラリーをインストールします。

     $ composer require fzaninotto/faker
    
  2. index.phpファイル名でfake addressを返すメイン関数を定義します。

     <?php
     require __DIR__ . '/vendor/autoload.php';
    
     function main(array $args) : array
     {
         $faker = Faker\Factory::create();
         return ["address" => $faker->address];
     }
    
  3. vendorフォルダとindex.phpファイルを一緒に圧縮します。

     $ zip -r composerPHP.zip vendor index.php
    
  4. 圧縮されたファイルを利用してアクションを登録します。

基本パラメータを設定する

毎回アクションを実行する度にパラメータを転送する代わりに、特定のパラメータに基本値を指定することができます。 上記で作成したhelloアクションのplaceパラメータに基本値を登録してみます。

compute-15-2-105

アクション実行時にパラメータを転送する

アクションの実行の際、入力でパラメータを転送することができます。 Main関数に転送されるパラメータは、JSON object形式で転送されます。

パラメータは、アクションの実行の際に直接入力するか、JSON形式のファイルを作成して転送することができます。 ファイルを通じてパラメータを転送する場合には、以下のようなJSON形式のファイルを作成する必要があります。

compute-15-2-106

アクションのランタイム情報

各アクションコンテナーには、基本ライブラリーが内蔵されており、このライブラリーは別途の追加作業なしにインポートして利用することができます。

PHPのライブラリー

PHP 7.1環境を提供します。アクションの作成の際に明示的にPHPアクションのコンテナーを作成することができます。

  • bcmath
  • curl
  • gd
  • intl
  • mbstring
  • mysqli
  • pdo_mysql
  • pdo_pgsql
  • pdo_sqlite
  • soap
  • zip
  • guzzlehttp/guzzle v6.3.0
  • ramsey/uuid v3.6.1

関連情報へ

下のガイドから関連情報をご確認いただけます。

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...