このトピックでは、function Computeで関数コードを記述できるPHPランタイムについて説明します。
PHPランタイム
Function Computeは、次のPHPランタイムをサポートしています。
バージョン | オペレーティングシステム | アーキテクチャ |
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 | カレンダー | Core |
ctype | curl | date | dom |
exif | fileinfo | filter | ftp |
gd | gettext | gmp | hash |
iconv | イマジック | JSON | libxml |
mbstring | memcached | mysqli | mysqlnd |
openSSL | pcntl | pcre | PDO |
pdo_mysql | Phar | posix | protobuf |
readline | redis | 反射 | セッション |
shmop | SimpleXML | 石鹸 | ソケット |
SPL | standard | sysvmsg | sysvssem |
sysvshm | tokenizer | Xdebug | xml |
xmlreader | xmlrpc | xmlwriter | Zend OPcache |
zip | zlib | なし | なし |
例
次のサンプルコードでは、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がインストールされています。 詳細については、「Serverless DevsとDockerのインストール」トピックの「Dockerのインストール」セクションをご参照ください。
実行時が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コンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、目的のサービスをクリックします。
管理するサービスのページで、目的の機能をクリックします。 [コード] タブで、extensionという名前のフォルダーを作成します。このフォルダーは、関数のハンドラーファイルと同じディレクトリにあります。
を追加します。mongodb.soファイルをエクステンションフォルダーを作成し、mongodb.iniファイル内のエクステンションフォルダーを作成します。
を編集します。Edit themongodb.iniファイルを作成します。
次の内容をmongodb.iniファイルに追加し、ファイルを保存します。
extension=/code/extension/mongodb.so
他のカスタム拡張機能をインストールする場合は、次のリンクをクリックして、ビジネス要件に基づいて対応するファイルをダウンロードします。