Web統合開発環境 (WebIDE) は、Alibaba Cloud Function Computeが提供するオンラインIDEです。 WebIDEは、Visual Studio Code (VS Code) と同様のクラウド開発エクスペリエンスを提供します。 開発者は、オンプレミスマシンで複雑な開発環境をセットアップする必要なしに、コードをオンラインで直接記述、デバッグ、およびデプロイできます。 このトピックでは、WebIDEの機能とユーザーインターフェイス (UI) 、およびFunction ComputeコンソールでWebIDEを設定する方法について説明します。
特徴
WebIDEは次の機能を提供します。
完全なコード開発、デプロイ、およびデバッグ機能
WebIDEとFunction Compute間の一貫したターミナル環境とランタイム環境
pip、npm、composerなどの一般的な開発ツール、およびさまざまなプログラミング言語は、さまざまなランタイムで提供されます。 WebIDEを使用して、オンライン環境との違いを気にせずにサードパーティの依存関係をパッケージ化できます。
Serverless DevsはWebIDEに組み込まれており、アカウントに基づいて自動的に設定できます。 Serverless Devsを設定するために
s config
コマンドを実行する必要はありません。 デフォルトのエイリアスはdefault
です。
TONGYI LingmaによるAIコーディング
開発者は、TONGYI Lingmaが提供するAIコーディング機能をそのまま使用して、コーディング効率を向上させることができます。 TONGYI Lingmaは、リアルタイムのコードレビューを実行し、潜在的なロジックエラーを検出し、問題をすばやく特定し、関数が異常に実行された場合に提案を提供できます。 TONGYI Lingmaは、コーディングの効率と品質の両方を向上させます。
WebIDEはGoogle Chrome向けに最適化されています。 最適なユーザーエクスペリエンスのために、Google Chromeの最新バージョンを使用することをお勧めします。
制限事項
WebIDEは、Python、Node.js、PHP、およびカスタムランタイムのみをサポートします。 詳細については、「」をご参照ください。Function ComputeのどのランタイムがWebIDEをサポートしていますか? オンラインコーディングは、Java、Go、およびC# ランタイムではサポートされていません。 コンパイル済みのみアップロードできます。これらのランタイムのzipファイルまたはバイナリファイル。
WebIDEは各ユーザーに5 GBのストレージ容量を提供します。 容量を使い切ると、データの書き込みに失敗します。 ストレージを定期的にクリアすることを推奨します。
関数のWebIDEを開くと、インスタンス (以下、WebIDE関連のインスタンス) が自動的に起動されます。 このWebIDE関連インスタンスは、1 vCPUと1.5 GBのメモリを備えたコンテナインスタンスとほぼ同等です。
WebIDE関連インスタンスの環境は、関数のランタイム環境と同じです。 ただし、インスタンスはカスタムレイヤーまたはマウントされたApsara File Storage NAS (NAS) およびObject Storage Service (OSS) リソースをロードできません。 さらに、WebIDE関連のインスタンスは、サービス用に設定されている仮想プライベートクラウド (VPC) にアクセスできません。 上記の機能を使用する場合は、専用のWebIDEを使用するか、コードをデプロイした後に関数を呼び出します。
専用WebIDEは、中国 (杭州) 、中国 (上海) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (深セン) 、中国 (香港) 、シンガポール、日本 (東京) 、ドイツ (フランクフルト) 、米国 (バージニア) でのみご利用いただけます。 別のリージョンで専用WebIDEを使用する場合は、DingTalkグループ11721331に参加してテクニカルサポートを行います。
WebIDE UI
このトピックでは、フルスクリーンモードのWebIDE UIについて説明します。 WebIDE UIは、リソースマネージャ (1) 、ファイルエディタ (2) 、操作バー (3) 、およびCLI端末 (4) で構成されています。 以下の図は一例です。
リソースマネージャー: コードファイルや依存関係などのコード構造を表示できます。
ファイルエディター: 関数コードを編集できます。 コードを編集した後、右上隅のボタンをクリックしてコードをデバッグします。 オンラインコードをターミナルのコードと同じにするには、操作バーの [デプロイ] をクリックします。
操作バー: この領域で操作を実行して、コードをデプロイし、関数をテストできます。 [終了] [全画面] をクリックすると、WebIDE UIの左上隅に操作バーが表示されます。
CLIターミナル: WebIDEナビゲーションバーで、
を選択してCLIターミナルを起動します。 CLIターミナルでは、コードをデバッグし、サードパーティの依存関係をインストールできます。
Function ComputeコンソールでのWebIDEの設定
前提条件
サービスと関数が作成されます。 詳細については、「サービスの作成」および「関数の作成」をご参照ください。
手順
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、目的のサービスをクリックします。
[関数] ページで、目的の関数の名前をクリックします。 表示される [関数の詳細] ページで、[コード] タブをクリックします。
(オプション) 関数の詳細ページの [コード] タブで、WebIDE UIの右上隅にある [WebIDEの設定] をクリックします。 [WebIDEの設定] パネルで、WebIDEタイプを選択します。
[サーバーレス] または [専用] を選択できます。
サーバーレス
[専用WebIDEの無効化] を選択すると、WebIDEを起動するたびにサーバーレスWebIDEが自動的に選択されます。
専用
インスタンスがカスタムレイヤーとマウントされたNASおよびOSSリソースをロードする場合、またはサービス用に設定されたVPCにアクセスする場合は、[専用] WebIDEを選択し、次のパラメーターを設定できます。
インスタンス仕様
実行タイムアウト期間
専用WebIDEを使用している場合、Function Computeは、関数が存在するリージョンのVPCに基づいて、VPC、vSwitch、および汎用NASファイルシステムを再利用または自動的に作成できます。 課金の詳細については、「汎用NASファイルシステムの課金」をご参照ください。
WebIDE UIでは、ビジネス要件に基づいて、関数コードの記述、サードパーティの依存関係のインストール、テストの実行などの操作を実行できます。
WebIDE UIの詳細については、「WebIDE UI」をご参照ください。
専用のWebIDEを使用する場合は、関数が期待どおりに実行されることを確認します。 そうしないと、WebIDEの起動に失敗する可能性があります。
よくある質問
ロード中にWebIDEが例外をスローした場合はどうすればよいですか?
機能の詳細ページを更新するか、WebIDE環境をリセットして問題を解決できます。 WebIDE環境をリセットする方法の詳細については、「WebIDEの環境変数、ランタイム、およびレイヤーをリセットするにはどうすればよいですか? 」をご参照ください。
専用WebIDEとは何ですか?
専用WebIDEを使用する場合、WebIDE関連の関数がfunction Computeのアカウントにデプロイされます。 関数が存在するサービスの名前は、_webide-server-
で始まります。
専用WebIDEを使用する場合、WebIDE関連のインスタンスはカスタムレイヤーとマウントされたNASおよびOSSリソースをロードし、サービス用に設定されたVPCにアクセスできるようにします。 これにより、WebIDEターミナルとオンラインFunction Computeランタイム間で一貫した環境が提供され、コーディングとデバッグが容易になります。 カスタムインスタンス仕様を設定することもできます。 たとえば、vCPUとメモリの仕様を増やして、WebIDEのパフォーマンスを向上させることができます。
専用WebIDEの機能はアカウントで実行され、次のリソースに対して課金されます。
関数の呼び出し数とリソース使用量。 詳細については、「課金の概要」をご参照ください。
NASファイルシステム。 詳細については、「汎用NASファイルシステムの課金」をご参照ください。
WebIDEターミナルで期待どおりに実行されても、Test functionをクリックした後に関数が実行されないのはなぜですか?
WebIDEでは、コードのテスト、プロジェクトの構築、依存関係のインストールを効率的に行うことができます。 ただし、WebIDE環境はFunction Computeの実際の実行環境ではありません。 サーバーレスWebIDEでは、カスタムレイヤーを直接テストしたり、NASおよびOSSリソースにアクセスしたりすることはできません。 VPC経由でリソースにアクセスすることはできません。
サーバーレスWebIDEがビジネス要件を満たせない場合は、専用WebIDEを使用できます。 [デプロイ] をクリックし、[関数のテスト] をクリックして関数をテストすることもできます。
WebIDEの環境変数、ランタイム、およびレイヤーをリセットするにはどうすればよいですか?
関数の詳細ページまたはWebIDE UIを更新すると、環境変数、レイヤー、オンライン関数のランタイムなどの最新の設定がWebIDE関連のインスタンスに更新されます。 WebIDEターミナルでenv
を実行すると、最新の関数環境変数やその他の情報を表示できます。
サーバーレスWebIDEのデータはどのくらいの期間保持されますか?
デフォルトでは、サーバーレスWebIDEのデータは48時間保持されます。 48時間以内にサーバーレスWebIDEで関数を起動しなかった場合、データは削除されます。
Function ComputeコンソールまたはSDKツールを使用してオンラインコードを変更した場合、WebIDEを更新または再起動すると、関数のコードチェックサム
が変更され、WebIDEのコンテンツが自動的に最新バージョンに更新されます。
Function ComputeのどのランタイムがWebIDEをサポートしていますか?
WebIDEは次のランタイムでサポートされます。
Python
Python 3.10、Python 3.9、Python 3.6、およびPython 2.7
Node.js
Node.js 16、Node.js 14、Node.js 12、Node.js 10、およびNode.js 8
PHP
PHP 7.2
カスタムランタイム
カスタムランタイム (Debian 9およびDebian 10)
WebIDEでコードをデバッグできますか?
はい、WebIDEでコードをデバッグできます。 組み込みのVSコードデバッグプラグインは、WebIDEのさまざまなランタイムに使用できます。 カスタムランタイムで一般的に使用されていないプログラミング言語を使用する場合は、そのプログラミング言語用のVS Codeプラグインをインストールできます。
たとえば、関数がPython 3.9ランタイムで実行される場合、ハンドラーを実行するために特定のコードを追加する必要があります。 次の図の赤いボックスの内容は、サンプルコードを示しています。
関数コードを変更すると、gitはコードの違いを表示します。 関数コードがWebIDEによってホストされているためですか?
いいえ。 WebIDEを起動すると、最初に関数コードパッケージを開いたときにgit init
が自動的に初期化され、コードとオンラインコードの違いが表示されます。 [デプロイ] をクリックすると、commit
が自動的に生成され、WebIDEターミナルとオンライン環境のコードが同じになります。 次の図のsave function with codechecksum xxxx
は、関数が1回デプロイされることを示します。 この機能は、ユーザーエクスペリエンスの向上に役立ちます。
同じAlibaba Cloudアカウントの異なるRAMユーザーとしてfunction Computeにログインすると、関数のコードが異なるのはなぜですか。
Function ComputeのWebIDEは、同じAlibaba Cloudアカウントに属するさまざまなRAM (Resource Access Management) ユーザーのワークスペースの分離をサポートしています。 たとえば、RAMユーザーAがFunction ComputeコンソールにログインするときにWebIDE Aが使用され、RAMユーザーBがFunction ComputeコンソールにログインするときにWebIDE Bが使用されます。 RAMユーザーによる変更は、他のRAMユーザーの業務には影響しません。 この場合、RAMユーザーAとRAMユーザーBのコードは異なります。
RAMユーザーAとRAMユーザーBは、ワークスペース内のコードとオンライン関数コードの違いを表示できます。 詳細については、「関数コードを変更すると、gitはコードの違いを表示します。 関数コードがWebIDEによってホストされているためですか? 」をご参照ください。
WebIDEターミナルがゆっくり開くか、開くことができない場合はどうすればよいですか?
この問題を解決するには、次の操作を実行します。
ネットワーク設定が有効かどうかを確認してください。 たとえば、ローカルクライアントがアクセスを制限するプロキシを構成しているかどうか、またはWebSocketプロトコルが無効になっているかどうかを確認します。 WebIDEは、WebSocketを使用してリアルタイムの通信とインタラクションを実装します。 WebSocketを無効にすると、WebIDEは期待どおりに実行できません。
ローカルクライアントで中国本土以外のリージョンにある関数を起動したかどうかを確認します。 ローカルクライアントのネットワークが適切なクロスボーダー接続を確立できない場合、機能はすぐに接続できないか、接続に失敗します。
コードパッケージが大きすぎるかどうかを確認します。 コードパッケージのサイズが大きすぎて、コードのアップロードまたはデプロイに時間がかかる場合は、コードパッケージを最適化して再試行してください。
上記の操作を実行しても問題が解決しない場合は、お問い合わせください。
詳細情報
WebIDEターミナルを使用して、関数のサードパーティの依存関係をパッケージ化することもできます。 詳細については、「WebIDEを使用した関数のサードパーティの依存関係のパッケージ化」をご参照ください。
インストールする関数コードまたはサードパーティの依存関係が大きい場合は、依存関係をレイヤーに配置するか、function Computeのパブリックレイヤーを使用してコードパッケージのサイズを縮小できます。 詳細については、「カスタムレイヤーの作成」をご参照ください。
Serverless Devsのローカルデバッグ機能を使用して、関数をテストすることもできます。 詳細については、「ローカルコマンド」をご参照ください。