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

Function Compute:コードパッケージのデプロイ

最終更新日:Sep 10, 2026

サードパーティの依存関係を含む PHP 関数を Function Compute (FC) にデプロイするには、コードと vendor ディレクトリを ZIP ファイルにパッケージ化します。このガイドでは、依存関係の例として Nette\Utils を使用し、Composer と FC コンソールを使用する方法と、Serverless Devs を使用する方法の 2 つのデプロイ方法について説明します。

コードの準備

デプロイする前に、関数ハンドラを含むローカルコードディレクトリを設定します。

  1. 関数コード用に mycode という名前のディレクトリを作成します。

    • Linux と macOS: mkdir -p /tmp/mycode を実行します。

    • Windows: mycode という名前のフォルダーを作成します。

  2. mycode ディレクトリに、次の内容で index.php を作成します。

    <?php
    
    require_once __DIR__ . '/vendor/autoload.php';
    
    use Nette\Utils\Arrays;
    
    function handler($event, $context) {
        return Arrays::contains([1, 2, 3], 1);
    }

方法1: Composer の使用

Composer を使用してローカルで依存関係をインストールし、コードを ZIP ファイルにパッケージ化して、FC コンソールからアップロードします。

前提条件

開始する前に、次の条件を満たしていることを確認してください。

  • PHP と Composer がインストールされており、Composer コマンドを実行する権限があること。インストール手順については、「Composer」をご参照ください。

  • (オプション) FC コンソールで PHP 関数が作成されていること。詳細については、「イベント関数の作成」をご参照ください。

依存関係のインストールとデプロイ

  1. mycode ディレクトリに、composer.json を作成します。

    {
      "require": {
        "nette/utils": "v3.2.5"
      }
    }
  2. mycode ディレクトリで composer install を実行して、依存関係をインストールします。コマンドが完了すると、Composer は composer.lock ファイルと vendor ディレクトリを mycode 内に作成します。ダウンロードされた依存関係は vendor ディレクトリに保存されます。

  3. mycode 内のすべてのファイルを ZIP ファイルにパッケージ化します。

    • Linux と macOS: mycode ディレクトリに移動して、次のコマンドを実行します。

      zip code.zip -r ./*
      注:ディレクトリに対する読み書き権限があることを確認してください。
    • Windows: mycode ディレクトリを開き、すべてのファイルを選択して右クリックし、ZIP ファイルに圧縮します。

    注: index.php がパッケージのルートディレクトリにあることを確認してください。
  4. FC コンソールで、更新する関数を開きます。関数の詳細ページの右上隅にある [コードのアップロード] をクリックし、ZIP ファイルを選択します。または、関数の作成時に ZIP ファイルをアップロードすることもできます。詳細については、「イベント関数の作成」をご参照ください。

  5. 関数の詳細ページの [コード] タブで、[関数のテスト] をクリックして、デプロイを検証します。

方法2: Serverless Devs の使用

Serverless Devs と Docker を使用して、ZIP ファイルを手動で管理することなく、関数をビルドしてデプロイします。

前提条件

開始する前に、次の操作が完了していることを確認してください。

依存関係のインストールとデプロイ

  1. mycode ディレクトリに、次の内容で s.yaml を作成します。

    edition: 3.0.0
    name: fcDeployApp
    access: "default"
    
    vars: # グローバル変数
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        component: fc3 # コンポーネント名
        props:
          region: ${vars.region}              # 変数の使用方法については、https://docs.serverless-devs.com/serverless-devs/yaml#%E5%8F%98%E9%87%8F%E8%B5%8B%E5%80%BC をご参照ください。
          functionName: "testphp"
          description: 'this is a test'
          runtime: "php7.2"
          code: ./
          handler: index.handler
          memorySize: 128
          timeout: 30
  2. mycode ディレクトリに、composer.json を作成します。

    {
        "require": {
            "nette/utils": "^3.0"
        }
    }
  3. 次のコマンドを実行して、FC の実行環境に合わせた Docker コンテナ内に依存関係をインストールします。

    sudo s build --use-docker

    コマンドが完了すると、Serverless Devs はコードと依存関係をビルドし、デプロイ可能なパッケージを .s ディレクトリ内に作成します。

  4. 次のコマンドを実行して、関数をデプロイします。

    sudo s deploy

    コマンドが完了すると、関数が FC にデプロイされます。

次のステップ

デプロイのたびに依存関係をパッケージ化せずに管理するには、FC レイヤーを使用します。詳細については、「カスタムレイヤーの作成」をご参照ください。