すべてのプロダクト
Search
ドキュメントセンター

Serverless App Engine:コードパッケージを使用してアプリケーションをデプロイする

最終更新日:Jun 21, 2025

コードパッケージを使用してアプリケーションをデプロイする場合、Serverless App Engine (SAE) は以下のテクノロジスタックとランタイム環境をサポートしています。デプロイ前に、SAE 要件を満たすコードパッケージを作成する必要があります。テクノロジスタック言語とランタイム環境が以下にリストされていない場合は、イメージを使用してアプリケーションをデプロイする必要があります。

Java

ランタイム環境

更新時間

JDK バージョン

オペレーティングシステムバージョン

オープンソース

メンテナンス済み

説明

Dragonwell 21

2024-07-18

21.0.3.0.3+9

CentOS Linux release 7.9.2009

はい

はい

オープンソース Dragonwell 21

Dragonwell 17

2022-07-11

17.0.3.0.3+7

CentOS Linux release 7.9.2009

はい

はい

オープンソース Dragonwell 17

Dragonwell 11

2021-08-27

11.0.10.10-AJDK

CentOS Linux release 7.9.2009

いいえ

はい

  • Dragonwell と OpenJDK を更新しました。

  • オペレーティングシステムを更新しました。

  • 中国語と英語のフォントのサポートを追加しました。

  • 起動速度を大幅に最適化しました。

2020-09-27

オープンソース Dragonwell 11

Dragonwell 8

2021-10-18

1.8.0_302

CentOS Linux release 7.9.2009

はい

はい

CPU 使用率が高くなるという散発的な問題を修正しました。

2021-08-27

  • Dragonwell と OpenJDK を更新しました。

  • オペレーティングシステムを更新しました。

  • 中国語と英語のフォントのサポートを追加しました。

  • 起動速度を大幅に最適化しました。

2020-09-27

Wisp コルーチンや NIO クライアント Netty との互換性の自己チェックなどの機能を有効にしました。詳細については、「オープンソース Dragonwell 8」をご参照ください。

OpenJDK 8

2019-06-19

1.8.0_191

CentOS Linux release 7.6.1810

はい

いいえ

なし

OpenJDK 7

2019-02-25

1.7.0_201

CentOS Linux release 7.6.1810

はい

いいえ

なし

openjdk-8u191-jdk-alpine3.9

2019-02-25

1.8.0_191

alpine 3.9.2

はい

いいえ

alpine イメージの一部のコマンドは CentOS のコマンドとは異なります。次に例を示します。

  • telnet: alpine イメージの telnet コマンドは、-e パラメーターをサポートしていません。

  • curl

  • wget

openjdk-7u201-jdk-alpine3.9

2019-02-25

1.7.0_201

alpine 3.9.2

はい

いいえ

alpine イメージの一部のコマンドは CentOS のコマンドとは異なります。次に例を示します。

  • telnet: alpine イメージの telnet コマンドは、-e パラメーターをサポートしていません。

  • curl

  • wget

PHP

ランタイムの概要

オンラインアプリケーション: NGINX with PHP-FPM

SAE は、PHP Web アプリケーション用に LNMP (Linux+NGINX+MySQL+PHP) ランタイム環境を提供します。これには以下が含まれます。

  • PHP FastCGI Process Manager (FPM) のデフォルトベースイメージ。

  • NGINX。

  • 一般的な PHP 拡張機能。

アプリケーションでより多くのリソースが必要な場合は、次の Alibaba Cloud サービスを使用できます。

アプリケーションモニタリング: ARMS

PHP バージョン 5.4 から 7.3 の SAE アプリケーションでは、アプリケーションモニタリングを有効にして、ApsaraDB RDS MySQL および Tair (Redis OSS 互換) のアプリケーション呼び出しチェーントレーシングやリソースアクセスレイテンシなどのより詳細なモニタリング情報を取得できます。詳細については、「ARMS アプリケーションモニタリングの概要」をご参照ください。

PHP ランタイムの説明

ソフトウェアバージョン

次の表は、使用可能な PHP ランタイム環境について説明しています。より高いバージョンの PHP 環境が必要な場合は、DingTalk グループ (グループ番号: 32874633) に参加して、製品の技術専門家に相談してください。

ランタイム環境

更新時間

PHP バージョン

NGINX バージョン

オペレーティングシステムバージョン

説明

PHP-FPM 7.3

2021-12-27

7.3.32

1.18.0

Debian 11.0

  • プリセットフォントをサポートします。

  • デフォルトの PHP 拡張機能をサポートします。

  • PHP 拡張リポジトリ PECL をサポートします。

PHP-FPM 7.2

2021-09-17

7.2.34

1.18.0

Debian 10.7

なし

PHP-FPM 7.1

2021-09-17

7.1.33

1.18.0

Debian 10.2

なし

PHP-FPM 7.0

2021-09-17

7.0.33

1.18.0

Debian 9.6

なし

PHP-FPM 5.6

2021-09-17

5.6.40

1.18.0

Debian 9.6

なし

PHP-FPM 5.5

2021-09-17

5.5.38

1.18.0

Debian 8.5

なし

PHP-FPM 5.4

2021-09-17

5.4.45

1.18.0

Debian 8.2

なし

システムディレクトリ

SAE PHP 環境では、アプリケーションパッケージのデプロイにデフォルトで次のディレクトリを使用します。

タイプ

パス

説明

ディレクトリ

/home/admin/app/

アプリケーションパッケージがデプロイされるデフォルトのディレクトリ。

ディレクトリ

/home/admin/app/nginx/

  • デフォルトの NGINX サイトディレクトリ。デモパッケージの ./nginx/ ディレクトリに対応します。

  • NGINX server {} 構成をサポートします。詳細については、「ngx_http_core_module」をご参照ください。

ディレクトリ

/home/admin/app/php/

デフォルトの PHP アプリケーションディレクトリ。デモパッケージの ./php/ ディレクトリに対応します。

ファイル

/usr/local/etc/php.ini

SAE の推奨 php.ini 構成パス。詳細については、「PHP アプリケーション構成ファイルの構成」をご参照ください。

次の表は、PHP-FPM のデフォルト構成について説明しています。

タイプ

パス

説明

ディレクトリ

/usr/local/etc/php

PHP_INI_DIR

ディレクトリ

/usr/local/etc/php/conf.d/

PHP 拡張機能が格納されているディレクトリ。デフォルトでは、拡張機能は .ini ファイルに含まれています。

ファイル

/usr/local/etc/php-fpm.conf

PHP-FPM のデフォルト構成ファイル。詳細については、「FastCGI Process Manager (FPM)」をご参照ください。構成の変更方法については、「構成項目の管理と使用 (K8s ConfigMap)」をご参照ください。

次の表は、NGINX のデフォルト構成について説明しています。

タイプ

パス

説明

ファイル

/usr/sbin/nginx

NGINX のディレクトリ。

ディレクトリ

/etc/nginx/

デフォルトの NGINX 構成のディレクトリ。

ファイル

/etc/nginx/nginx.conf

デフォルトの NGINX 構成ファイル nginx.conf。http {} 構成が含まれています。デフォルトでは、http {} 構成は /home/admin/app/nginx/ 構成を参照します。構成の変更方法については、「構成項目の管理と使用 (K8s ConfigMap)」をご参照ください。

組み込み拡張機能

SAE が提供する PHP 環境は、次の拡張機能をサポートしています。

関連する権限

デフォルトでは、PHP-FPM と NGINX は www-data ユーザーを使用してアプリケーションを実行します。次の表は、権限について説明しています。

サービス

権限 USER GROUP

説明

PHP-FPM

プロセス

www-data www-data

PHP デフォルト。構成ファイルのパスは /usr/local/etc/php-fpm.conf です。

NGINX

プロセス

www-data www-data

NGINX デフォルト。構成ファイルのパスは /etc/nginx/nginx.conf です。

ファイルディレクトリ

ディレクトリ

root root

コードパッケージがデプロイされるディレクトリ。構成ディレクトリは /home/admin/app/ です。次の例を参照してください。

drwxrwxrwx 2 root root 4096 May 13  2021 nginx
drwxrwxrwx 1 root root 4096 Apr  8 11:45 php
重要

アプリケーションの障害を防ぐために、ユーザーを保持することをお勧めします。

PHP 拡張機能のサポート

デフォルトおよび PECL 拡張機能

アプリケーションをデプロイするときに、php.ini ファイルを構成して組み込み拡張機能を指定できます。これには、デフォルトの PHP 拡張機能と PECL 拡張機能が含まれます。詳細については、「PHP アプリケーション構成ファイルの構成」をご参照ください。

webshell で次のコマンドを実行して、組み込み拡張機能を表示します。webshell を開く方法については、「webshell の表示」をご参照ください。

php -m

さまざまなランタイム環境でサポートされている組み込み拡張機能の例:

PECL 7.3

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

/*[Zend モジュール]*/
Xdebug
Zend OPcache

PECL 7.2

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

/*[Zend モジュール]*/
Xdebug
Zend OPcache

PECL 7.1

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
mcrypt
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

/*[Zend モジュール]*/
Xdebug
Zend OPcache

PECL 7.0

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

/*[Zend モジュール]*/
Xdebug
Zend OPcache

PECL 5.6

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

/*[Zend モジュール]*/
Xdebug
Zend OPcache

PECL 5.5

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
Zend OPcache
zip
zlib

/*[Zend モジュール]*/
Xdebug
Zend OPcache

PECL 5.4

/*[PHP モジュール]*/
amqp
ARMS
bcmath
bz2
calendar
Core
ctype
curl
date
dom
ereg
exif
fileinfo
filter
ftp
gettext
gmp
hash
iconv
igbinary
imagick
json
libxml
mbstring
memcached
mongodb
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
recode
redis
Reflection
session
shmop
SimpleXML
soap
sockets
SPL
sqlite3
standard
swoole
sysvmsg
sysvsem
sysvshm
timezonedb
tokenizer
xdebug
xml
xmlreader
xmlrpc
xmlwriter
yaml
zip
zlib

/*[Zend モジュール]*/
Xdebug

コンソールと API を介した拡張機能のインストール

SAE コンソールまたは API を使用して、デフォルトの PHP 拡張機能を有効にしたり、特定のバージョンの PECL 拡張機能をインストールしたりできます。詳細については、「PHP アプリケーションのデプロイ」をご参照ください。

サードパーティ製拡張機能のインストール

このセクションでは、PHP-FPM 7.3 でソースコードを含む YAML ファイルをコンパイルして、サードパーティ製拡張機能をインストールする方法について説明します。

  1. ランタイム環境として PHP 7.3 を使用して SAE アプリケーションを作成します。

  2. インターネットアクセスを有効にします。

  3. webshell を使用してインスタンスにログオンし、次のコマンドを実行して拡張機能をコンパイルおよびインストールします。

    /*# ソースコードを取得する*/
    wget https://pecl.php.net/get/yaml-2.2.2.tgz
    tar -zxvf yaml-2.2.2.tgz
    /*# 拡張機能をコンパイルしてインストールする*/
    cd yaml-2.2.2 && \
    phpize && \
    ./configure && \
    make && make install
  4. 拡張機能をオンプレミスマシンにダウンロードします。詳細については、「ログを通じてアプリケーションを診断するためにファイルをアップロードおよびダウンロードする」をご参照ください。

    拡張機能のディレクトリ:

    /home/admin/yaml-2.2.2/modules/yaml.so
  5. 拡張機能をアプリケーションの ZIP パッケージに含めます。ZIP パッケージの構造:

    .
    ├── nginx
    │ ├── default.conf
    │ ├── fastcgi_params
    │ ├── global  // グローバル
    │ └── root.dir // ルートディレクトリ
    ├── php
    │ ├── index.php // インデックスファイル
    └── extensions
     └── yaml.so
  6. アプリケーションをデプロイし、拡張機能を含む ZIP パッケージをアップロードしてから、拡張機能の構成を php.ini ファイルに追加して拡張機能を有効にします。

    extension=/home/admin/app/extensions/yaml.so
  7. webshell を使用してインスタンスにログオンし、拡張機能がロードされているかどうかを確認します。

    # php -m | grep yaml  // php モジュールを確認し、yaml が存在するかチェック
    yaml

一般的な構成

デフォルトのサービスポート

次の表は、SAE によって構成された NGINX および PHP-FPM のデフォルトのサービスポートについて説明しています。

プログラム

ポート

NGINX

80

PHP-FPM

127.0.0.1:9000

PHP-FPM ログ: 標準出力

  • PHP-FPM ログはリアルタイムログに含まれています。次のサンプルコードは、/usr/local/etc/php-fpm.d/docker.conf ファイルのログ構成の例を示しています。

    /*[グローバル]*/
    error_log = /proc/self/fd/2
    log_limit = 8192
    
    /*[www]*/
    access.log = /proc/self/fd/2
  • 表示されない PHP エラーログ。次のサンプルコードは、php.ini ファイルのログ構成の例を示しています。

    error_log => no value => no value /*エラーログ => 値なし => 値なし*/
    log_errors => Off => Off /*ログエラー => オフ => オフ*/
    log_errors_max_len => 1024 => 1024 /*ログエラーの最大長 => 1024 => 1024*/
  • エラーログをリアルタイムログに含める場合は、アプリケーションの作成時またはデプロイ時に php.ini ファイルを構成する必要があります。エラーログを格納する次のディレクトリを指定する必要があります。

    log_errors = on
    error_log = /proc/self/fd/2

NGINX ログ: 標準出力

  • NGINX ログはリアルタイムログに含まれています。次のサンプルコードは、./nginx/default.conf ファイルのログ構成の例を示しています。

    #access_log /dev/stdout;
    error_log stderr;
  • access_log を有効にできます。デフォルトでは、ログはリアルタイムログに含まれています。

ファイルキャッシング: 静的ファイル、イメージ、メディア

php.ini ファイルを構成して、PHP の OPcache を有効にするかどうかを決定できます。SAE はデフォルトで OPcache を有効にします。構成の詳細については、「OPcache ランタイム構成」をご参照ください。

  • OPcache を有効にする: このオプションは、コードの実行を高速化し、ディスク入出力 (I/O) を削減するために、オンライン Web サイトに適しています。

  • OPcache を無効にする: このオプションは、デバッグシナリオに適しています。コードの変更はすぐに有効になります。

次のサンプルコードは、php.ini 構成の例を示しています。

; OPcache を有効にする
opcache.enable=1
; OPcache を無効にする
;opcache.enable=0

ファイルキャッシング: PHP コード

NGINX で、イメージ、ビデオ、カスケードスタイルシート (CSS) ファイル、JavaScript ファイルなど、多くの静的ファイルのキャッシングを有効または無効にすることができます。構成の詳細については、「モジュール ngx_http_headers_module」をご参照ください。

  • 静的リソースのキャッシングを有効にする: このオプションは、多くのメディアファイルをロードするオンラインサービスや Web サイトに適しています。これにより、トラフィックスループットが向上し、1 秒あたりの読み取り入出力操作 (IOPS) が削減されます。

  • 静的リソースのキャッシングを無効にする: このオプションは、リモートデバッグ、アップロードとダウンロード、その他の使用シナリオに適しています。ファイルにリアルタイムでアクセスできます。

次のサンプルコードは、./nginx/default.conf 構成の例を示しています。

/* 静的リソースのキャッシング */
    location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
        /*# キャッシングを無効にする */
        /*#expires off;*/
        /*# キャッシングを有効にする */
        expires 1s;
    }

拡張機能

ホットリスタートサービス

  • ConfigMap を使用すると、サービスを中断することなく構成を変更できます。

  • Webshell を使用すると、サービスを中断することなくサービスを再起動できます。

    • NGINX のホットリスタート

      /*# 構成ファイルの有効性をテストする*/
      nginx -t
      /*# サービスを中断することなく NGINX を再起動する*/
      nginx -s reload
    • PHP-FPM のホットリスタート (ストリームの中断の可能性があります。php.ini 構成を確認する必要があります。)

      ps uax | grep 'php-fpm: master' | grep -v grep | awk '{print $2}' | xargs kill -USR2

アップロードとダウンロード

SAE は、ファイルをアップロードおよびダウンロードするための複数の方法を提供します。ビジネス要件に基づいて、次のいずれかの方法を選択できます。

  • SAE コンソールの使用: デバッグ用にファイルをアップロードおよびダウンロードできます。ファイルサイズは 10 MB を超えることはできません。詳細については、「webshell 機能を使用してファイルをアップロードおよびダウンロードする」をご参照ください。

  • SAE コンソールの使用: リモートデバッグを実行できます。

  • 永続ストレージの使用: Apsara File Storage NAS または Object Storage Service (OSS)。

    • アプリケーションをデプロイするときに、NAS または OSS をマウントしてファイルディレクトリを共有できます。

    • NAS のアップロードとダウンロード: Serverless Devs ツール

    • OSS のアップロードとダウンロード: OSS コンソール

    • OSS のアップロードとダウンロード: ossutil ツール

Python

ランタイム環境

更新時間

オペレーティングシステムバージョン

説明

Python 3.9.15

2022-10-11

Debian 11.0

Python 3.9.15

.NET Core

開発とデプロイを容易にするために、SAE のベースイメージは公式の .NET ベースイメージに基づいて構築されており、一般的なトラブルシューティングツールとフォントパッケージが事前に構成されています。

バージョン

ベースイメージ

オペレーティングシステム

ランタイム

3.1

mcr.microsoft.com/dotnet/aspnet:3.1

Debian GNU/Linux 10 (buster)

  • Microsoft.AspNetCore.App 3.1.32

  • Microsoft.NETCore.App 3.1.32

5.0

mcr.microsoft.com/dotnet/aspnet:5.0

Debian GNU/Linux 10 (buster)

  • Microsoft.AspNetCore.App 5.0.17

  • Microsoft.NETCore.App 5.0.17

6.0

mcr.microsoft.com/dotnet/aspnet:6.0

Debian GNU/Linux 11 (bullseye)

  • Microsoft.AspNetCore.App 6.0.33

  • Microsoft.NETCore.App 6.0.33

7.0

mcr.microsoft.com/dotnet/aspnet:7.0

Debian GNU/Linux 11 (bullseye)

  • Microsoft.AspNetCore.App 7.0.20

  • Microsoft.NETCore.App 7.0.20

8.0

mcr.microsoft.com/dotnet/aspnet:8.0

Debian GNU/Linux 12 (bookworm)

  • Microsoft.AspNetCore.App 8.0.8

  • Microsoft.NETCore.App 8.0.8