Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

チュートリアル: MQTT で AWS Lambda を使用する

フォーカスモード
チュートリアル: MQTT で AWS Lambda を使用する - Amazon Location Service

AWS IoT と Amazon Location の接続を確立するには、EventBridge CloudWatch イベントによって転送されたメッセージを処理する Lambda 関数が必要です。この関数は、位置データをすべて抽出し、Amazon Location の形式にして、Amazon Location Tracker API を使用して送信します。

以下の手順では、Lambda コンソールを使用してこの関数を作成する方法を示します。

  1. コンソールを開きます。

  2. ナビゲーションペインで、[関数] を選択します。

  3. [関数を作成] を選択し、[一から作成] オプションが選択されていることを確認します。

  4. [関数名] を入力し、[ランタイム] オプションで [Node.js 16.x] を選択します。

  5. 機能の作成を選択します。

  6. [コード] タブを開いてエディタにアクセスします。

  7. index.js ファイルのプレースホルダーコードを以下のコードで上書きします。

    const AWS = require('aws-sdk') const iot = new AWS.Iot(); exports.handler =  function(event) {   console.log("event===>>>", JSON.stringify(event));   var param = {     endpointType: "iot:Data-ATS"   };   iot.describeEndpoint(param, function(err, data) {     if (err) {       console.log("error===>>>", err, err.stack); // an error occurred     } else {       var endp = data['endpointAddress'];       const iotdata = new AWS.IotData({endpoint: endp});           const trackerEvent = event["detail"]["EventType"];       const src = event["source"];       const time = event["time"];       const gfId = event["detail"]["GeofenceId"];       const resources = event["resources"][0];         const splitResources = resources.split(".");         const geofenceCollection = splitResources[splitResources.length - 1];       const coordinates = event["detail"]["Position"];                                     const deviceId = event["detail"]["DeviceId"];       console.log("deviceId===>>>", deviceId);       const msg =  {           "trackerEventType" : trackerEvent,           "source" : src,           "eventTime" : time,           "geofenceId" : gfId,           "coordinates": coordinates,           "geofenceCollection": geofenceCollection         };       const params = {         topic: `${deviceId}/tracker`,         payload: JSON.stringify(msg),         qos: 0       };       iotdata.publish(params, function(err, data) {           if (err) {             console.log("error===>>>", err, err.stack); // an error occurred           } else {             console.log("Ladmbda triggered===>>>", trackerEvent);  // successful response           }       });     }   }); }
  8. [デプロイ] を押して、更新された関数を保存します。

  9. 次に、[設定] タブを開きます。

  10. [トリガー] セクションで、[トリガーを追加] ボタンを押します。

  11. [ソース] フィールドで [EventBridge (CloudWatch Events)] を選択します。

  12. [既存のルール] オプションを選択します。

  13. ルール名 (AmazonLocationMonitor-GEOFENCECOLLECTION_NAME など) を入力します。

  14. [追加] ボタンを押します。

  15. これにより、アクセス許可タブにリソースベースのポリシーステートメントもアタッチされます。

次は、AWS IoT を使用して MQTT テストクライアントを設定します。以下の手順に従ってください。

  1. https://console.aws.amazon.com/iot/ を開きます。

  2. 左側のナビゲーションペインで、[MQTT テストクライアント] を選択します。

  3. [MQTT テストクライアント] というセクションが表示され、そこで MQTT 接続を設定できます。

  4. 必要な設定を行った後、[接続] ボタンをクリックして、指定したパラメータを使用して MQTT ブローカーへの接続を確立します。

  5. 後でチュートリアルで使用するため、エンドポイントは記録しておいてください。

    テストクライアントに接続すると、MQTT テストクライアントインターフェイスに用意されている各入力フィールドを使用して、MQTT トピックにサブスクライブしたり、トピックにメッセージをパブリッシュしたりできます。次に、AWS IoT ポリシーを作成します。

  6. 左側のメニューの [管理] で、[セキュリティ] オプションを展開し、[ポリシー] をクリックします。

  7. [ポリシーを作成] ボタンをクリックします。

  8. ポリシー名を入力します。

  9. [ポリシードキュメント][JSON] タブを選択します。

  10. 以下に示すポリシーをコピーして貼り付けます。ただし、すべての要素を実際の REGIONACCOUNT_ID で更新してください。

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "iot:Connect", "iot:Publish", "iot:Subscribe", "iot:Receive" ], "Resource": [ "arn:aws:iot:REGION:ACCOUNT_ID:client/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}", "arn:aws:iot:REGION:ACCOUNT_ID:topicfilter/${cognito-identity.amazonaws.com:sub}/*", "arn:aws:iot:REGION:ACCOUNT_ID:topic/${cognito-identity.amazonaws.com:sub}/tracker" ], "Effect": "Allow" } ] }
  11. [作成] ボタンを選択して終了します。

前の手順が完了したら、以下のようにゲストロールのアクセス許可を更新します。

  1. Amazon Cognito に移動し、アイデンティティプールを開きます。次に、[ユーザーアクセス] に進み、[ゲストロール] を選択します。

  2. [アクセス許可ポリシー] をクリックして、[編集] を有効にします。

    { 'Version': '2012-10-17', 'Statement': [ { 'Action': [ 'geo:GetMap*', 'geo:BatchUpdateDevicePosition', 'geo:BatchEvaluateGeofences', 'iot:Subscribe', 'iot:Publish', 'iot:Connect', 'iot:Receive', 'iot:AttachPrincipalPolicy', 'iot:AttachPolicy', 'iot:DetachPrincipalPolicy', 'iot:DetachPolicy' ], 'Resource': [ 'arn:aws:geo:us-east-1:{USER_ID}:map/{MAP_NAME}', 'arn:aws:geo:us-east-1:{USER_ID}:tracker/{TRACKER_NAME}', 'arn:aws:geo:us-east-1:{USER_ID}:geofence-collection/{GEOFENCE_COLLECTION_NAME}', 'arn:aws:iot:us-east-1:{USER_ID}:client/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID}:topic/${cognito-identity.amazonaws.com:sub}', 'arn:aws:iot:us-east-1:{USER_ID}:topicfilter/${cognito-identity.amazonaws.com:sub}/*', 'arn:aws:iot:us-east-1:{USER_ID}:topic/${cognito-identity.amazonaws.com:sub}/tracker' ], 'Effect': 'Allow' }, { 'Condition': { 'StringEquals': { 'cognito-identity.amazonaws.com:sub': '${cognito-identity.amazonaws.com:sub}' } }, 'Action': [ 'iot:AttachPolicy', 'iot:DetachPolicy', 'iot:AttachPrincipalPolicy', 'iot:DetachPrincipalPolicy' ], 'Resource': [ '*' ], 'Effect': 'Allow' } ] }
  3. 上記のポリシーの変更により、アプリケーションに必要なすべての AWS リソースが適切に設定されました。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.