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

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

最終更新日:Jul 23, 2024

このトピックでは、Node.jsコード、パッケージコードのサードパーティ依存関係をインストールし、Function Computeにコードをデプロイする方法について説明します。 このトピックでは、例としてサードパーティの絵文字依存関係ライブラリを使用します。

準備

  1. テスト用のコードディレクトリを作成し、ディレクトリの名前を指定します。 この例では、mycodeが使用されています。

    • LinuxとmacOS

      mkdir -p /tmp/mycodeコマンドを実行し、ディレクトリを作成します。

    • Windows

      フォルダを作成し、mycodeという名前を付けます。

  2. mycodeディレクトリにindex.mjsまたはindex.jsファイルを作成します。

    次のコードは例を示しています。

    ECMAScriptモジュール

    説明

    この例では、Node.js 18以降のみをサポートします。

    // index.mjs
    'use strict';
    import * as emoji from 'node-emoji'
    
    export const handler = async (event, context) => {
      console.log('hello world');
      return emoji.get(':unicorn:');
    }
    

    CommonJSモジュール

    // index.js
    'use strict';
    var emoji = require('node-emoji')
    
    exports.handler = (event, context, callback) => {
      console.log('hello world');
      callback(null, emoji.get(':unicorn:'));
    }
    

npmを使用して依存関係をインストールし、コードをデプロイする

前提条件

  • npmがオンプレミスマシンにインストールされ、npmコマンドを実行するための権限が取得されます。

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

手順

  1. mycodeディレクトリでnpm install node-emojiコマンドを実行し、現在のディレクトリに絵文字依存関係ライブラリをインストールします。

  2. mycodeディレクトリですべてのファイルをパッケージ化します

    • LinuxとmacOS

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

      説明

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

    • Windows

      mycodeディレクトリに移動し、すべてのファイルを選択し、ファイルを右クリックして、ファイルを zipファイル。

    説明

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

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

    コードがアップロードされた後、[コード] タブの [テスト機能] をクリックして、コードが正しいかどうかを確認できます。

重要

Function ComputeはLinux環境で実行されます。 WindowsまたはmacOSデバイスに絵文字依存関係ライブラリをインストールするときにバイナリファイルが含まれている場合、コードパッケージの実行に失敗します。Function Computeしたがって、WebIDEを使用してサードパーティの依存関係をパッケージ化するか、Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイすることを推奨します。 詳細については、「」および「Serverless Devsを使用して依存関係をインストールし、プロジェクトをデプロイする」をご参照ください。

Serverless Devsを使用して依存関係をインストールし、コードをデプロイする

前提条件

  • サーバーレスのDevsと依存関係がインストールされます。 詳細については、「」をご参照ください。

  • サーバーレスDevsが設定されています。 詳細については、「Serverless Devsの設定」をご参照ください。

手順

  1. mycodeディレクトリでcd /tmp/mycodeを実行します

  2. 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: "emoji"
          description: 'this is emoji'
          runtime: "nodejs18"
          code: ./
          handler: index.handler
          memorySize: 128
          timeout: 30
  3. パッケージ. jsonファイルを追加します。

    次のサンプルコードは、ファイルを編集する方法の例を示しています。

    {
      "dependencies": {
        "node-emoji": "^ 1.11.0"
      }
    }
  4. sudo s build -- use-dockerを実行して依存関係をインストールします。

    実行が完了すると、. sディレクトリは、mycodeディレクトリに依存関係がインストールされ、. s/build/artifacts/{functionName}ディレクトリに移動します。

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

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

詳細情報

コードパッケージが大きすぎる場合は、依存関係を分離し、レイヤーを構築し、ビジネスコードのみをアップロードできます。 詳細については、以下のトピックをご参照ください。