Create ECA Function

最終更新日:2024-09-03 15:10:10

このガイドでは、CDNetworksエッジクラウドアプリ関数コンピューティングプラットフォームでサーバーレス関数を作成する方法について説明します。

サーバーレス関数とは

サーバーレスアーキテクチャでは、関数は特定のタスクまたはロジックを実行するように設計された自己完結型のコードブロックです。HTTPリクエスト、データベース操作、メッセージキュー、またはファイルのアップロードなどのイベントによってトリガーされます。サーバーレスプラットフォームは、さまざまなトラフィック要求を処理するために、これらの関数を自動的にスケーリングします。各関数の実行は独立していてステートレスです。つまり、以前の呼び出しからの状態は保持されません。永続的なデータストレージの場合は、データベースやオブジェクトストレージなどの外部サービスを使用する必要があります。

関数は、サーバーレスアーキテクチャの核となる構成要素です。開発者は関数コードを記述し、サーバーレスプラットフォームにデプロイします。サーバーレスプラットフォームは、関数の実行、スケーリング、およびリソース割り当てを処理します。このアプローチは、多くの場合、「サーバーレス関数」または「Function-as-a-Service」(FaaS)と呼ばれます。従来のサーバーアーキテクチャとは異なり、サーバーレスアーキテクチャを使用すると、開発者は基盤となるサーバーとインフラストラクチャを管理することなく、ビジネスロジックの記述に集中できます。

V8エンジン上に構築されたエッジクラウドアプリ関数コンピューティングは、ミリ秒レベルのコールドスタートとリソースの分離を備えた、軽量で高性能なサーバーレスランタイム環境を提供します。高同時実行シナリオでの関数コードの実行効率を大幅に向上させるために、ランタイムコンテキストの切り替えを最適化しました。V8テクノロジーの超低レイテンシーコールドスタート機能を活用することで、リクエストに応じて関数をすばやくロードし、互いに干渉することなく、さまざまな機能をすばやく切り替えることができます。

サーバーレス関数の作成を開始する

サーバーレス関数を作成する前に、CDNetworksプラットフォームで有効で構成されたCDNアクセラレーションドメインがあることを確認してください。

  1. CDNetworksコンソールにログインし、エッジアプリケーション製品を選択して、エッジクラウドアプリメニューバーの下の関数リストページに移動します。
  2. 関数を作成をクリックして、関数作成ページにアクセスします。
  3. 関数の次の基本情報を入力します。
    • 関数名: 関数のグローバルに一意な内部識別子です。小文字の英字、数字、アンダースコア(_)、およびハイフン(-)のみが許可され、長さは3〜32文字です。例:image-resizerまたはuser-auth
    • 関数のエイリアス: コンソールで簡単に識別できる、ユーザーフレンドリーなエイリアスです。これは英語または中国語で、数字、アンダースコア(_)、およびハイフン(-)を含めることができ、長さは3〜64文字です。例:「画像リサイザー」または「ユーザー認証」。
    • テストドメイン: アカウントの下のドメインをテストドメインとして選択します。このドメインは、オンラインデバッグに使用され、テスト環境でのみ有効になり、ライブプロダクショントラフィックには影響しません。
  4. 関数作成方法を選択します。エッジクラウドアプリは2つのアプローチをサポートしています。
  • テンプレートを使用する: プラットフォームは、さまざまな一般的な機能をカバーする、事前に構築された関数テンプレートを幅広く提供しています。これらのテンプレートを使用すると、最初からコードを記述することなく、新しい関数コンテンツをすばやく構築できます。ストリームM3u8の書き換え、Webリンクの書き換え、集約されたリクエストとレスポンスなどの機能の関数をすばやく作成できます。各テンプレートには、その使用方法を理解するのに役立つ詳細な手順が付属しています。関数を作成するためにテンプレートを選択すると、CloudIDEインターフェースに対応するサンプルコードが表示されます。テンプレートライブラリは継続的に更新および拡張されており、新しいテンプレートが開発中です。

  • テンプレートなし: よりカスタマイズされた関数を作成する必要がある場合、または最初から関数を作成する場合は、「テンプレートなし」で関数を作成することを選択できます。これにより、コードを自由に記述できる空白のCloudIDEインターフェースに移動します。


関数コードの記述

関数を作成すると、ページは自動的にCloudIDEインターフェースにリダイレクトされます。CloudIDE内では、コードを自由に記述、編集、デバッグできます。CloudIDEは、Visual Studio Codeと同様に、合理化されたコーディングエクスペリエンスのために、構文の強調表示、自動補完、エラープロンプトなどの機能を提供します。CloudIDEの詳細については、CloudIDEドキュメントを参照してください。

注意
各関数は、複雑な関数ロジックをより適切に整理および管理するために、複数のJavaScriptファイルを含むことができます。ただし、各関数には、エントリポイントとしてindex.jsファイルを含める必要があります。関数がトリガーされると、プラットフォームはindex.jsファイルからコードの実行を開始します。

関数のテスト

CloudIDEでコードを記述した後、組み込みのテストツールを使用して関数をテストできます。

  1. 保存してテストボタンをクリックして、現在のコードバージョンを保存し、Gitリポジトリに自動的にコミットし、テスト環境にデプロイします。これにより、シミュレートされたテストプラグインも初期化され、関数のテストが容易になります。
  2. 一意のテストリンクが生成され、各関数に割り当てられ、テストページのアドレスバーに表示されます。このリンクは、テストリクエストをテスト環境の関数実行コンポーネントに転送する中間サービスを指しています。結果は処理され、レビューと分析のためにCloudIDEに返されます。デバッグを開始するには、テストするURIパスをこのテストリンクに追加します。たとえば、/exampleパスをテストするには、http://dev.wsls.haplat.net:8123/cloudide/staging/test/xxxxxxxxxx/exampleのようなアドレスを入力します。このURIに対応するリソースが実際に存在し、テストドメインで有効であることを確認してください。
  3. テストページの各タブで、リクエストメソッド、ヘッダー、および本文コンテンツを構成して、さまざまなリクエストシナリオをシミュレートできます。
  4. 送信ボタンをクリックして、テスト環境にリクエストを送信し、関数の応答とデバッグ情報を確認します。


関数のデプロイ

関数の記述とテストが完了したら、本番環境にデプロイできます。エッジクラウドアプリプラットフォームは、安全で安定したデプロイプロセスを保証するために、グレースケールデプロイメントをサポートしています。関数デプロイメントの詳細については、関数デプロイメントのドキュメントを参照してください。