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

Function Compute:概要

最終更新日:Sep 02, 2024

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

背景

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

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

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

コンテナ環境

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

ランタイム

ID

OS

アーキテクチャ

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

custom.de bian10

デビアン10

x86_64

カスタムランタイム (Debian 9)

custom

Debian 9

x86_64

カスタムランタイム (Debian 10) (パブリックプレビュー)

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

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

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

カスタムランタイム (Debian 9)

  • ユーザー権限

    • 12月1日00:00:00以降に作成される関数は、2021ユーザーが実行する必要があります。

    • 12月1日00:00:00より前に作成された2021は、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

非該当

カスタムランタイム (Debian 9)

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

  • 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

    カレンダー

    Core

    ctype

    curl

    date

    dom

    exif

    FFI

    fileinfo

    filter

    ftp

    gd

    gettext

    hash

    iconv

    イマジック

    イマップ

    intl

    JSON

    libxml

    mbstring

    mcrypt

    memcached

    mysqli

    mysqlnd

    openSSL

    pcntl

    pcre

    PDO

    pdo_mysql

    pdo_pgsql

    pdo_sqlite

    pgsql

    Phar

    posix

    protobuf

    readline

    redis

    反射

    セッション

    shmop

    SimpleXML

    石鹸

    ソケット

    ナトリウム

    SPL

    sqlite3

    standard

    swoole

    sysvmsg

    sysvssem

    sysvshm

    tokenizer

    xml

    xmlreader

    xmlrpc

    xmlwriter

    xsl

    Zend OPcache

    zip

    zlib

    非該当

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

説明

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

組み込み以外のプログラミング言語を使用してカスタムランタイムを作成する場合は、言語のインタプリタまたはランタイムとコードファイルをパッケージに圧縮し、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'
    
    # You can also configure the following environment variables for the function: 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:/bin:/usr/local/ruby/bin. 
    # After the configuration is complete, you can directly use Node.js to start an HTTP server. 

依存関係のインストール

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

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