🤖

AWS SDK for Go V2のiotdataplaneを使ってPublishする方法

2021/02/24に公開

AWS SDK for Go V2のiotdataplaneを使ってPublishする方法です。
1.AWSIoTFullAccess(実際は適宜権限を絞ってください)を持っているIAMユーザーで
 アクセスキー、シークレットキーを生成

2.EC2に環境変数を設定する

export AWS_REGION=ap-northeast-1
export AWS_ACCESS_KEY_ID=YOUR_AKID
export AWS_SECRET_ACCESS_KEY=YOUR_SECRET_KEY

3.AWS SDK for Go V2をインストール

go get github.com/aws/aws-sdk-go-v2
go get github.com/aws/aws-sdk-go-v2/config
go get github.com/aws/aws-sdk-go-v2/service/iotdataplane

4.Goのコードを書く

	//AWSの設定情報を取得
	cfg, err := config.LoadDefaultConfig(context.TODO())
	if err != nil {
		return err
	}

	//IoTClientを生成
	iotClient := iotdataplane.NewFromConfig(cfg)

	//topic名を設定
	topicName := test/publish

	//MQTTトピックとデータとQosを設定
	//PayloadDataは構造体
	publishJsonData, _ := json.Marshal(PayloadData)

	params := &iotdataplane.PublishInput{
		Topic:   &topicName,
		Payload: publishJsonData,
		Qos:     1,
	}

	//publish
	result, err := iotClient.Publish(context.TODO(), params)

	if err != nil {
		return err
	}

	fmt.Printf("%+v", result)
	return nil

参考
Getting Started with the AWS SDK for Go V2
https://aws.github.io/aws-sdk-go-v2/docs/getting-started/
https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/

iotdataplane
https://pkg.go.dev/github.com/aws/aws-sdk-go-v2/service/iotdataplane

AWS IoT Core(HTTPS POSTを使ってメッセージのPublish)の公式サイト
https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/http.html

Discussion