• 5 min read

Python および JavaScript 開発者のための Azure Functions の機能強化

サーバーレス テクノロジにより、開発者はインフラストラクチャ管理ではなく、アプリの差別化されたビジネス ロジックに集中できるようになります。

サーバーレス テクノロジにより、開発者はインフラストラクチャ管理ではなく、アプリの差別化されたビジネス ロジックに集中できるようになります。Azure Functions 2.0 の一般提供の発表後、新しいクロス プラットフォームの Azure Functions ホスト ランタイムを活用して、Azure Functions の新しい言語と新しいホスティング オプションをサポートすることで、より多くの開発者に満足していただくことに注力してきました。

本日、Azure Functions での Python のサポートがパブリック プレビューで利用可能になり、実行ごとの支払いが可能なサーバーレス ホスティング オプションに対応する新しい Linux 従量課金プランで Python 関数アプリを発行できるようになったことをお知らせいたします。この Linux 従量課金ホスティング オプションは、JavaScript 関数アプリでもご利用いただけます。JavaScript 開発者がサーバーレス ワークフローをプログラムでさらに調整できるようにするために、運用環境のワークロードですぐに使用できる、Azure Functions ランタイムの JavaScript Durable Functions 拡張機能の一般提供も発表いたします。ソリューションがサーバーレス API の場合、API Management の新しい従量課金レベルで、適切な API 設計および管理パターンのプラットフォーム サポートを活用できます。Azure Functions の機能セットが増え続ける中、コミュニティでのコードの再利用によって生産性を向上させることができるため、事前構築済みのオープン ソース コンポーネントをホストする Serverless Community Library が作成されました。このブログを最後までお読みになり、これらの新しい機能の詳細をご確認ください。

新しい Linux 従量課金プランでのホスト機能 (パブリック プレビュー)

これまで、Linux へのデプロイは App Service プランでの実行中にのみサポートされていましたが、Azure Functions で従量課金プランでの Linux サーバーレス ホスティングがサポートされるようになりました。この最新リリースでは、イベント アクティビティに関する詳細な分析情報に基づく動的スケールと、実行ごとの支払いサーバーレス モデルの利点を活用して、Linux OS を対象とする関数をデプロイできます。Mac および Linux プラットフォーム上で開発を行っているお客様は、クラウドでの Linux ホスティングにシームレスに移行して、プラットフォーム固有の変換を回避できます。また、Linux 上でのホスティングにより、Linux 上でのみ利用可能なライブラリを関数コードから活用できるようになります。

この新しいホスティング オプションは、開発言語に対する親和性が最も高いプラットフォーム上に関数アプリを配置することで、将来的にインフラストラクチャの概念をさらに抽象化するための基礎を構築します。たとえば、Linux 従量課金プランで Python が既定でホストされます。Linux 従量課金ホスティングの詳細については、こちらのドキュメントをご覧ください。

Python 関数の開発の開始 (パブリック プレビュー)

Azure Functions を Python で記述できるようになりました。今後、Functions 2.0 ランタイムに基づく Python 3.6 (CPython) と Linux ベースのホスティング プラットフォームを使用して関数を作成できます。これにより、これまでサーバーレス ソリューションまたは FaaS ソリューションとして実装することが難しかったさまざまなシナリオ (データ処理、機械学習ワークロード、自動化スクリプトなど) に対応できるようになります。

新しい Python ランタイムでは独自の Functions プログラミング モデルを共有するため、Python スクリプトを簡単にインポートし、要件の標準の形式を使用してすべての依存関係を管理できます。いつものように、メソッドの属性を使用するだけで、さまざまなトリガーやバインドによって、クラウド規模のデータ ソースやメッセージング サービス (Azure Storage、Cosmos DB、Service Bus、Event Hubs, Event Grid など) にシームレスに接続できます。

Python コード サンプル

Python 開発者は、Mac、Linux、または Windows マシンを使用して、関数をローカルでビルド、デバッグ、テストできます。Azure Functions Core Tools (CLI) を使用すると、トリガー テンプレートを使って Azure に直接発行することが可能になり、構成とビルドは自動的に処理されます。

さらに魅力的なのは、コード エディター内から関数を作成、デバッグ、管理、デプロイできる、緊密に統合された GUI エクスペリエンスを提供する、Visual Studio Code 用 Azure Functions 拡張機能を使用できることです。これを VS Code 用 Python 作成拡張機能と組み合わせれば、どのプラットフォーム上でも、Python のクラス最高のサーバレス開発エクスペリエンスを実現できます。

VSCode 用 Python 作成拡張機能

作業を開始するには、こちらのチュートリアルに従って、最初のサーバーレス Python 関数を作成し、発行します。Python を使用した Azure Functions の開発エクスペリエンスと可能になったシナリオについて説明するウェビナーも用意されています。今すぐご登録ください。

この機能は現在プレビュー段階であるため、GitHub の会話をフォローして、フィードバックを共有し、今後の改善点や機能の詳細を把握することをお勧めします。

Durable Functions を使用した JavaScript サーバーレス ワークフローの調整 (一般提供)

JavaScript 用に新たに一般提供が開始された、運用環境のワークロードにすぐに使用できる Azure Functions ランタイムの Durable Functions 拡張機能を使用して、サーバーレス ワークフローをプログラムで調整します。開発者は、JSON スキーマやビジュアル デザイナーを使用する代わりに、Durable Functions を使用してコードでワークフローを定義することで、サーバーレス アプリケーションにおける複雑でステートフルな調整の問題を簡素化できます。このリリースでは、関数チェーン、ファンアウト/ファンイン (下記の例を参照)、人的介入などの開発パターンを表す、Node.js および JavaScript 開発者向けの新たなシナリオに対応しています。こちらのクイック スタートから始め、Durable Functions で JavaScript を使用してステートフル ワークロードを構築してください。

Durable Functions で JavaScript を使用したステートフル ワークロード

API Management を使用したサーバーレス API の管理

お客様の一般的なシナリオは、エンドポイントを強化する Azure Functions を使用してサーバーレス API を構築し、HTTP またはイベント ドリブン トリガーと、バインドを使用したデータおよびメッセージング サービスとの容易な統合によるメリットを得ることです。API を構築するときには、要求の認証と承認、レート制限とクォータ強制、要求と応答の変換、ログとトレース、バージョン管理など、多くの考慮事項があります。

Azure API Management では、API 要求の仲介に関わるこれらのタスクをすべて処理できますが、これまでは Azure Functions のお客様に支持されている、ソリューションの実行ごとの支払いモデルに対応しない固定コストが発生していました。

今後は、新しい API Management インスタンスを作成するときに、新しい従量課金レベルを選択できます。この新しいレベルは、基本的に、要求ごとの支払いと自動スケールというサーバーレスの原則に基づいて設計および実装される、API Management のバリアントです。Azure Functions を活用したサーバレス バックエンドの API 管理のメリットが得られるように、こちらのブログ記事で新しい従量課金レベルの詳細をご覧ください。

Serverless Community Library を使用した開発

Serverless Community Library は、Azure Functions と Logic Apps の一般的なユース ケースに基づいた、オープン ソースの事前構築済みコンポーネント セットです。これらのサンプルは既に構築済みであり、目的の Azure サブスクリプションにいつでもデプロイできます。開発者はこれらの事前構築済みコンポーネントをそのままプラグ アンド プレイで使用できるので、コーディングの時間が節約され、生産性が向上します。Serverless Community Library で利用可能なサンプル (Stripe を使用した支払い処理や、Cognitive Services を使用したインテリジェンスの追加など) を確認し、独自のコンポーネントを GitHub に提供してください。

Serverless Library

まとめ

これらの新しい機能をお試しいただき、ご意見をお寄せください。Functions UserVoice で、Azure Functions の新しい機能についてのアイデアをぜひお聞かせください。Azure Functions チームは、Azure Functions GitHub リポジトリでキャプチャされた Azure Functions の問題に積極的に取り組んでいきたいと考えています。チームには、Twitter @AzureFunctions でいつでもご連絡いただけます。