LoginSignup
2
1

More than 1 year has passed since last update.

Node-REDでストレージサービスを使う(AWS S3編)

Last updated at Posted at 2022-11-30

はじめに

Node-REDでファイルをクラウドに保存したい時があります。
世の中には様々なクラウド型のストレージサービスがありますが、今回はAWSのS3ノードの使い方をご紹介します。

AWSの設定

まずはAWSの設定をしましょう。

バケットを作成する

S3のメニューを選択します

image.png

バケットを作成します

バケット名やリージョンを選択します。この設定をあとでNode-REDの設定画面で使用します。

image.png

IAMでユーザーを作る

IAMのメニューを選択します

image.png

ユーザーを追加します

image.png

ポリシーを追加します

ここではAmazonS3FullAccessを付与します。

image.png

ユーザーの作成ボタンを押してユーザーを作成します。

image.png

認証情報を入手

認証情報画面が表示されます。こちらのアクセスキーIDとシークレットアクセスキーがこのあと必要になりますので、この画面は開いたままにしましょう。このあとのNode-REDの設定画面で使用します。

スクリーンショット 2022-11-25 11.34.57.png

Node-REDの準備

enebular.comなどのNode-REDを使用できる環境を用意します。

Node-REDのインストール

パレットの管理から、node-red-contrib-s3を検索して追加します。(下の画像は追加した後です。)
image.png

ノードをパレット上に配置してフローを以下の様に接続します。
image.png

ノードの設定

S3ノードの設定をします。

認証

先ほどAWSのIAMの画面で取得したアクセスキーIDとシークレットアクセスキーを入力しましょう。シークレットアクセスキーは表示リンクをクリックして表示させてから入力します。

image.png

putノード

S3 putノードはファイルを送信したり、作ったりするノードです。
例えば、

  • Bucketがtest-20221125
  • リージョンがus-east-1
  • ファイル名がtest.txt
  • Content EncodingがUTF-8
    のファイルにする場合、以下の画像の様に設定します。

image.png

getノード

S3 getノードはファイルを読み取ったりするノードです。
例えば、

  • Bucketがtest-20221125
  • リージョンがus-east-1
  • ファイル名がtest.txt
  • payloadで読み取った結果をUTF-8の文字列
    にする場合、以下の画像の様に設定します。

image.png

完成したフロー

以下の画像の様なフローを作成して、injectボタンを押してみましょう。

image.png

putした場合

putしたときのAWS S3のバケットは以下の通りです

image.png

テキストファイルが生成されており、ダウンロードしてみるとinjectノードが生成したタイムスタンプが書き込まれています。

スクリーンショット 2022-11-25 11.42.15.png

getした場合

S3上のテキストファイルから読み取ることができています。
msgオブジェクトは以下のようになっており、ファイルに書き込まれている文字列をpayloadに読み取ることができました。

{"_msgid":"8e01205d11c1df33","payload":"1669344017416","topic":"","bucket":"test-20221125","filename":"test.txt"}

まとめ

今回は以下のノードを使用しました。
ご参考になれば幸いです。

2
1
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
2
1