AWS 각서 - boto3을 사용하여 IoT core 엔드포인트 얻기 -

IoT core를 사용하기 위해서는 클라이언트로부터 커스텀 엔드포인트를 취득할 필요가 있으므로, 취득할 수 있을 때까지의 순서를 각서해 둔다.

필요한 것 설치



파이썬으로 boto3과 AWS 클라이언트

boto3


pip3 install boto3

AWS 클라이언트



키 세트 얻기



우선 액세스 키와 비밀 키가 필요합니다.

계정의 IAM → 액세스 관리 → 사용자 → 액세스 키로 이동합니다.

액세스 키를 만들고 비밀 키를 얻습니다 (한 번만 얻을 수 있으므로 분실에주의하십시오).

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 → 설정으로 진행할 것으로 보인다.


클라이언트에서 엔드포인트 가져오기



파이썬에서 가져옵니다.
> 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='***')

좋은 웹페이지 즐겨찾기