Microsoft、「Azure Functions」の「TypeScript」サポート強化と「Java」正式サポートを発表:Azure Functionsでの開発がより便利に
Microsoftは、サーバレスコンピューティングサービス「Azure Functions」で「TypeScript」のサポートを強化し、「Java」を正式にサポートした。
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関数をトランスパイルして実行するために、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の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.
関連記事
- Azure Functionsプロジェクト開発の基本的な流れ
Azure Functionsはインフラ管理不要で、小規模なプログラムコードを実行するための仕組みだ。Visual Studioでその開発を行うための基本的な手順を見てみよう。 - Azure Functions
Azure Functionsを使うと、トリガーとバインドを利用することで、シンプルでありながら、多様なサービスと接続可能なアプリを開発することが可能となる。 - 米マイクロソフト、AWS Lambda的なサービス「Azure Functions」を発表
米マイクロソフトは2016年3月31日(米国時間)、AWS Lambda、Google Cloud Functionsと同様なイベントドリブン、サーバレスなコンピュートサービス、「Azure Functions」を発表した。同社はさらに、Azure Functions関連コードをオープンソースとして公開するため、Azure以外のプラットフォームでも動かせる。