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

Function Compute:Serverless Devsに関するFAQ

最終更新日:Aug 29, 2024

このトピックでは、Serverless Devsに関するよくある質問に対する回答を提供します。

s.yamlファイルを設定するにはどうすればよいですか?

YAML構文の詳細については、「YAML構文」をご参照ください。

Serverless Devsを使用すると、例外が発生してもエラーメッセージが報告されない場合はどうすればよいですか?

次の手順を実行して、問題をトラブルシューティングできます。

  1. npm install @ serverless-devs/s3 -gコマンドを実行してServerless Devsをアップグレードします。

  2. を実行します。Run theコマンドを実行して、すべてのコンポーネントと冗長ファイルを削除します。

  3. s -vコマンドを実行して、Serverless Devsのバージョンを表示します。

    コマンドの実行後に応答が返されない場合、ローカルNode.jsランタイムが異常である可能性があります。 Node.js 14以降のバージョンを再インストールする必要があります。

問題が解決しない場合は、DingTalkグループ11721331に参加し、ログファイルとs.yamlファイルをFunction Compute開発者に提供して問題のトラブルシューティングを行います。

ログファイルの取得方法を次の図に示します。

image.png

コードをデプロイするときにローカル設定を使用する場合はどうすればよいですか?

コードのデプロイ時にローカル設定を使用する場合は、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 deploys 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ディレクトリを指すシンボリックリンクを作成し、関数をビルドまたはデバッグできます。 シンボリックリンクの作成方法を次に示します。

  1. Podman実行可能ファイルのパスを照会します。

    which podman

    この例では、Podman実行可能ファイルのパスは /usr/bin/podmanです。

  2. シンボリックリンクを設定します。

    which podman
  3. シンボリックリンクが有効かどうかを照会します。

    ls -lh /usr/bin/docker

    期待される出力:

    lrwxrwxrwx 1 root root 15 Jan  5 09:30 /usr/bin/docker -> /usr/bin/podman