Edge Security Acceleration (ESA) は、コマンドラインインターフェイス (CLI) ツールを提供します。この CLI ツールを使用すると、Functions and Pages のライフサイクル全体の管理、関数のデバッグ、複数ファイルのプロジェクトのデプロイが可能です。
概要
ESA CLI を使用して、以下のタスクを実行できます。
ローカルで Functions and Pages のライフサイクル全体を管理できます。これには、Functions and Pages の作成、バージョンの公開とデプロイ、カスタムドメイン名やルーティングの管理が含まれます。
ローカルまたはプライベートネットワーク環境で関数をデバッグできます。CLI はローカルデバッグサービスを起動し、本番環境をシミュレートして機能テストを行います。
複数ファイルのプロジェクトをデプロイできます。CLI は、npm ファイルなどのプロジェクトの依存関係を自動的にパッケージ化してビルドします。これにより、ローカルの Node.js プロジェクトをクラウドにデプロイできます。
一般的なコマンド
ESA CLI は、Functions and Pages を管理するための多くのコマンドを提供します。すべてのコマンドの詳細については、https://github.com/aliyun/alibabacloud-esa-cli をご参照ください。
コマンド | 説明 |
init | ESA テンプレートからプロジェクトを初期化します。 |
dev | ローカルデバッグサービスを自動的に開始します。 |
commit | プロジェクトコードをクラウドにコミットし、バージョンとして保存します。 |
deploy | バージョンをすべてのオンライン POP (Point of Presence) にデプロイします。 |
deployments | 現在のバージョンのデプロイメントを表示するか、バージョンを削除します。 |
project | すべての Functions and Pages を表示するか、関数を削除します。 |
site | アカウント配下のすべてのサイトに関する情報を表示します。 |
domain | Functions and Pages にアタッチされたドメイン名を管理します。 |
route | Functions and Pages にアタッチされたルートを管理します。 |
login | AccessKey ID と AccessKey Secret を使用してアカウントにログインします。 |
logout | ログオフします。 |
config | ESA CLI の構成ファイルを管理します。 |
lang | ESA CLI の言語を選択します。 |
前提条件
ESA CLI をインストールする前に、Node.js と npm をインストールする必要があります。インストールには、Volta や nvm などの Node バージョンマネージャーを使用することを推奨します。
ESA CLI の使用
npm を使用して ESA CLI をインストールできます。その後、CLI のバージョンとサポートされているコマンドを表示できます。
npm install esa-cli -g # CLI をグローバルにインストール esa-cli -v # CLI のバージョンを表示 esa-cli --help # CLI コマンドを表示アカウントにログイン:
AccessKey IDおよびAccessKey Secretは、Alibaba Cloud リソースアクセス管理 (RAM) コンソール から取得できます。その後、esa loginコマンドを実行してアカウントにログインできます。ローカルで CLI を使用してコードをデバッグする場合のみ、ログインは不要です。esa-cli login # ログイン esa-cli logout # ログオフプロジェクトの初期化: プロジェクトを初期化するには、プロジェクト名を入力し、テンプレートを選択して、初期化コマンドのプロンプトに従ってプロセスを完了します。
esa-cli initローカルでのデバッグ: コーディングが完了したら、CLI を使用してコードをローカルでデバッグできます。
esa-cli devコマンドを実行すると、エントリファイルが自動的にパッケージ化され、ローカルデバッグサービスが開始されます。
基本的な操作:
インターフェイスで
bキーを押すと、ブラウザでデバッグページを開くことができます。dキーを押すと、デバッグガイドが表示されます。注意: Chrome では、コマンドラインからデバッグページを開くことはできません。Chrome ブラウザでChrome://inspect#devicesページを開いてください。実行中のRemote Targetが表示されます。その下にあるinspectをクリックすると、コンソール情報が表示されます。EdgeRoutine コードはサーバーサイドコードであることに注意してください。このため、プレビューページのコンソールには、エントリファイルのconsoleからの出力は表示されません。デバッグにはinspectを使用する必要があります。cキーを押すと、パネルがクリアされます。xキーを押すと、デバッグを終了します。esa-cli dev --port <port>を使用して、一時的にポートを指定できます。
ローカルでデバッグする際に、コード内で Edge Storage API および Cache API を実行することもできます。
説明オンラインデータのセキュリティを確保するため、エッジストレージサービスはローカルデバッグ中にオンラインデータの取得や設定を行いません。ローカルでデータをシミュレートするには、関数プロジェクトのルートディレクトリ、
esa.jsonc構成ファイルと同じ階層にkv.jsonファイルを作成します。次のフォーマットでファイルにデータを書き込みます:{ "namespace": { "k1": "v1", "k2": "v2" } }その後、次のコードでシミュレートされたデータを取得できます:
const edgeKv = new EdgeKV({ namespace: 'namespace' }); async function run() { const data = await edgeKv.get('k1', { type: 'text' }); console.log(data); // 'v1' }
バージョンの生成: ローカルでのデバッグが完了したら、デプロイ用のコードバージョンを生成できます。
esa-cli commit # バージョンを生成オンラインへのデプロイ: バージョンが生成されたら、デプロイメントコマンドを使用して、バージョンをパブリッククラウドの POP (Point of Presence) にデプロイできます。
esa-cli deploy # プロンプトに従って、デプロイするバージョンとターゲット環境を選択 esa-cli deployments list # デプロイステータスを表示 esa-cli deployments delete <versionId> # 指定したバージョンを削除カスタムドメインまたはルートの管理:
POP (Point of Presence) へのデプロイ後、カスタムドメインまたはルートを構成して Functions and Pages にアクセスできます:
ドメイン名: Functions and Pages にドメイン名をアタッチできます。ドメイン名は、ご利用の ESA サイトのサブドメインである必要があります。これにより、ドメイン名を通じて関数に直接アクセスできます。この場合、Functions and Pages はドメイン名のオリジンサーバーとして機能します。
ルート: ご利用の ESA サイトにルートをアタッチできます。ルートにアクセスすると、Functions and Pages の実行がトリガーされます。この場合、Functions and Pages はサイトのオリジンサーバーと通信できます。
# ドメイン名 esa-cli domain list esa-cli domain add <domainName> # ICP 登録済みのドメイン名である必要があります esa-cli domain delete <domainName> # ルート esa-cli route list esa-cli route add [route] [site] esa-cli route delete <route>関数の管理: CLI を使用して関数を表示および削除できます。
esa-cli project list # 関数を表示 esa-cli project delete <PROJECT_NAME> # 関数を削除