メインコンテンツまでスキップ

手動リレー制御の追加

手順

サーバーレスコードは、HTTPリクエストを含むさまざまなトリガーによって起動できます。HTTPトリガーを使用してリレー制御に手動オーバーライドを追加し、Webリクエストからリレーをオンまたはオフにすることができます。

この課題では、学んだことを再利用してデバイスにコマンドを送信するために、リレーをオンおよびオフにするための2つのHTTPトリガーをFunctions Appに追加する必要があります。

いくつかのヒント:

  • 次のコマンドを使用して、既存のFunctions AppにHTTPトリガーを追加できます:

    func new --name <trigger name> --template "HTTP trigger"

    <trigger name>をHTTPトリガーの名前に置き換えます。relay_onrelay_offのような名前を使用します。

  • HTTPトリガーにはアクセス制御が可能です。デフォルトでは、関数固有のAPIキーをURLと共に渡して実行する必要があります。この課題では、誰でも関数を実行できるようにこの制限を解除できます。これを行うには、HTTPトリガーのfunction.jsonファイルのauthLevel設定を次のように更新します:

    "authLevel": "anonymous"

    💁 このアクセス制御の詳細については、Function access keys documentationを参照してください。

  • HTTPトリガーはデフォルトでGETおよびPOSTリクエストをサポートしています。つまり、Webブラウザを使用して呼び出すことができます - WebブラウザはGETリクエストを行います。

    Functions Appをローカルで実行すると、トリガーのURLが表示されます:

    Functions:

    relay_off: [GET,POST] http://localhost:7071/api/relay_off

    relay_on: [GET,POST] http://localhost:7071/api/relay_on

    iot-hub-trigger: eventHubTrigger

    URLをブラウザに貼り付けてreturnを押すか、VS CodeのターミナルウィンドウでリンクをCtrl+クリック(macOSではCmd+クリック)してデフォルトのブラウザで開きます。これによりトリガーが実行されます。

    💁 URLには/apiが含まれていることに注意してください - HTTPトリガーはデフォルトでapiサブドメインにあります。

  • Functions Appをデプロイすると、HTTPトリガーのURLは次のようになります:

    https://<functions app name>.azurewebsites.net/api/<trigger name>

    ここで、<functions app name>はFunctions Appの名前、<trigger name>はトリガーの名前です。

ルーブリック

基準模範的適切改善が必要
HTTPトリガーの作成リレーをオンおよびオフにするための適切な名前の2つのトリガーを作成した適切な名前の1つのトリガーを作成したトリガーを作成できなかった
HTTPトリガーからのリレー制御両方のトリガーをIoT Hubに接続し、リレーを適切に制御できた1つのトリガーをIoT Hubに接続し、リレーを適切に制御できたトリガーをIoT Hubに接続できなかった