Serverless Devsは、オープンソースのサーバーレス開発者ツールです。 Serverless Devsを使用すると、プロジェクトを効率的に開発、作成、テスト、デプロイし、ライフサイクル全体でプロジェクトを管理できます。 このトピックでは、Serverless Devsを使用してFunction Computeでアプリケーションテンプレートをダウンロードし、アプリケーションを開発およびデプロイする方法について説明します。 この例では、Node.js 16ランタイムにデプロイされた関数を例として使用します。
背景情報
このトピックでは、プロジェクトを初期化する2つの方法について説明します。 Serverless Devsを初めて使用するときは、方法1を使用することを推奨します。 ローカルデバッグ、リモート呼び出し、Serverless Devsでのリソース削除などの操作の実行方法について詳しく知りたい場合は、方法2を使用することをお勧めします。
始める前に
方法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コマンドを実行して関数を管理する
プロジェクトを初期化します。
プロジェクトディレクトリで次のコマンドを実行して、プロジェクトを初期化します。
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: 依存モジュールとプロジェクトの設定を定義するファイル。
次のコマンドを実行して、プロジェクトディレクトリにアクセスします。
cd start-fc3-nodejs
オプションです。 アプリケーションをローカルでデバッグします。
次のコマンドを実行して、アプリケーションをローカルでデバッグします。
sudo s local invoke -e "{\"key\": \"value\"}"
アプリケーションをデプロイします。
次のコマンドを実行して、アプリケーションを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にデプロイされます。
オプションです。 アプリケーションをリモートでデバッグします。
次のコマンドを実行して、アプリケーションをリモートデバッグします。
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)
オプションです。 アプリケーションを削除します。
次のコマンドを実行して、アプリケーションを削除します。
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)
実行が成功すると、アプリケーションは削除されます。