[aws IoT core] Edukit の Lチカチュートリアルでハマった

AWS Edukit のチュートリアルの、
Lチカの
Lチカのシリアル出力確認部分
ここで、以下のようなエラーが出て、先に進めなかった。

簡単に解決方法は、
Blinky-Hello-World 直下にある、sdkconfig の CONFIG_AWS_IOT_MQTT_HOST に、

の実行結果表示されるエンドポイントを入れてあげる。

sdkconfig.defaults の方には、

と記載があって、
sdkconfig の方は、

となっていて、おそらく””で上書きされてる模様。

の形にしたら、Lチカ成功した。




[aws] vpc 内部にある lambda から SageMaker を触る

vpc 内部にある lambda の function から、SageMaker のオブジェクトを触る機会があったのですが、
設定に四苦八苦して、うまく疎通が出来なかったので方法を記載しておきます。

SageMaker 以外のサービスでもSageMakerの部分を読み替えれば同様にいけると思います。

ソースは、python でソースの書き方は、sagemaker boto3 とかで適当に検索すれば辿り着くと思います!

  1. role に permissions を追加する
    1. Configuration から、 Permissions を選択し、Role の リンクを押下(赤い部分)
      lambda の role リンク
    2. Permissions で、Add permissions で 権限を追加。すでに権限がある場合は Attach policies でもいいです。
      今回は新規に作成することにします。 Create inline policy をクリック(赤い部分)
      role の persmissions
    3. JSON タブを選択して、以下のJSONを指定します。

      Review policy を押下します。名前は適当にわかりやすい名前をつけて下さい
      permission sage maker all

      SageMaker に関する権限を大幅に付与しましたが、制限する場合は適宜ActionなりResourceなりを絞って下さい。
  2. vpc が 所属している Security groups を確認
    lambda vpc link

    赤い所を覚えておく
    そして、vpc のリンクを押下
  3. Endpoints を押下
    vpc endpoint link
  4. Create endpoint を押下
    create endpoint
  5. Service category で、 AWS services を選択
    Services から、 com.amazonaws.us-east-1.sagemaker.api を選択。
    今回は、モデル一覧の取得という処理だったのでこのサービスを選択したが、
    Notebook や、Studioをいじる場合はサービスが分かれているので適宜選択する。
    choose service
  6. vpc では、lambdaと同じvpcを選択
    vpc select

  7. 接続に使うサブネットを選択する
    choose subnet

    こちらは、labmbdaが利用しているsubnetを同様にします。

  8. セキュリティーグループを設定
    lambdaのvpcの設定で利用しているのと同じセキュリティーグループにします。
    choose security group

とりあえず、lambda から SageMaker を触るための設定です。