このトピックでは、Function Computeで関数コードを記述できるPHPランタイムについて説明します。
PHPランタイム
次の表に、Function ComputeでサポートされているPHPランタイムを示します。
PHPバージョン | OS | アーキテクチャ |
PHP 7.2 | Linux | x86_64 |
組み込みのPHPパッケージ
Function Computeは、PHPランタイム用に次の組み込みパッケージを提供します。
パッケージ | バージョン | 参照 |
oss | v2.4.3 | |
tablestore | v4.1.1 | |
mns | v1.3.5.5 | |
fc | v1.2.1 |
組み込みのPHP拡張機能
組み込み拡張機能
インストールされているPHP拡張機能に関する情報を表示および印刷する場合は、関数のコードにprint_r(get_loaded_extensions());
を含めます。
bcmath | bz2 | calendar | Core |
ctype | curl | date | dom |
exif | fileinfo | filter | ftp |
gd | gettext | gmp | hash |
iconv | imagick | json | libxml |
mbstring | memcached | mysqli | mysqlnd |
openSSL | pcntl | pcre | PDO |
pdo_mysql | Phar | posix | protobuf |
readline | redis | Reflection | session |
shmop | SimpleXML | soap | sockets |
SPL | standard | sysvmsg | sysvsem |
sysvshm | tokenizer | Xdebug | xml |
xmlreader | xmlrpc | xmlwriter | Zend OPcache |
zip | zlib | None | None |
組み込みの拡張の例
次のサンプルコードでは、json
を使用してJSON文字列を解析し、解析されたコンテンツをstdoutに返します。
<?php
function handler($event, $context) {
var_dump(json_decode('{"a":123, "b":true, "c":"abcd", "d":{"a":123}}', true));
return "bye";
}
組み込み以外のPHP拡張機能をインストールする
PHPランタイム用の組み込み以外の拡張機能をインストールするには、次の手順を実行します。 次の例では、MongoDBがインストールされています。
前提条件
Dockerがインストールされています。 詳細については、「手順2: Serverless Devsの設定」をご参照ください。
実行時がPHPの関数が作成されます。 詳細については、「イベント関数の作成」をご参照ください。
手順
プロジェクトディレクトリで次のコマンドを実行して、PHPランタイムのイメージを開始し、現在のディレクトリをコンテナの /codeディレクトリにマウントします。
sudo docker run -v $(pwd):/code -it --entrypoint="" registry.cn-beijing.aliyuncs.com/aliyunfc/runtime-php7.2:latest bash
説明コンピュータがWindowsオペレーティングシステムを実行している場合は、
$(pwd)
を特定の絶対ディレクトリに変更できます。MongoDB拡張機能をインストールしてコピーするmongodb.soに/コードディレクトリに移動します。
次のコマンドを実行して、MongoDB拡張をコンテナにインストールします。
pecl install mongodb
次のコマンドを実行して、ZIP拡張子を見つけます。
find /usr -name "mongodb.so"
次のコマンドを実行して、拡張ファイルを /codeディレクトリにコピーします。
cp /usr/local/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so /code
次のコマンドを実行してコンテナーを終了します。
exit
次のコマンドを実行して、mongodb.soファイルが存在するかどうかを確認します。 ファイルが存在する場合は、ファイルはコンピュータに保存されます。
ls
期待される出力:
mongodb.so
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。
関数の詳細ページで、[コード] タブをクリックします。 次に、ハンドラファイルが格納されているディレクトリに拡張子フォルダを作成します。
説明作成する拡張フォルダーは、ブートストラップと同じレベルである必要があります。
mongodb.soファイルをextensionフォルダーに追加し、extensionフォルダーにmongodb.iniファイルを作成します。
mongodb.iniファイルに下記のコンテンツを追加して保存します。
次の内容をmongodb.iniファイルに追加し、ファイルを保存します。
extension=/code/extension/mongodb.so
他のカスタム拡張機能をインストールする場合は、次のリンクをクリックして、ビジネス要件に基づいて対応するファイルをダウンロードします。
追加情報
組み込み拡張機能に基づいてカスタム拡張機能を作成する方法の詳細については、「PHPランタイムに組み込みの拡張機能を追加または削除するにはどうすればよいですか?」をご参照ください。
カスタムランタイムを使用し、MongoDB拡張機能をインストールする場合は、「カスタムランタイムにカスタム拡張機能をインストールする方法」をご参照ください。