Azure認定資格 WEB問題集&徹底解説

AZ-900:Microsoft Azure Fundamentals

Azure Functions の概要と試験出題ポイントは?

Azureサービスの一つであるAzure Functionsはどんな内容なのでしょうか?また、Azure認定資格の AZ-900:Azure Fundamentals に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います

Azure Functions 徹底解説

1. サービス概要

Azure Functions は、サーバーレスコンピューティングサービスで、インフラストラクチャを管理することなく、イベントトリガー型のコードを簡単に実行できます。 Functions は、必要なときにのみ実行され、コードの実行時間に対してのみ料金が発生します。 Azure Functions は、さまざまなプログラミング言語をサポートし、さまざまなトリガーとバインディングを利用して、他の Azure サービスや外部システムと統合できます。 API の作成、データ処理、イベント応答、システムの統合など、幅広いユースケースに対応できます。

Azure Functions は、イベントトリガー型のサーバーレスアプリケーションを迅速かつ簡単に構築するための強力なプラットフォームです。

2. 主な特徴と機能

2.1 サーバーレスコンピューティング

Azure Functions は、インフラストラクチャの管理を抽象化し、サーバーのプロビジョニングやメンテナンスを気にすることなく、コードを実行できます。

2.2 イベントトリガー

Azure Functions は、さまざまなトリガーをサポートしており、イベントが発生したときに自動的に実行されます。トリガーの例としては、HTTP リクエスト、タイマー、Azure Storage キュー、Azure Event Hubs などがあります。

2.3 バインディング

Azure Functions は、バインディングを使用して、他の Azure サービスや外部システムと簡単に統合できます。バインディングの例としては、Azure Storage、Azure Cosmos DB、SendGrid などがあります。

2.4 複数の言語サポート

Azure Functions は、C#、Java、JavaScript、Python、PowerShell などの複数のプログラミング言語をサポートしています。

2.5 従量課金

Azure Functions は、コードの実行時間とリソースの使用量に対してのみ料金が発生します。アイドル状態のときは料金は発生しません。

2.6 スケーラビリティ

Azure Functions は、アプリケーションの需要に基づいて、自動的にスケールアウト/スケールインします。

2.7 監視とロギング

Azure Functions は、Azure Monitor と統合されており、関数のパフォーマンスとヘルス状態を監視できます。また、関数のログを Azure Monitor Logs に収集し、分析できます。

3. アーキテクチャおよび技術要素

  1. ユーザーが Azure Portal、CLI、PowerShell、または SDK を介して Function App と Function を作成/管理。
  2. ユーザーは、トリガーの種類、言語、コードなどの Function 構成を指定。
  3. Azure が、Function を実行するためのインフラストラクチャを自動的にプロビジョニング。
  4. Function は、イベントが発生したときに実行される。
  5. Function は、バインディングを使用して、他の Azure サービスや外部システムと統合できる。

Azure Functions は、Azure Resource Manager (ARM) を使用して管理され、Azure の他のサービス (Azure Logic Apps、Azure Event Grid など) と統合できます。

4. セキュリティと認証・認可

  • Azure Active Directory (Azure AD): Azure AD を使用して、Function へのアクセスを制御できます。
  • Azure Role-Based Access Control (RBAC): RBAC を使用して、Function リソースへのアクセス権限を、ロールに基づいて付与/制限できます。
  • Function キー: Function キーを使用して、HTTP トリガーの Function へのアクセスを認証できます。
  • マネージドサービス ID (MSI): MSI を使用して、Function から他の Azure サービスへの安全なアクセスを認証できます。
  • App Service Environment (ASE) 統合: ASE で Function を実行して、ネットワーク分離とセキュリティを強化できます。

5. 料金形態

Azure Functions は主に以下に基づく料金体系です:

  • 実行時間: Function が実行された時間に応じて課金 (ミリ秒単位)。
  • 実行回数: Function が実行された回数に応じて課金。
  • メモリ使用量: Function が使用したメモリ量に応じて課金 (GB 秒単位)。

毎月、一定量の無料実行時間と実行回数が提供されます。

6. よくあるアーキテクチャ・設計パターン

  • API エンドポイント: Azure Functions を使用して、HTTP トリガーで API エンドポイントを構築できます。
  • イベント処理: Azure Functions を使用して、Azure Event Hubs、Azure Service Bus、Azure Storage キューなどのイベントを処理できます。
  • タイマーベースのジョブ: Azure Functions を使用して、タイマー トリガーで定期的なジョブを実行できます。
  • Webhooks: Azure Functions を使用して、Webhooks を処理し、外部システムと統合できます。
  • データ変換: Azure Functions を使用して、Azure Storage Blob や Azure Cosmos DB などのデータを変換できます。

7. 設定・デプロイ手順(ハンズオン例)

  1. Azure Portal、CLI、または PowerShell を使用して、リソースグループを作成。
  2. Function App を作成 (名前、リージョン、ランタイムスタックなどを指定)。
  3. Function を作成 (トリガーの種類、言語、コードなどを指定)。
  4. 必要に応じて、バインディングを追加 (Azure Storage、Azure Cosmos DB など)。
  5. Function をテストし、監視。
  6. 必要に応じて、Function キーを設定し、アクセスを制御。

8. 試験で問われやすいポイント

8.1 Azure Functions の基本的な概念

  • Q: Azure Functions とは何ですか?
    A: サーバーレスコンピューティングサービスで、イベントトリガー型のコードを簡単に実行できます。
  • Q: Azure Functions の主な利点は何ですか?
    A: サーバーレスコンピューティング、イベントトリガー、バインディング、複数の言語サポート、従量課金、スケーラビリティ。

8.2 トリガーとバインディング

  • Q: トリガーとは何ですか?
    A: Function の実行を開始するイベントです。
  • Q: バインディングとは何ですか?
    A: 他の Azure サービスや外部システムとの統合を容易にする方法です。
  • Q: 一般的なトリガーの種類は何ですか?
    A: HTTP、タイマー、Azure Storage キュー、Azure Event Hubs など。
  • Q: 一般的なバインディングの種類は何ですか?
    A: Azure Storage、Azure Cosmos DB、SendGrid など。

8.3 料金

  • Q: Azure Functions の料金はどのように計算されますか?
    A: 実行時間、実行回数、メモリ使用量に基づいて計算。

8.4 ユースケース

  • Q: Azure Functions の一般的なユースケースは何ですか?
    A: API エンドポイント、イベント処理、タイマーベースのジョブ、Webhooks、データ変換。

8.5 Azure Functions と他の Azure サービスの比較

  • Q: Azure Functions と Azure Logic Apps の違いは何ですか?
    A: Azure Functions はコードベースのイベント処理に適しており、Azure Logic Apps は GUI ベースのワークフローオーケストレーションに適しています。
  • Q: Azure Functions と Azure WebJobs の違いは何ですか?
    A: Azure Functions はサーバーレスでイベントトリガー型であり、Azure WebJobs は Azure App Service で実行されるバックグラウンドタスクです。

8.6 その他細かな試験ポイント

  • Consumption プラン、Premium プラン、App Service プラン
  • Function App のスケーリング
  • Function の監視とログ
  • Function キーの管理