WebIDE は、Function Compute が提供するオンライン統合開発環境 (IDE) であり、Visual Studio Code (VS Code) に似たクラウドベースの開発体験を提供します。ローカルマシンに複雑な開発環境をセットアップすることなく、オンラインで直接コードの記述、デバッグ、デプロイが可能です。このトピックでは、WebIDE の特徴、UI の概要、および Function Compute コンソールで WebIDE を設定する方法について説明します。
特徴
WebIDE は以下の特徴を備えています。
-
コード開発、デプロイ、デバッグのための完全な機能。
-
WebIDE ターミナル環境は、Function Compute のオンライン実行環境と一致しています。
-
ランタイムごとに、WebIDE には pip、npm、composer などの開発ツールや言語環境がプリインストール済みです。ターミナルで直接サードパーティの依存関係をパッケージ化でき、オンライン環境との一貫性を確保します。
-
WebIDE には Serverless Devs ツールが含まれており、現在のアカウント用に自動的に設定されます。
s configコマンドを実行する必要はありません。デフォルトのエイリアスはdefaultです。
-
-
Tongyi Lingma による AI を活用したコーディング支援。
Tongyi Lingma のインテリジェントなコーディング機能をすぐに利用でき、コーディング効率を向上させることができます。Tongyi Lingma はリアルタイムでコードレビューを実行し、潜在的な論理エラーを検出します。関数で例外が発生した場合、問題の特定を迅速に支援し、修正案を提示することで、開発効率とコード品質の両方を向上させます。
WebIDE を快適にご利用いただくために、Google Chrome の最新バージョンを使用してください。
制限事項
-
WebIDE は現在、Python、Node.js、PHP、および Custom Runtime のランタイムのみをサポートしています。詳細については、「Function Compute の WebIDE がサポートするランタイム」をご参照ください。Java、Go、C# のオンライン編集はサポートされていません。これらの言語では、コンパイルおよびパッケージ化された ZIP ファイルまたはバイナリファイルのみをアップロードできます。
-
WebIDE は、ユーザーごとに 5 GB のストレージ容量を提供します。この制限を超えると、書き込み操作は失敗します。不要なファイルを定期的に削除して、容量を確保してください。
-
関数の WebIDE を開くと、インスタンスが自動的に起動します。このインスタンスは、およそ 1 vCPU、1.5 GB のコンテナインスタンスに相当します。
-
WebIDE インスタンスの環境は、関数の実行環境と一致しています。ただし、このインスタンスは、カスタムレイヤーやマウントされた NAS または OSS ファイルシステムをロードしたり、サービスに設定された VPC 環境にアクセスしたりすることはできません。これらの機能が必要な場合は、コードをデプロイしてから関数を呼び出すか、専用 WebIDE を使用できます。
-
専用 WebIDE は現在、中国 (杭州)、中国 (上海)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (深セン)、中国 (香港)、シンガポール、日本 (東京)、ドイツ (フランクフルト)、米国 (バージニア) のリージョンでのみ利用可能です。他のリージョンで利用するには、DingTalk ユーザーグループ (グループ ID: 64970014484) に参加してリクエストを送信してください。
WebIDE の UI
次の図は、全画面モードの WebIDE インターフェイスを示しています。これは、リソースエクスプローラー、ファイルエディター、関数操作、コマンドラインターミナルの 4 つの主要エリアに分かれています。
-
リソースエクスプローラー:コードファイルや依存関係ファイルなど、コードの構造を表示します。
-
ファイルエディター:関数コードを編集します。編集が完了したら、右上隅の
アイコンをクリックしてコードのデバッグを開始します。オンライン環境とターミナル環境を同一にするには、[関数操作] エリアの [コードのデプロイ] をクリックします。 -
関数操作:関数コードをデプロイおよびテストします。[全画面表示を終了] をクリックすると、WebIDE インターフェイスの左上隅に関数操作エリアが表示されます。
-
コマンドラインターミナル:上部のツールバーで、 を選択してコマンドラインターミナルを開きます。ターミナルでは、コードのデバッグやサードパーティの依存関係のインストールができます。
コンソールでの WebIDE の設定
前提条件
サービスと関数がすでに存在している必要があります。詳細については、「サービスの作成」および「関数の作成」をご参照ください。
操作手順
Function Compute コンソールにログインします。左側のナビゲーションウィンドウで、[サービス & 関数] をクリックします。
上部のナビゲーションバーでリージョンを選択します。[サービス] ページで、目的のサービスをクリックします。
[関数] ページで、目的の関数の名前をクリックします。表示された関数詳細ページで、[コード] タブをクリックします。
-
(任意) [関数コード] タブで、右上隅にある [WebIDE の設定] をクリックします。[WebIDE の設定] パネルで、WebIDE のタイプを選択します。
[サーバーレス] WebIDE か [専用] WebIDE のいずれかを選択できます。
-
サーバーレス
[専用 WebIDE を無効にする] を選択して、WebIDE を開くたびにデフォルトで [サーバーレス] WebIDE が使用されるようにすることもできます。
-
専用
インスタンスにカスタムレイヤーをロードしたり、NAS または OSS ファイルシステムをマウントしたり、サービスに設定された VPC 環境にアクセスしたりする必要がある場合は、[専用] WebIDE を選択し、次のパラメーターを設定します。
-
インスタンス仕様プラン
-
実行タイムアウト
専用 WebIDE を選択すると、Function Compute は既存の VPC、VSwitch、および汎用 NAS ファイルシステムを再利用するか、関数がデプロイされているリージョンの VPC 設定に基づいて自動的に作成します。自動的に作成されたリソースの課金の詳細については、「汎用 NAS の料金」をご参照ください。
-
-
-
WebIDE インターフェイスで、関数コードを記述してテストし、必要に応じてサードパーティの依存関係をインストールします。
WebIDE インターフェイスの各エリアの説明については、「WebIDE の UI」をご参照ください。
専用 WebIDE を選択した場合は、関数が期待どおりに実行されることを確認してください。そうしないと、WebIDE が開かない場合があります。
よくある質問
WebIDE のロードに失敗した場合の対処法
関数詳細ページをリフレッシュするか、WebIDE 環境を迅速にリセットしてみてください。WebIDE 環境をリセットする方法の詳細については、「関数の WebIDE 環境とワークスペースの内容を迅速にリセットするにはどうすればよいですか?」をご参照ください。
専用 WebIDE とは
専用 WebIDE は、本質的にご利用のアカウントにデプロイされた Function Compute の関数です。関数が属するサービスの名前は _webide-server- で始まります。
専用 WebIDE を使用すると、インスタンスはカスタムレイヤーをロードしたり、NAS または OSS ファイルシステムをマウントしたり、サービス用に設定された VPC にアクセスしたりできます。これにより、ターミナルとオンライン実行環境との真の一貫性が実現され、開発とデバッグが容易になります。また、CPU やメモリを増やすなど、インスタンスの仕様を選択して WebIDE のパフォーマンスを向上させることもできます。
専用 WebIDE を使用すると、基盤となる関数がご自身のアカウントで実行されます。その結果、以下の追加料金が発生します:
-
Function Compute のリソース使用量と関数呼び出し料金。詳細については、「課金概要」をご参照ください。
-
マウントされた NAS ファイルシステムに関連する料金。詳細については、「汎用 NAS の料金」をご参照ください。
ターミナルでの実行は成功するが、テストに失敗する場合
WebIDE は、コードの迅速なテスト、プロジェクトのビルド、依存関係のインストールに役立ちます。ただし、WebIDE 環境は Function Compute の実際の実行環境ではありません。WebIDE では、カスタムレイヤー、マウントされた NAS または OSS ファイルシステム、または VPC を介したリソースアクセスを直接テストすることはできません。
この問題を回避するには、専用 WebIDE を使用できます。または、コードの編集が完了したら、[コードのデプロイ] をクリックし、次に [関数のテスト] をクリックしてテストを実行します。
WebIDE 環境のリセット方法
関数詳細ページまたは WebIDE インターフェイスをリフレッシュすると、WebIDE はオンライン関数から最新の環境変数、レイヤー、およびランタイムを WebIDE インスタンスに同期します。ターミナルで env コマンドを実行して、最新の関数環境変数を表示できます。
サーバーレス WebIDE のワークスペース保持期間
デフォルトでは、ワークスペースは 48 時間保持されます。48 時間連続して WebIDE で関数を開かない場合、ワークスペースの内容は削除されます。
さらに、コンソールまたは SDK を使用してオンラインコードを変更すると、関数の code checksum が変更されます。WebIDE をリフレッシュまたは再度開くと、ワークスペースの内容は最新のオンラインコードと一致するように自動的に更新されます。
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。
-
Custom Runtime
Custom Runtime および Custom Runtime (Debian 10)。
WebIDE はコードのデバッグに対応していますか?
はい。各ランタイムに組み込まれている VS Code デバッグ拡張機能を直接使用できます。Custom Runtime であまり一般的でない言語の場合は、適切な VS Code 拡張機能をインストールできます。
Python 3.9 を例にとると、ハンドラ関数を実行するためにいくつかのヘルパーコードを追加する必要があります。以下はコードサンプルです。
import logging
import json
def handler(event, context):
# evt = json.loads(event)
logger = logging.getLogger()
logger.info('hello world')
logger.info('hello world2')
return 'hello world'
if __name__=="__main__":
event = b"hello"
# コードでコンテキストを使用する場合は、
# 'https://www.alibabacloud.com/help/document_detail/422182.html' を参照してコンテキストオブジェクトを構築してください。
context = None
handler(event, context)
Git 拡張機能にコードの差分が表示される理由
いいえ。関数のコードパッケージを WebIDE で初めて開くと、git init コマンドが自動的に実行され、現在のコードとオンラインコードの差分が表示されます。[コードのデプロイ] をクリックすると、WebIDE は自動的に commit を生成し、ターミナル内のコードがオンラインコードと同一であることを保証します。save function with codechecksum xxxx のようなコミットメッセージは、関数のデプロイが実行されたことを示します。この機能は、ユーザーエクスペリエンスを向上させるために設計されています。以下は、WebIDE の index.py エディターからのコードスニペットです:
RETAIN_FILE_NAME = os.environ.get("RETAIN_FILE_NAME", "")
if PROCESSED_DIR and PROCESSED_DIR[-1] != "/":
PROCESSED_DIR += "/"
if RETAIN_FILE_NAME == "false":
newKey = PROCESSED_DIR
else:
# ...
ターミナルで git log コマンドを 2 回実行した以下の出力は、2 回目の実行後に新しい「save function」コミットが追加されたことを示しています:
$ 10:24:58 root@/code:master(eac0663)
> git log
commit eac0663b3d03a76e7887c6f68cdf6798d2da
Author: fc-webide <fc-webide@ali.com>
Date: Thu Feb 9 06:53:02 2023 +0000
init
$ 10:25:02 root@/code:master(eac0663)
> git log
commit 8abaa6af2e7e6faa90635117d93a320d27ac
Author: fc-webide <fc-webide@ali.com>
Date: Fri Feb 10 10:25:08 2023 +0000
save function with codechecksum 7952913623671662552
commit eac0663b3d03a76e7887c6f68cdf6798d2da
Author: fc-webide <fc-webide@ali.com>
Date: Thu Feb 9 06:53:02 2023 +0000
init
`
コミットメッセージ save function with codechecksum 7952913623671662552 は、WebIDE が関数を保存する際に、Git を使用してコードを自動的にコミットし、codechecksum 値を付加することを示しています。
RAM ユーザー間で表示されるコードが異なる理由
Function Compute WebIDE は、同じ Alibaba Cloud アカウント下の RAM ユーザーに対してワークスペースの隔離を提供します。たとえば、RAM ユーザー A が WebIDE A を開き、RAM ユーザー B が WebIDE B を開いた場合、RAM ユーザー B は RAM ユーザー A が自分のワークスペースで行ったコードの変更を見ることはできません。その結果、表示されるコードが異なります。
両方の RAM ユーザーは、それぞれのワークスペースのコードとオンラインの関数コードとの差分を見ることができます。詳細については、「Git 拡張機能にコードの差分が表示される理由」をご参照ください。
ターミナルの動作が遅い、または開かない場合
以下の手順で問題をトラブルシューティングしてください:
-
ネットワーク設定が正しいか確認します。たとえば、ローカルクライアントでアクセスを制限するプロキシが設定されているか、WebSocket プロトコルが無効になっていないかを確認します。WebIDE はリアルタイム通信と対話のために WebSocket を使用します。WebSocket が無効になっている場合、WebIDE は期待どおりに実行できません。
-
ローカルクライアントが中国以外のリージョンで関数を開いているかどうかを確認します。ローカルネットワークの国際接続性が限られている場合、中国以外のリージョンの関数への接続が遅くなったり、失敗したりすることがあります。
-
コードパッケージが大きすぎないか確認します。コードパッケージが大きい場合、コードのアップロードやデプロイに時間がかかることがあります。この場合は、コードパッケージを最適化してから再試行してください。
上記の手順を実行しても問題が解決しない場合は、お問い合わせください。
関連ドキュメント
-
WebIDE ターミナルを使用して、関数のサードパーティの依存関係をパッケージ化することもできます。詳細については、「WebIDE を使用して関数のサードパーティの依存関係をパッケージ化する」をご参照ください。
-
関数のコードパッケージが大きい場合、またはインストールするサードパーティの依存関係が大きい場合は、依存関係をレイヤーに抽出するか、Function Compute の公式パブリックレイヤーを使用してコードパッケージのサイズを削減できます。詳細については、「カスタムレイヤーの作成」をご参照ください。
-
Serverless Devs ツールのローカルデバッグ機能を使用して、関数をローカルでテストすることもできます。詳細については、「ローカルデバッグ」をご参照ください。