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

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

最終更新日:Aug 30, 2024

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

準備

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

    • LinuxとmacOS

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

    • Windows

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

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

    サンプルコード:

    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. を実行します。Run thenpmインストールノード-絵文字コマンドのmycode現在のディレクトリに絵文字依存関係ライブラリをインストールします。

  2. パッケージファイルをmycodeディレクトリに移動します。

    • LinuxとmacOS

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

      説明

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

    • Windows

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

    説明

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

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

重要

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

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

あなたが始める前に

手順

  1. を実行します。Run thecd /tmp/mycodeコマンドを実行して、mycodeディレクトリに移動します。

  2. 作成します。Create thes.yamlファイルを作成します。

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

    edition: 1.0.0          # The version of the YAML specification. The version complies with semantic versioning.
    name: fcDeployApp       # The name of the project.
    access: "default"  # The alias of the key.
    
    services:
      fc-deploy-test: # The name of the service.
        component: fc  # The name of the component.
        props: # The attribute value of the component.
          region: cn-shanghai
          service:
            name: fctest
            description: 'test'
            internetAccess: true
          function:
            name: emoji
            description: this is a emoji
            runtime: nodejs14
            codeUri: ./
            handler: index.handler
            memorySize: 128
            timeout: 6
  3. を追加します。パッケージ. jsonファイルを作成します。

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

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

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

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

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

詳細情報

Function Computeのレイヤーを使用して依存関係をインストールすることもできます。 公式の共通レイヤーを使用するか、オンラインで依存レイヤーを構築することを推奨します。 詳細については、以下のトピックをご参照ください。