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

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

最終更新日:Apr 02, 2026

PHP 関数がサードパーティのライブラリに依存している場合、Function Compute にデプロイする前に、これらの依存関係をコードと一緒にパッケージングする必要があります。このガイドでは、PHP の依存関係をインストールし、コードを ZIP アーカイブにパッケージングして Function Compute にデプロイするための 2 つの方法を説明します。この例では、Nette\Utils サードパーティライブラリを使用します。

ZIP 構造の要件

index.php ハンドラは、サブディレクトリ内ではなく、ZIP アーカイブのルートに配置する必要があります。ハンドラがフォルダ内にネストされている場合、Function Compute はハンドラを特定できず、関数の呼び出しは失敗します。

デプロイ方法の選択

方法最適な用途
Composer + コンソールからのアップロード一度限りの迅速なデプロイとローカルテスト
Serverless Devsチームでのワークフロー、CI/CD パイプライン、および任意の OS 上での Linux 互換ビルド
Windows 上で開発し、Linux ランタイムをターゲットにしている場合は、Serverless Devs の方法を使用してください。Windows 上でローカルに PHP 拡張機能をインストールすると、Linux 実行環境と互換性のないバイナリが生成される可能性があります。

サンプルコードのセットアップ

  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);
    }

Composer とコンソールを使用したデプロイ

前提条件

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

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

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

依存関係のインストール、パッケージング、およびアップロード

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

    {
      "require": {
        "nette/utils": "v3.2.5"
      }
    }
  2. mycode ディレクトリで composer install を実行して、依存関係をインストールします。Composer は composer.lockvendor/ ディレクトリを生成します。ダウンロードされた依存関係は vendor/ に保存されます。

  3. mycode ディレクトリ内のすべてのファイルを ZIP アーカイブに圧縮します。Linux または macOS の場合mycode ディレクトリ内から実行します。

    zip code.zip -r ./*
    ディレクトリに対する読み取りおよび書き込み権限があることを確認してください。

    Windows の場合mycode ディレクトリに移動し、すべてのファイルを選択して右クリックし、ZIP パッケージに圧縮します。

    index.php がサブディレクトリ内ではなく、ZIP アーカイブのルートにあることを確認してください。ネストされている場合、Function Compute はハンドラを呼び出すことができません。
  4. Function Compute コンソールで、関数の詳細ページを開きます。右上隅にある [コードのアップロード] をクリックし、ZIP アーカイブをアップロードします。または、関数の作成時に ZIP アーカイブをアップロードすることもできます。詳細については、「関数の作成」をご参照ください。

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

Serverless Devs を使用したデプロイ

前提条件

開始する前に、「Serverless DevsとDockerのインストール」を完了してください。

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

  1. mycode ディレクトリに s.yaml を作成します。

    edition: 1.0.0          # YAML 構文のバージョン。セマンティックバージョニングの仕様に準拠しています。
    name: fcDeployApp       # プロジェクト名。
    access: "default"  # キーのエイリアス。
    
    services:
      fc-deploy-test: # サービス名。
        component: fc  # コンポーネント名。
        props: # コンポーネントのプロパティ値。
          region: cn-shanghai
          service:
            name: fctest
            description: 'test'
            internetAccess: true
          function:
            name: testphp
            description: this is a test
            runtime: php7.2
            codeUri: ./
            handler: index.handler
            memorySize: 128
            timeout: 6
  2. 次のコマンドを実行して、Docker コンテナ内に依存関係をインストールします。

    sudo s build --use-docker

    ビルドが完了すると、Serverless Devs は mycode 内に .s/ ディレクトリを作成します。ビルドアーティファクトは .s/build/artifacts/fctest/testphp/vendor に保存されます。

  3. 関数を Function Compute にデプロイします。

    sudo s deploy

次のステップ

コードパッケージにバンドルせずに依存関係を管理するには、レイヤー機能を使用して、複数の関数間で依存関係レイヤーを共有します。