検索
ニュース

Microsoft、「Azure Functions」の「TypeScript」サポート強化と「Java」正式サポートを発表Azure Functionsでの開発がより便利に

Microsoftは、サーバレスコンピューティングサービス「Azure Functions」で「TypeScript」のサポートを強化し、「Java」を正式にサポートした。

Share
Tweet
LINE
Hatena

 Microsoftは2019年2月25日(米国時間)、オンデマンドでコードを実行できるサーバレスコンピューティングサービス「Azure Functions」での「TypeScript」サポートの強化と「Java」の正式サポートを発表した。

 発表の概要は以下の通り。

TypeScriptサポートの強化

 TypeScriptは、JavaScriptのスーパーセットであり、静的型付け、クラス、インタフェースが使用できる。また、ECMAScript 2015と互換性があるため、モダンなJavaScript構文も間接的に利用できる。

 Azure FunctionsではNode.jsを実行でき、TypeScriptはJavaScriptにコンパイルできるため、これまでもTypeScriptコードをAzure Functionsで実行することはできたが、そのためには一手間が必要で、面倒だった。

 Microsoftは「Azure Functions Core Tools」と「Visual Studio Code用Azure Functions拡張機能」に一連の変更を加え、Azure Functionsで実行するイベントドリブンアプリケーションをTypeScriptで簡単に作成できるようにした。主な変更点は、TypeScript用テンプレート、型定義、npmスクリプトだ。

TypeScript用テンプレート

 Azure Functions Core ToolsとVisual Studio Code用Azure Functions拡張機能の最新バージョンでは、関数アプリの作成時に言語スタックとしてTypeScriptを指定できるオプションが用意された。このオプションを使うと、TypeScriptと互換性があるようにアプリがセットアップされる。その後、関数を作成する際に多数のTypeScript向け関数テンプレートを選べるようになる。


さまざまなトリガーを表す多数のTypeScript向け関数テンプレートから選択

 TypeScriptテンプレートが使える最大のメリットは、TypeScript関数をトランスパイルして実行するために、Azure Functions固有のアクションを実行する必要がないことだ。例えば、ユーザーがVisual Studio Codeでデバッグを開始すると、Visual Studio Codeは自動的に、要求されたインストールタスクを実行し、TypeScriptコードをトランスパイルし、Azure Functionsホストを開始する。これは他の全てのアプリの場合と同様だ。

Azure Functions用の型定義

 npmの「@azure/functions」パッケージにAzure Functions用の型定義が含まれている。TypeScriptを最大限に活用するには、全ての関数tsにこのパッケージをインポートする。

npmスクリプト

 TypeScript関数アプリには、幾つかのシンプルなnpmスクリプトを含む「package.json」ファイルがデフォルトで含まれている。これらのスクリプトにより、Azure Functionsは、特定のAzure Functions Core Toolsコマンドを呼び出すことで、通常の開発フローに直接適合する。

Javaの正式サポート

 Azure Functionsの最新リリースは、本番環境でJavaワークロードをサポートできるようになり、「Consumption Plan(従量課金プラン)」と「App Service Plan(App Serviceプラン)」の両方で、Microsoft Azure(以下、Azure)の99.95%のSLA(サービスレベル契約)が適用されるようになった。「Java SE 8 LTS」とAzure Functions 2.0ランタイムをベースに関数を作成でき、自分の好みのプラットフォーム(Windows、Mac、Linux)やツールが使える。Azureが提供する世界50以上のリージョンで幅広いオプションを使って、Javaアプリを作成、実行可能だ。

強力なプログラミングモデル

 Azure Functionsのユニークなプログラミングモデルを利用して、Javaアプリを「Azure Storage」「Azure Cosmos DB」などのクラウドスケールのデータソースや、「Service Bus」「Event Hubs」「Event Grid」のようなメッセージングサービスと簡単に接続できる。

 また、トリガーやバインディングを使って、HTTPリクエストに応じて関数を呼び出したり、上記のソースシステムのいずれかのイベントをスケジューリングしたりできる。

 さらに、Java SDKを気にせずに、関数ロジックの一環として、これらのソースに対する情報の取り出しや書き込みが可能だ。


Azure Functionsでの開発とモニタリング

開発とモニタリングが容易に

 Azure FunctionsのMavenプラグインを使って、任意のMaven対応プロジェクトから関数の作成、ビルド、デプロイを行える。オープンソースのAzure Functions 2.0ランタイムにより、任意のプラットフォームでローカルに関数を実行、デバッグできる。包括的なDevOpsを実現したい場合は、「Azure Pipelines」との統合を利用したり、「Jenkins Pipeline」をセットアップして、Javaプロジェクトを作成したりして、Azureにデプロイできる。

 また「Eclipse」「IntelliJ IDEA」、Visual Studio Codeといった人気のIDE(統合開発環境)やエディタを使って、Java関数の開発とデバッグができる。

 Azure Functionsでサーバレスアプリケーションを構築するメリットの1つとして、「Azure Application Insights」との統合のおかげで、テレメトリー、クエリ、分散トレーシングといった豊富なモニタリング機能を利用できることが挙げられる。

エンタープライズグレードのサーバレスアプリケーション

 Azure Functionsでは、エンタープライズ要件を満たすアプリを簡単に作成できる。App Serviceの認証および認可のような機能を利用して、アプリへのアクセスを制限したり、マネージドIDと「Azure Key Vault」を使って秘密情報を保護したりできる。Azureは幅広いコンプライアンス証明を提供しており、サーバレスJava関数の魅力的なホストとなっている。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る