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

Function Compute:概要

最終更新日:Jul 17, 2024

このトピックでは、Function Computeで関数を記述できるカスタムランタイムについて説明します。

背景

カスタムランタイムを使用すると、ランタイム環境をカスタマイズできます。 カスタムランタイムでは、ビジネス要件に基づいて排他的関数実行環境を作成できます。 以下の項目は、一般的なシナリオを示します。

  • Rustなどの個別のプログラミング言語をカスタマイズします。

  • Node.js 16などのプログラミング言語の指定されたバージョンのランタイムをカスタマイズします。

コンテナ環境

次の表に、カスタムランタイムでサポートされているコンテナー環境を示します。

ランタイム

ID

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

アーキテクチャ

カスタムランタイム (Debian10)

custom.de bian10

デビアン10

x86_64

カスタムランタイム

custom

Debian 9

x86_64

カスタムランタイム (Debian10)

  • ユーザー権限: 関数はルートユーザーによって実行される必要があります。

  • ディレクトリ権限: データは任意のディレクトリに書き込むことができます。

  • コンテナー内のコードの場所: /Code

カスタムランタイム

  • ユーザー権限

    • 2021年12月1日00:00:00以降に関数を作成する場合、関数はルートユーザーが実行する必要があります。

    • 2021年12月1日00:00:00より前に関数が作成された場合、関数はroot以外のユーザーが実行する必要があります。

  • ディレクトリ権限

    • 2021年12月1日00:00:00以降に関数が作成された場合、データは任意のディレクトリに書き込むことができます。

    • 2021年12月1日00:00:00より前に関数が作成された場合、データは /tmpディレクトリにのみ書き込まれます。

  • コンテナー内のコードの場所: /Code

環境情報

カスタムランタイム (Debian10)

次のプログラミング言語は、Debian 10ベースのカスタムランタイムに組み込まれています。 サードパーティ製のインタプリタをインストールしたり、レイヤーを設定したりすることなく、次の言語のカスタムランタイムを作成できます。

次の表に、詳細を示します。 一部のプログラミング言語では、環境変数を設定する必要があります。

プログラミング言语

インストールディレクトリ

バージョン

環境変数

Node.js 20

/var/fc/lang/nodejs20

v20.10.0

PATH=/var/fc/lang/nodejs20/bin:$PATH

Node.js 18

/var/fc/lang/nodejs18

v18.19.0

PATH=/var/fc/lang/nodejs18/bin:$PATH

Python 3.10

/var/fc/lang/python3.10

3.10.9

PATH=/var/fc/lang/python3.10/bin:$PATH

Python 2.7

デフォルトのインストールディレクトリ

2.7.16

非該当

カスタムランタイム

次のプログラミング言語は、カスタムランタイムに組み込まれています。 サードパーティ製のインタプリタをインストールしたり、レイヤーを設定したりすることなく、次の言語のカスタムランタイムを作成できます。

  • Python 3.7.4 (デフォルトのPythonバージョン)

  • Node.js 10.16.2

  • OpenJDK 1.8.0

  • ルビー2.7

  • Nginx 1.10.3

  • PHP 7.4.12

    展開して、PHP 7.4.12の組み込み拡張機能のリストを表示します。

    bcmath

    calendar

    Core

    ctype

    curl

    date

    dom

    exif

    FFI

    fileinfo

    filter

    ftp

    gd

    gettext

    hash

    iconv

    imagick

    imap

    intl

    json

    libxml

    mbstring

    mcrypt

    memcached

    mysqli

    mysqlnd

    openSSL

    pcntl

    pcre

    PDO

    pdo_mysql

    pdo_pgsql

    pdo_sqlite

    pgsql

    Phar

    posix

    protobuf

    readline

    redis

    Reflection

    session

    shmop

    SimpleXML

    soap

    sockets

    sodium

    SPL

    sqlite3

    standard

    swoole

    sysvmsg

    sysvsem

    sysvshm

    tokenizer

    xml

    xmlreader

    xmlrpc

    xmlwriter

    xsl

    Zend OPcache

    zip

    zlib

    None

組み込み以外のプログラミング言語を使用する

説明

組み込み以外のプログラミング言語を使用するには、パブリックレイヤを使用することをお勧めします。 詳細については、「」をご参照ください。

カスタムランタイムの組み込み以外の言語を使用してカスタムランタイムを作成する場合は、その言語のインタプリタまたはランタイムとコードファイルをパッケージに圧縮し、そのパッケージをFunction Computeにデプロイして、関数を期待どおりに実行できるようにする必要があります。 たとえば、ランタイム環境がNode.js 16の場合、Node.js 16に必要なインタプリタをダウンロードし、インタプリタとコードファイルをパッケージに圧縮してから、Function Computeにパッケージをデプロイする必要があります。 次の操作を実行します。

  1. 64ビットLinuxバージョンのNode.jsをコードパッケージディレクトリにダウンロードします。

    wget http://mirrors.nju.edu.cn/nodejs/v16.14.2/node-v16.14.2-linux-x64.tar.gz -O node-v16.14.2-linux-x64.tar.gz && tar -zxvf node-v16.14.2-linux-x64.tar.gz && rm -rf node-v16.14.2-linux-x64.tar.gz
  2. カスタムランタイムでNode.jsの起動コマンドを設定します。

    customRuntimeConfig:
      command:
        - /code/node-v16.14.2-linux-x64/bin/node
      args:
        - 'server.js'
    
    # 関数の環境変数を設定することもできます: PATH=/code/node-v16.14.2-linux-x64/bin:/usr/local/bin/apache-maven/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/sbin:/bin:/usr/local/ruby/bin。 
    # 設定が完了したら、Node.jsを直接使用してHTTPサーバーを起動できます。 

依存関係のインストール

カスタムランタイムに各プログラミング言語の依存関係をインストールする方法の詳細については、以下のトピックを参照してください。

Function Computeのレイヤーを使用して依存関係をインストールすることもできます。 パブリックレイヤーを使用するか、依存関係レイヤーをオンラインで構築することを推奨します。 詳細については、以下のトピックをご参照ください。