このトピックでは、Serverless Devsに関するよくある質問に対する回答を提供します。
s.yamlファイルを設定するにはどうすればよいですか?
YAML構文の詳細については、「YAML構文」をご参照ください。
Serverless Devsを使用すると、例外が発生してもエラーメッセージが報告されない場合はどうすればよいですか?
次の手順を実行して、問題をトラブルシューティングできます。
npm install @ serverless-devs/s3 -g
コマンドを実行してServerless Devsをアップグレードします。を実行します。Run theコマンドを実行して、すべてのコンポーネントと冗長ファイルを削除します。
s -v
コマンドを実行して、Serverless Devsのバージョンを表示します。コマンドの実行後に応答が返されない場合、ローカルNode.jsランタイムが異常である可能性があります。 Node.js 14以降のバージョンを再インストールする必要があります。
問題が解決しない場合は、DingTalkグループ11721331に参加し、ログファイルとs.yaml
ファイルをFunction Compute開発者に提供して問題のトラブルシューティングを行います。
ログファイルの取得方法を次の図に示します。
コードをデプロイするときにローカル設定を使用する場合はどうすればよいですか?
コードのデプロイ時にローカル設定を使用する場合は、s deploy -y
コマンドを実行します。
Serverless Devsはマルチリージョン展開をサポートしていますか?
はい、Serverless Devsはマルチリージョン展開をサポートしています。 次のコードは、複数のリージョンにServerless Devsをデプロイする方法の例を示しています。
シェルスクリプト
```bash
#!/bin/bash
regions=("cn-hangzhou" "ap-southeast-1")
for r in ${regions[@]}
do
export REGION=$r
s deploy -y
done
```
s.yaml
```yaml
edition: 3.0.0
name: hello-world-app
access: "default"
resources:
hello_world:
component: fc3
props:
region: ${env('REGION')}
functionName: "start-nodejs-im1g"
description: 'hello world by serverless devs'
runtime: "nodejs14"
code: ./code
handler: index.handler
memorySize: 128
timeout: 30
```
オンプレミスマシンで関数をデバッグするにはどうすればよいですか?
Node.jsやPythonなど、Function Computeの組み込みランタイムを使用する場合は、サーバーレスDevsを使用してオンプレミスマシンで関数をデバッグすることを推奨します。 詳細については、「ローカルコマンド」をご参照ください。
カスタムランタイムまたはカスタムコンテナランタイムを使用する場合は、一般的な方法に基づいてサーバーコードのデバッグプロセスを開始できます。
説明s local invoke
コマンドを実行して、オンプレミスマシンで関数を呼び出すことができます。 ただし、ブレークポイントのデバッグはサポートされていません。
どのように使用しますか。fcignoreファイル?
コードで指定されたディレクトリで. fcignore
ファイルを設定できます。 . fcignore
ファイルを使用して、関連ファイルまたはパッケージフォルダをZIPファイルに無視し、そのファイルを関数コードにアップロードします。 詳細については、「fcignoreファイルの使用」をご参照ください。
s.yamlファイルで複数の関数が定義されている場合、特定の関数を展開して呼び出すにはどうすればよいですか?
s.yamlのファイルでは、サービスに複数の機能が含まれる場合があります。 関数の1つだけをデプロイまたは呼び出す場合は、s deploy
、s info
、またはs local invoke
コマンドを実行するときに関数名を指定できます。 次の例では、サービスのs.yamlファイルに複数の関数が含まれています。 関数をデプロイするときは、helloworld1 deploy
コマンドを実行して、helloworld1
関数のみをデプロイできます。
```yaml
edition: 3.0.0
name: hello-world-app
access: "default"
resources:
hello_world1:
component: fc3
props:
region: cn-huhehaote
functionName: "hello_world1"
description: 'hello world1 by serverless devs'
runtime: "nodejs14"
code: ./code
handler: index.handler
hello_world2:
component: fc3
props:
region: cn-huhehaote
functionName: "hello_world2"
description: 'hello world2 by serverless devs'
runtime: "nodejs14"
code: ./code
handler: index.handler
```
どのように使用しますかサーバーレスDevsPodmanに基づくオンプレミスマシンで関数をビルドおよびデバッグするには?
Serverless Devsを使用してPodmanベースのオンプレミスマシンで関数をビルドまたはデバッグすると、エラーFailed to start docker, xxx
が返されます。 この場合、DockerディレクトリのPodmanディレクトリを指すシンボリックリンクを作成し、関数をビルドまたはデバッグできます。 シンボリックリンクの作成方法を次に示します。
Podman実行可能ファイルのパスを照会します。
which podman
この例では、Podman実行可能ファイルのパスは
/usr/bin/podman
です。シンボリックリンクを設定します。
which podman
シンボリックリンクが有効かどうかを照会します。
ls -lh /usr/bin/docker
期待される出力:
lrwxrwxrwx 1 root root 15 Jan 5 09:30 /usr/bin/docker -> /usr/bin/podman