このトピックでは、Serverless Devsに関するよくある質問に対する回答を提供します。
s.yamlファイルを設定するにはどうすればよいですか?
YAML仕様の詳細については、「 YAMLの仕様 」をご参照ください。
Serverless Devsを使用すると、例外が発生してもエラーメッセージが報告されない場合はどうすればよいですか?
次の手順を実行して、問題をトラブルシューティングできます。
npm install @ serverless-devs/s -g
コマンドを実行し、Serverless Devsを更新します。を実行します。Run the
s clean -- すべて
コマンドを実行して、冗長ファイルを削除します。を実行します。Run the
rm -rf。s
コマンドを削除します。. s
ファイルをディレクトリからs -v
コマンドを実行して、Serverless Devsのバージョンを表示します。コマンドの実行後に応答が返されない場合、ローカルNode.jsランタイムが異常である可能性があります。 Node.js 12以降のバージョンを再インストールする必要があります。
問題が解決しない場合は、DingTalkグループ (ID: 11721331) に参加してテクニカルサポートに連絡し、トラブルシューティングのために {s-home}/logs/{TraceId}.logファイルとs.yamlファイルを提供します。
次の図は、{s-home} および {TraceId} を取得する方法の例を示しています。
コードをデプロイするときにローカル設定を使用する場合はどうすればよいですか?
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 deploy
、s local start
、またはs local invoke
コマンドを実行するときに関数名を指定できます。 次の図は、s.yamlファイルのサンプルを示しています。 図では、helloworld deploy
関数を実行した後、helloworld
関数のみがデプロイされます。
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
コマンドを実行できない場合は、次の手順を実行して問題を解決します。
/var/run/docker.sock
ファイルが存在するかどうかを確認します。次のコマンドを実行して、ファイルが存在するかどうかを確認します。 ファイルが存在する場合は、次の手順をスキップします。 ファイルが存在しない場合は、次の手順を実行します。
ll /var/run/docker.sock
/var/run
ディレクトリを指すシンボリックリンクを設定します。ll ~/.docker/run/docker.sock ln -s ~/.docker/run/docker.sock /var/run/docker.sock
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日後にドメイン名を再利用します。 エクスペリエンスを向上させるために、カスタムドメイン名をアプリケーションにバインドすることを推奨します。