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

Function Compute:Serverless Devsを使用した関数の管理

最終更新日:Aug 29, 2024

Serverless Devsは、オープンソースのサーバーレス開発者ツールです。 Serverless Devsを使用すると、プロジェクトを効率的に開発、作成、テスト、デプロイし、ライフサイクル全体でプロジェクトを管理できます。 このトピックでは、Serverless Devsを使用してFunction Computeでアプリケーションテンプレートをダウンロードし、アプリケーションを開発およびデプロイする方法について説明します。 この例では、Node.js 16ランタイムにデプロイされた関数を例として使用します。

背景情報

このトピックでは、プロジェクトを初期化する2つの方法について説明します。 Serverless Devsを初めて使用するときは、方法1を使用することを推奨します。 ローカルデバッグ、リモート呼び出し、Serverless Devsでのリソース削除などの操作の実行方法について詳しく知りたい場合は、方法2を使用することをお勧めします。

始める前に

  1. Function Computeの有効化

  2. Serverless Devsと依存関係のインストール

  3. Serverless Devsの設定

方法1: sコマンドを実行して関数を管理する

次のコマンドを実行して、プロジェクト初期化モジュールに移動します。

sudo s

画面上のプロンプトに従って、プロジェクトの初期化を完了します。 サンプルコマンド出力:

 ? No Serverless-Devs project is currently detected. Do you want to create a new project? Yes

  More applications: https://registry.serverless-devs.com
? Hello Serverless for Cloud Vendors Alibaba Cloud Serverless
? Hello, serverlesser. Which template do you like? Quick start [Deploy a Hello World function to FaaS]
? Which template do you like? Node.js

 Create application command: [s init start-fc3-nodejs]

? Please input your project name (init dir) start-fc3-nodejs
Downloading[/v3/packages/start-fc3-nodejs/zipball/0.0.9]...
Download start-fc3-nodejs successfully

  Serverless Devs Application Case

    Cloud services required:
    - FC : https://fc.console.aliyun.com/

    Tips:
    - FC Component: https://github.com/devsapp/fc3/blob/master/docs/zh/readme.md
The ID of the region where the application is created.
? Example: cn-hangzhou.
The function name can contain letters, digits, underscores (_), and hyphens (-). It cannot start with a digit or hyphen (-). It must be 1 to 128 characters in length. 
? Function name: start-nodejs-at63.
The region where the application is created.
? Runtime: Node.js 16.
? please select credential alias default

    * Before using, please check whether the actions command in Yaml file is available
    * Carefully reading the notes in s.yaml is helpful for the use of the tool
    * If need help in the use process, please apply to join the Dingtalk Group: 33947367


 Thanks for using Serverless-Devs
 You could [cd /Users/start-fc3-nodejs] and enjoy your serverless journey!
 If you need help for this example, you can use [s -h] after you enter folder.
 Document ❤ Star: https://github.com/Serverless-Devs/Serverless-Devs
 More applications: https://registry.serverless-devs.com

方法2: s initコマンドを実行して関数を管理する

  1. プロジェクトを初期化します。

    プロジェクトディレクトリで次のコマンドを実行して、プロジェクトを初期化します。

    sudo s init start-fc3-nodejs
    説明

    Node.js 16ランタイムで実行される関数は、プロジェクトを初期化する方法を説明する例として使用されます。 他のランタイムで関数をデプロイする必要がある場合は、プロジェクトを初期化するときにランタイムを選択できます。

    サンプルコマンド出力:

      More applications: https://registry.serverless-devs.com
    ? Please input your project name (init dir) start-fc3-nodejs
    Downloading[/v3/packages/start-fc3-nodejs/zipball/0.0.9]...
    Download start-fc3-nodejs successfully
    
      Serverless Devs Application Case
    
        Cloud services required:
        - FC : https://fc.console.aliyun.com/
    
        Tips:
        - FC Component: https://github.com/devsapp/fc3/blob/master/docs/zh/readme.md
    The region where the application is created.
    ? Example: cn-hangzhou.
    The function name can contain letters, digits, underscores (_), and hyphens (-). It cannot start with a digit or hyphen (-). It must be 1 to 128 characters in length. 
    ? Function name: start-nodejs-900k.
    The region where the application is created.
    ? Runtime: Node.js 16.
    ? please select credential alias default
    
        * Before using, please check whether the actions command in Yaml file is available
        * Carefully reading the notes in s.yaml is helpful for the use of the tool
        * If need help in the use process, please apply to join the Dingtalk Group: 33947367
    
    
      Thanks for using Serverless-Devs
      You could [cd /Users/start-fc3-nodejs] and enjoy your serverless journey!
      If you need help for this example, you can use [s -h] after you enter folder.
      Document ❤ Star: https://github.com/Serverless-Devs/Serverless-Devs
      More applications: https://registry.serverless-devs.com

    プロジェクトが初期化されると、次のファイルを含む現在のディレクトリにstart-fc3-nodejsフォルダが生成されます。

    • s.yaml: Function Computeリソースを定義するYAMLファイル。 詳細については、「YAML構文と権限管理」をご参照ください。

    • s_en.yaml: YAMLファイル。 s_en.yamlはs.yamlと同じです。 デフォルトでは、システムはs.yamlファイルを使用します。 s_en.yamlファイルを使用するには、コマンドでファイルを明示的に指定します。 たとえば、アプリケーションをデプロイするときに、パラメーター -tをコマンドに追加します。 新しいコマンドはs deploy -t s_en.yaml -yです。

    • code: codeフォルダーには、関数のコードロジックを編集できるindex.jsファイルが含まれています。

    • readme.md: 依存モジュールとプロジェクトの設定を定義するファイル。

  2. 次のコマンドを実行して、プロジェクトディレクトリにアクセスします。

    cd start-fc3-nodejs
  3. オプションです。 アプリケーションをローカルでデバッグします。

    次のコマンドを実行して、アプリケーションをローカルでデバッグします。

    sudo s local invoke -e "{\"key\": \"value\"}"
  4. アプリケーションをデプロイします。

    次のコマンドを実行して、アプリケーションをFunction Computeにデプロイします。

    sudo s deploy -y

    サンプルコマンド出力:

    [hello-world-app] の [デプロイ] の

      Steps for [deploy] of [hello-world-app]
    ====================
    
     [hello_world] completed (1.36s)
    
      Result for [deploy] of [hello-world-app]
    ====================
    region:         cn-hangzhou
    description:    hello world by serverless devs
    functionName:   start-nodejs-900k
    handler:        index.handler
    internetAccess: true
    memorySize:     128
    role:
    runtime:        nodejs16
    timeout:        30

    実行が成功すると、アプリケーションはFunction Computeにデプロイされます。

  5. オプションです。 アプリケーションをリモートでデバッグします。

    次のコマンドを実行して、アプリケーションをリモートデバッグします。

    sudo s invoke -e "{\"key\": \"value\"}"

    サンプルコマンド出力:

    [hello-world-app] の [invoke] の

      Steps for [invoke] of [hello-world-app]
    ====================
    ========= FC invoke Logs begin =========
    FC Invoke Start RequestId: 1-65bb583a-15b24a10-58ded3270984
    load code for handler:index.handler
    FC Invoke End RequestId: 1-65bb583a-15b24a10-58ded3270984
    
    Duration: 4.43 ms, Billed Duration: 5 ms, Memory Size: 128 MB, Max Memory Used: 8.90 MB
    ========= FC invoke Logs end =========
    
    Invoke instanceId: c-65bb583a-15416274-0a3cdda6c4ee
    Code Checksum: 16688953495441179501
    Qualifier: LATEST
    RequestId: 1-65bb583a-15b24a10-58ded3270984
    
    Invoke Result:
    hello world
     [hello_world] completed (0.6s)
  6. オプションです。 アプリケーションを削除します。

    次のコマンドを実行して、アプリケーションを削除します。

    sudo s remove

    サンプルコマンド出力:

    [hello-world-app] の [削除] の

      Steps for [remove] of [hello-world-app]
    ====================
    Remove function: cn-hangzhou/start-nodejs-900k
    
         ? Are you sure you want to delete the resources listed above yes
     [hello_world] completed (4.09s)
    

    実行が成功すると、アプリケーションは削除されます。

FAQ