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

Function Compute:コードパッケージのデプロイDeploy a code package

最終更新日:Jul 19, 2024

このトピックでは、サードパーティの依存関係であるNette\Utilsを例として使用して、PHPコードの依存関係をインストールし、コードをパッケージ化してFunction Computeにデプロイする方法を説明します。

準備

  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の詳細については、「Composer」をご参照ください。

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

手順

  1. mycodeディレクトリにcomposer.jsonファイルを作成します

    サンプルコード:

    {
      "require": {
        "nette/utils": "v3.2.5"
      }
    }
  2. mycodeディレクトリ内でcomposer installコマンドを実行して依存関係をインストールします。

    実行が完了すると、このディレクトリにcomposer.lockファイルとvendorディレクトリが生成されます。 ダウンロードされた依存関係はvendorディレクトリに保存されます。

  3. すべてのファイルをパッケージ化するmycodeディレクトリに移動します。

    • LinuxとmacOS

      mycodeディレクトリに移動し、zip code.zip -r ./* コマンドを実行します。

      説明

      ディレクトリの読み取りおよび書き込み権限があることを確認してください。

    • Windows

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

    説明

    作成したindex.phpファイルがパッケージのルートディレクトリにあることを確認します。

  4. Function Computeコンソールで、管理する関数を見つけます。 機能の詳細ページの右上隅にあるコードのアップロードをクリックして、パッケージ化したZIPパッケージをアップロードします。

    function Computeコンソールで関数を作成するときに、ZIPパッケージをアップロードすることもできます。 詳細については、「イベント関数の作成」をご参照ください。

  5. コード機能の詳細ページのタブをクリックし、テスト機能.

Serverless Devsを使用した依存関係のインストールとコードのデプロイ

あなたが始める前に

手順

  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. sudo s build -- use-dockerを実行して依存関係をインストールします。

    実行が完了すると、依存関係とコードが. /ベンダーディレクトリに移動します。

  4. sudoのデプロイを実行してプロジェクトをデプロイします。

    実行後、関数をFunction Computeにデプロイできます。

詳細情報

Function Computeのレイヤーを使用して依存関係をインストールすることもできます。 詳細については、「カスタムレイヤーの作成」をご参照ください。