You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/ja/2-farm/lessons/5-migrate-application-to-th.../assignment.md

4.3 KiB

手動リレー制御を追加する

手順

サーバーレスコードは、HTTPリクエストを含むさまざまな方法でトリガーされます。HTTPトリガーを使用してリレー制御に手動オーバーライドを追加することで、ウェブリクエストを通じてリレーをオンまたはオフにすることができます。

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

いくつかのヒント:

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

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

    <trigger name>をHTTPトリガーの名前に置き換えてください。relay_onrelay_offのような名前を使用すると良いでしょう。

  • HTTPトリガーにはアクセス制御を設定できます。デフォルトでは、URLと一緒に関数固有のAPIキーを渡す必要があります。この課題では、この制限を解除して誰でも関数を実行できるようにします。そのためには、HTTPトリガーのfunction.jsonファイル内のauthLevel設定を以下のように更新してください:

    "authLevel": "anonymous"
    

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

  • HTTPトリガーはデフォルトでGETおよびPOSTリクエストをサポートしています。つまり、ウェブブラウザを使用して呼び出すことができます。ウェブブラウザは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キーを押すか、ターミナルウィンドウのリンクを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に接続できなかった

免責事項:
この文書は、AI翻訳サービス Co-op Translator を使用して翻訳されています。正確性を追求しておりますが、自動翻訳には誤りや不正確な部分が含まれる可能性があることをご承知ください。元の言語で記載された文書が正式な情報源とみなされるべきです。重要な情報については、専門の人間による翻訳を推奨します。この翻訳の使用に起因する誤解や誤認について、当方は一切の責任を負いません。