1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS覚書 - boto3を使ってIoT coreのエンドポイントを取得する -

Last updated at Posted at 2021-02-13

IoT coreを使用するのに、クライアントからカスタムエンドポイントを取得する必要があるので、取得できるようになるまでの手順を覚書しておく。

必要なもののインストール

pythonへboto3と、AWSクライアント

boto3

pip3 install boto3

AWSクライアント

キーセットの取得

まずはアクセスキーとシークレットーキーが必要

アカウントの IAM → アクセス管理 → ユーザー → アクセスキー と進む。
スクリーンショット 2021-02-13 12.21.02.png
アクセスキーを作成してシークレットキーを取得する(一度しか取得できないので紛失に注意する)。

AWSクライアントへのキーセットの登録

> aws configure --profile <プロファイル名(自由な名前でOK)>
AWS Access Key ID [None]: <取得したアクセスキー>
AWS Secret Access Key [None]: <取得したシークレットキー>
Default region name [None]: <デフォルトで使用したいリージョン、東京ならば「ap-northeast-1」>
Default output format [None]: json

プロファイルを作成したらプロファイルをデフォルト設定する

> set AWS_DEFAULT_PROFILE= <先ほど作成したプロファイル名>

ちゃんとキーセットが設定されているか確認する。

> aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************3LHQ shared-credentials-file    
secret_key     ****************vexf shared-credentials-file    
    region                us-east-2      config-file    ~/.aws/config

以下のファイルに、それっぽいのがあるか確認できる。

> cat ~/.aws/credentials

IoT coreのエンドポイントを確認

Iot core → 設定 と進むとみれる。
スクリーンショット 2021-02-13 12.40.04.png

クライアントからエンドポイントの取得

pythonから取得する。

> python
Python 3.8.2 (default, Apr 27 2020, 13:03:04) 
[Clang 10.0.0 (clang-1000.10.44.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> client = boto3.client('iot', region_name='ap-northeast-1')
>>> endpoint_response = client.describe_endpoint(endpointType='iot:Data-ATS')
>>> print(endpoint_response)
{'ResponseMetadata': {'RequestId': '**************', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 13 Feb 2021 03:42:30 GMT', 'content-type': 'application/json', 'content-length': '74', 'connection': 'keep-alive', 'x-amzn-requestid': '****************', 'access-control-allow-origin': '*', 'x-amz-apigw-id': '********', 'x-amzn-trace-id': 'Root=****************'}, 'RetryAttempts': 0}, 'endpointAddress': '<ここが実際に取得したいエンドポイントになる>'}

整形

{
	"ResponseMetadata": {
		"RequestId": "**************",
		"HTTPStatusCode": 200,
		"HTTPHeaders": {
			"date": "Sat, 13 Feb 2021 03:42:30 GMT",
			"content-type": "application/json",
			"content-length": "74",
			"connection": "keep-alive",
			"x-amzn-requestid": "****************",
			"access-control-allow-origin": "*",
			"x-amz-apigw-id": "********",
			"x-amzn-trace-id": "Root=****************"
		},
		"RetryAttempts": 0
	},
	"endpointAddress": "<ここが実際に取得したいエンドポイントになる>"
}

画面でみたエンドポイントと同じであるか確認する。

boto3.client の部分は、キーセット直接指定でも問題ない。

>>> client = boto3.client('iot', region_name='ap-northeast-1', aws_access_key_id='***', aws_secret_access_key='***')
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?