関数計算-初期プローブの適用


最近、プロジェクトでアリクラウドの関数計算機能を使用するようになったので、説明に従ってサンプルサービスをローカルに導入し、必要な機能を作成し始めました.参照ドキュメント:https://fc.console.aliyun.com/fc/guide/cn-hangzhou#tool
環境はmacosです.
説明に従って、npm install@serverless-devs/s-gのインストールが完了し、サンプルプログラム:image-style-transferもインストール済みです.
しかし、s deployは時報エラーを実行しました.
End the pre-hook
Error: "accountid" must be passed in
Project StyleComponent failed to execute
End of method: deploy

********** The operation was not fully successful **********
> Project Run Error: StyleComponent
Error: Error: "accountid" must be passed in

デプロイ中にaccountidが欠落したため、プロンプトが表示されます.s deployコマンドが初めて実行された場合、実行中にコンソールにaccountidと鍵情報を入力するプロンプトが表示されます.しかし、私はその時注意しなかったので、何度もEnterを叩いて、入力のタイミングを逃しました.公式ドキュメントでは、対応する問題や解決策は例に示されていません.
完全な関数計算に関するドキュメントをよく検討した後、一般的な関数計算の配置方法に従って、私たちは1つを提供する必要があります.Envファイル、accountidとACCESS_を格納KEY_SECRETなどの情報.
コールドスタートについて:
コールドスタートとは、関数計算が最初に呼び出されると、初期化動作が必要になり、応答に時間がかかることを意味します.根本的には、関数計算は弾性拡張の能力サポートであり、高同時性によるリソース消費、動的拡張サポート、費用などの問題に関心を持たずに、リモート・メソッドを呼び出す方法で計算ロジックを実行しましょう.その実装はk 8 s+docker方式を採用しており、初期リソースロードにはpodの作成、ミラーの引き抜きなどの動作が含まれており、計算ロジックのみを実行する時間よりも明らかに大きい.
この問題を解決するために、容器が破壊されないことを保証するために、保存ポリシーと同様に、タイミング実行を採用しています.
アリクラウドベストプラクティスドキュメント:https://help.aliyun.com/document_detail/140338.html?spm=a2c4g.11174283.6.673.20685212lavP6J
ドキュメントには、次のような完全な解決策が含まれています.
  • コンパクトなパッケージ:開発者はできるだけパッケージを痩せ、不要な依存を取り除く.Download/Extract Codeの時間を短縮します.例えばNodejs関数にはnpm prune,Python関数にはautoflake,autoremoveは使用されていない依存を除去する.他のサードパーティ製ライブラリには、binaryおよびデータファイルを使用しないテストサンプルソースコードが含まれている場合があります.不要なファイルを選択的に削除すると、関数コードのダウンロード解凍時間を短縮できます.
  • 適切な関数言語を選択します.Javaの実行時の冷却起動時間は、言語のコンセプトの違いにより、通常、他の言語よりも高くなります.コールドスタート遅延に敏感な応用.ホットスタート遅延の差が大きくない場合,Pythonのような軽量言語を用いることで長尾遅延を大幅に低減できる.
  • 適切なメモリを選択:同時量が一定の場合、関数メモリが大きいほど、冷却起動が優れている.
  • 冷却起動確率を下げる:
  • タイミングフリップフロップ予熱関数
  • を用いる.
  • Initializer関数エントリを使用すると、関数計算は初期化インタフェースを非同期で呼び出し、「User Code Init」の時間を排除し、関数計算システムのアップグレードまたは関数の更新中に、ユーザーは冷たい起動を感知しない.