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

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

最終更新日:Apr 02, 2026

コードと vendor ディレクトリを ZIP ファイルにパッケージングすることで、サードパーティの依存関係を持つ PHP 関数を Function Compute にデプロイします。このガイドでは、Nette\Utils を依存関係の例として使用し、Function Compute コンソールと Composer を使用する方法、および 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 ファイルにパッケージングして、Function Compute コンソールからアップロードします。

前提条件

開始する前に、以下を確認してください。

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

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

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

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

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

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

    • Linux および macOS: mycode ディレクトリに移動し、以下を実行します。

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

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

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

メソッド 2: Serverless Devs の使用

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

前提条件

開始する前に、以下を完了していることを確認してください。

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

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

    edition: 3.0.0
    name: fcDeployApp
    access: "default"
    
    vars: # The global variables.
      region: "cn-hangzhou"
    
    resources:
      hello_world:
        component: fc3 # The name of the component.
        props:
          region: ${vars.region}              # For information about how to use variables, visit 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. Function Compute ランタイム環境に一致する Docker コンテナ内に依存関係をインストールするには、以下のコマンドを実行します。

    sudo s build --use-docker

    コマンドが完了すると、Serverless Devs は依存関係とコードを ./vendor ディレクトリにインストールします。

  4. 関数をデプロイするには、以下のコマンドを実行します。

    sudo s deploy

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

次のステップ

すべてのデプロイメントにパッケージングすることなく依存関係を管理するには、Function Compute レイヤーを使用します。詳細については、「カスタムレイヤーの作成」をご参照ください。