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

Function Compute:Serverless Devsに関するFAQ

最終更新日:Sep 11, 2024

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

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

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

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

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

  1. npm install @ serverless-devs/s -gコマンドを実行し、Serverless Devsを更新します。

  2. を実行します。Run thes clean -- すべてコマンドを実行して、冗長ファイルを削除します。

  3. を実行します。Run therm -rf。sコマンドを削除します。. sファイルをディレクトリから

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

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

問題が解決しない場合は、DingTalkグループ (ID: 11721331) に参加してテクニカルサポートに連絡し、トラブルシューティングのために {s-home}/logs/{TraceId}.logファイルとs.yamlファイルを提供します。

次の図は、{s-home} および {TraceId} を取得する方法の例を示しています。checks-s-home

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

s deployコマンドを実行するときにuse-localを選択するか、単にs deploy -y -- use-localコマンドを実行します。

Serverless Devsはマルチリージョン展開をサポートしていますか?

はい、Serverless Devsはマルチリージョン展開をサポートしています。 詳細については、「Serverless Devsのマルチリージョン展開」をご参照ください。

関数でローカルデバッグを実行するにはどうすればよいですか?

  • ランタイムがカスタムランタイムではなく、Function ComputeのNode.jsやPythonなどの組み込みランタイムである場合、デバッグにはServerless Devsのローカル呼び出しメソッドを使用することをお勧めします。 詳細については、「ローカルコマンド」をご参照ください。

  • ランタイムがカスタムランタイムの場合、一般的な開発方法に基づいてサーバーコードのデバッグプロセスを開始できます。

    説明

    カスタムランタイムの場合、s local invokeコマンドを実行して、関数をローカルで呼び出すことができます。 ただし、ブレークポイントのデバッグはサポートされていません。

どのように使用しますか。fcignoreファイル?

プロジェクトの依存関係をApsara File Storage NAS (NAS) ファイルシステムにアップロードして、大規模なコードパッケージをデプロイする場合は、特定のファイルを除外するfcignoreファイル。 詳細については、「共通のヒント」をご参照ください。

複数の関数がs.yamlファイルで定義されている場合、デプロイして呼び出す関数を指定するにはどうすればよいですか?

s.yamlファイルでは、サービスに複数の関数が含まれる場合があります。 いずれかの関数のみをデプロイまたは呼び出す場合は、s deploys local start、またはs local invokeコマンドを実行するときに関数名を指定できます。 次の図は、s.yamlファイルのサンプルを示しています。 図では、helloworld deploy関数を実行した後、helloworld関数のみがデプロイされます。

muti-functions

s localまたはs buildコマンドを実行したときに "connect ENOENT /var/run/docker.sock" エラーが報告された場合はどうすればよいですか?

エラーメッセージ

サンプルエラーメッセージ:

Project xxx failed to execute:

ERROR:

connect ENOENT /var/run/docker.sock

に接続

解決策

オンプレミスのコンピューターで期待どおりにDockerコマンドを実行できますが、Serverless Devsでs localまたはs buildコマンドを実行できない場合は、次の手順を実行して問題を解決します。

  1. /var/run/docker.sockファイルが存在するかどうかを確認します。

    1. 次のコマンドを実行して、ファイルが存在するかどうかを確認します。 ファイルが存在する場合は、次の手順をスキップします。 ファイルが存在しない場合は、次の手順を実行します。

      ll /var/run/docker.sock
    2. /var/runディレクトリを指すシンボリックリンクを設定します。

      ll ~/.docker/run/docker.sock
      ln -s ~/.docker/run/docker.sock  /var/run/docker.sock
  2. Dockerクライアントが起動しているかどうかを確認します。

    Serverless Devsでs localまたはs buildコマンドを実行するには、Dockerクライアントを起動する必要があります。 Dockerクライアントが起動していることを確認してください。

Serverless Application CenterまたはServerless DevsでNode.js 18を使用するにはどうすればよいですか?

webシナリオでは、ほとんどのユーザーがカスタムランタイムを使用します。 ただし、組み込みのNode.js、Python、およびPHPのバージョンは、ビジネス要件を満たしていない場合があります。 この場合、Node.js 18を使用する場合は、次の方法を使用します。

コンソールでカスタムランタイムで実行される関数を作成し、ランタイムパラメーターとしてNode.js 18を選択し、関数の詳細ページで関数の設定をエクスポートすることを推奨します。 YAMLのlayers変数は、Node.js 18の共通レイヤーをマウントするために使用されます。 YAMLのPATH変数は、Node.js 18をデフォルトバージョンとして設定するために使用されます。

service:
	internetAccess: true
  name: test-service
function:
	handler: index.handler
  timeout: 60
  diskSize: 512
  caPort: 3000
  layers:
  	- acs:fc:cn-hangzhou:official:layers/Nodejs18/versions/1
  customRuntimeConfig:
  	command:
    	- node
      - server.js
  runtime: custom.debian10
  environmentVariables:
  	PATH: /opt/nodejs18/bin:/usr/local/bin/...
    NODE_PATH: /opt/nodejs/node_modules
  ...

サーバーレスアプリケーションセンターで提供されている機能を使用している場合、レイヤー構成はビルドプロセス中に有効になりません。 したがって、ビルドプロセス中にNode.js 18を使用するには、export PATHコマンドを実行してNode.js 18を使用することを指定し、npm installコマンドとnpm run buildコマンドを実行する必要があります。 詳細については、「パイプラインのランタイムのアップグレード」をご参照ください。

Serverless Devsを使用してデプロイされたアプリケーションにアクセスできないのはなぜですか? バインドされたドメイン名が削除されたためですか?

**** .devsapp.netドメイン名を使用した可能性があります。 このドメイン名は、学習とテストのためにServerless Devsコミュニティによって提供されます。 Serverless Devsは、Cloud Native Computing Foundation (CNCF) の公式サンドボックスプロジェクトです。 Serverless Devsコミュニティは、ドメイン名を随時テストし、ドメイン名が発行されてから30日後にドメイン名を再利用します。 エクスペリエンスを向上させるために、カスタムドメイン名をアプリケーションにバインドすることを推奨します。