Amazon Location Service入門ワークショップの前提環境準備
2023/02/05
Amazon Location Service入門ワークショップの前提環境を構築しました。
Cloud9環境を構築して、Githubリポジトリのクローン、jqツールのインストール、AWS CLIのアップグレード、前提条件パッケージのインストールをしました。
ここから、Amazon Location Serviceのリソース作成です。
CloudFormationテンプレートも用意されていましたが、あえて1つづつ用意されたコマンドで作成しました。
目次
関連記事
- Amazon Location Service入門ワークショップ-マップの操作
- Amazon Location Service入門ワークショップ-ジオコーディング
- Amazon Location Service入門ワークショップ-ルート計算
- Amazon Location Service入門ワークショップ-トラッカー
- Amazon Location Service入門ワークショップ-ジオフェンス
マップの作成
1 2 |
aws location create-map --configuration Style=VectorEsriStreets --map-name WorkshopMap --pricing-plan RequestBasedUsage |
マップが作成されました。
プレースインデックスの作成
1 2 |
aws location create-place-index --data-source Esri --index-name WorkshopIndex --pricing-plan RequestBasedUsage |
プレースインデックスが作成されました。
ルート計算リソースの作成
1 2 |
aws location create-route-calculator --calculator-name WorkshopRoutes --pricing-plan RequestBasedUsage --data-source Esri |
ルート計算リソースが作成されました。
ジオフェンスコレクションの作成
1 2 |
aws location create-geofence-collection --collection-name WorkshopCollection --pricing-plan RequestBasedUsage |
ジオフェンスコレクションができました。
ジオフェンスコレクションは一定の範囲内の出入りをイベントとして扱いますので、EventBridgeルールが必要です。
1 2 |
aws events put-rule --name "LocationGeofence" --event-pattern "{\"source\": [\"aws.geo\"],\"detail-type\": [\"Location Geofence Event\"]}" |
続いてEventBridgeルールを作成しました。
1 2 |
aws logs create-log-group --log-group-name /aws/events/AmazonLocationMonitor-WorkshopCollection |
CloudWatch Logsグループを作成しました。
1 2 |
aws events put-targets --rule LocationGeofence --targets "Id"="1","Arn"=`aws logs describe-log-groups --log-group-name-prefix /aws/events/AmazonLocationMonitor-WorkshopCollection | jq -r ".logGroups[].arn"` |
ターゲットにCloudWatch Logsへの送信を設定しました。
1 2 |
aws logs put-resource-policy --policy-name EventBridgeToCloudwatch --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "EventBridgetoCWLogsCreateLogStreamPolicy", "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream" ], "Resource": [ "*" ] }, { "Sid": "EventBridgetoCWLogsPutLogEventsPolicy", "Effect": "Allow", "Principal": { "Service": [ "events.amazonaws.com" ] }, "Action": [ "logs:PutLogEvents" ], "Resource": [ "*" ] } ] }' |
EventBridgeからターゲットにCloudWatch Logsを設定して送信するには、CloudWatch Logsのリソースベースのポリシーが必要です。
正常に設定されたかを確認するには、describe-resource-policiesで確認できます。
1 2 |
aws logs describe-resource-policies |
トラッカーリソースの作成
1 2 |
aws location create-tracker --tracker-name WorkshopAssets |
トラッカーリソースを作成しました。
Cognito IDプールの作成
Cognito IDプールを作成して、認証されていないIAMロールのポリシーに次のポリシーを設定しました。
作成した、MAP、プレースインデックス、ルート計算、ジオフェンス、トラッカーへのアプリケーションからのアクセスを許可します。
WorkshopMap*としているのはワークショップでほかのマップも呼び出す手順があるので、Workshopから始まる名前のマップに対応しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Maps", "Effect": "Allow", "Action": [ "geo:GetMap*" ], "Resource": "arn:aws:geo:us-east-1:123456789012:map/WorkshopMap*" }, { "Sid": "Places", "Effect": "Allow", "Action": [ "geo:SearchPlaceIndex*" ], "Resource": "arn:aws:geo:us-east-1:123456789012:place-index/WorkshopIndex" }, { "Sid": "Routes", "Effect": "Allow", "Action": [ "geo:CalculateRoute" ], "Resource": "arn:aws:geo:us-east-1:123456789012:route-calculator/WorkshopRoutes" }, { "Sid": "Geofences", "Effect": "Allow", "Action": [ "geo:ListGeofences", "geo:PutGeofence", "geo:BatchDeleteGeofence" ], "Resource": "arn:aws:geo:us-east-1:123456789012:geofence-collection/WorkshopCollection" }, { "Sid": "Trackers", "Effect": "Allow", "Action": [ "geo:ListDevicePositions", "geo:BatchUpdateDevicePosition", "geo:GetDevicePositionHistory" ], "Resource": "arn:aws:geo:us-east-1:123456789012:tracker/WorkshopAssets" } ] } |
アプリの起動テスト
Cloud9にクローンしたリポジトリに含まれるサンプルアプリでテストしました。
ワークショップ手順で指定されているとおり、configuration.jsにCognito IDプールIDを設定して、他の値を設定しました。
amolify-ui-geo-exploreディレクトリで npm startを実行しました
Cloud9のプレビュー機能でアプリの起動が確認できました。
ここから、マップ、ジオコーディング、ルート計算、トラッカー、ジオフェンスそれぞれの機能をこのアプリを使って試します。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
よくあるサーバーレスアーキテクチャで質問フォーム
この記事はServerless2 Advent Calendar 2018に参加 …
-
-
Backlogの実績工数をAmazon QuickSightでの可視化 – 仕組み編
Backlogの実績工数をAmazon QuickSightで可視化してわかった …
-
-
EC2 Dedicated Hosts(専有ホスト)を起動
クォータ引き上げ 新規で作成したアカウントではDedicated Hostsがソ …
-
-
EFSのマウントターゲットがデフォルトで作成されるようになってました
ひさしぶりにAmazon EFSファイルシステムを作成しました。 作成手順がすご …
-
-
IAMセッションポリシーの利用(GetFederationToken)
GetFederationTokenでのセッションポリシーは、呼び出し元のIAM …
-
-
Microsoft TeamsのIncoming Webhooksを使ってAWS Lambda(Python)からFeedlyの記事を自動投稿する
Microsoft Teamsの検証を始めましたので、Slackで自動化している …
-
-
「re:CAP ~サーバーワークス re:Invent 2018 報告会~」でre:Invent2018について思われたことを聞かせていただいた
サーバーワークスさんのre:Invent re:CAPにおじゃましました。 re …
-
-
LINE Bot APIのファーストステップをLambda+API Gatewayでやってみたらものすごく簡単で驚いた
トライアル当初はホワイトリストのしばりや、初回反応するまで時間がかかったりとみな …
-
-
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」執筆裏話
今日2019/4/20発売となりました「AWS認定資格試験テキスト AWS認定ク …
-
-
AWS Code Commitをプライベートリポジトリとして使う
GitHubでもいいんですが、アクセスキーとかパスワードとかコンフィグ系で書いて …