クラウド実行環境で気象庁の天気予報データを定期的に Airtable に蓄積する

今回は、気象庁の天気予報データを enebular クラウド実行環境で定期的に Airtable に蓄積するフローを作ってみましょう。Airtable は、ノーコードで使える、クラウド型のデータベース管理に特化したツールです。スプレッドシートのような操作感でデータを管理でき、enebular との相性も良いです。

気象庁の天気予報データとは

こちらの記事などが参考になります。

気象庁公式の天気予報の情報(JSON)を curl・Node.js で取得し Node.js での処理を試す – Qiita

一番伸びてるのはこれかしら。仕様の継続性や運用状況のお知らせを気象庁はお約束していないという意味で、APIではないと申し上げざるを得ないのですが、一方で政府標準利用規約に準拠してご利用いただけます。 https://t.co/QLuhI4DNDv— TOYODA Eizi (@e_toyoda) February 24, 2021

とのことで、気象庁は仕様の継続性や運用状況のお知らせを約束していないものの、政府標準利用規約に準拠して利用でき気象庁の天気予報データを取得できるので、定期的に Airtable に蓄積する仕組みを作れます。

Airtable の準備

はじめに、データを蓄積するAirtable の準備です。

Airtable の API Key の準備

スプレッドシートのようにデータ管理できる Airtable を Node-RED ノードでセットアップしてみる | enebular blog

こちらの記事を参考に、Airtable の API Key の準備しておきましょう。

データのかたまり Base を準備する

AirTable ではスプレッドシートのようなデータのかたまりを Base と呼びます。

image

自分のアカウントの画面から Add a base を押してはじめます。

image

Untitled Base ができます。

image

Table 1 を見ます。Name ・ Notes ・ Attachments ・ Status という列ができています。

これを今回のフローで書き出すデータに合わせて修正します。今回はとてもシンプルにします。

  • Name
    • 名前を Id に変更
  • Notes
    • 名前を Text に変更
  • Attachments
    • 削除
  • Status
    • 削除
  • CreateAt
    • +ボタンから新しく

Status の削除

image

まず Status は削除します。

Attachments の削除

image

つづいて Attachments も削除します。

Name の名前変更

image

Name の欄から Customize field type をクリックします。

image

こちらの画面で Name を Id に変更します。

image

Id に変更したら Save をクリックします。

Notes の名前変更

image

同じように Notes を Text に変更して Save をクリックします。

CreateAt の新規作成

image

Id の項目の横にある+をクリックして新しい項目を作成します。

image

名前を CreateAt として、タイプを Single line text でクリックします。

image

設定内容を確認して Create fields をクリックします。

image

これで作成は完了です。

初期データの削除

3 行ほど空データがあるので削除しておきます。

image

各行の横にチェックボックスがあるのでクリックして選択します。

image

3 行選択できたら、

image

右クリックをして Delete all select records をクリックします。

image

無事削除できました。

テーブル名を変更

image

テーブル名を Table 1 から WeatherRecord に変更します。

今回作った Base の ID を取得する

image

アカウントでログインした状態で REST API という各 Base の API 取得方法が見られるページに移動します。

  • REST API
  • https://airtable.com/api

移動して、

image

今回作った Base をクリックします。

image

INTRODUCTION が表示されるので The ID of this base is のところの app ではじまる Base ID をメモしておきます。

実行環境用のプライベートノードを準備

こちらの記事 参考に今回インポートするプロジェクトにクラウド実行環境用のプライベートノードをインストールします。

image

Discover Flow

image

今回の Discover Flow はこちらです。 → ldcp-tenki-api-record-airtable

image

こちらをインポートして、

エディタで表示しましょう。

Airtable ノードの設定

image

Airtable ノードをダブルクリックします。

image

テーブル名は WeatherRecord で、先ほど設定したテーブル名と同じであることを確認します。

image

Set API Key の横の鉛筆ボタンをクリックして、設定を編集します。

image

プロパティを以下のように設定します。

  • API Key
    • さきほどメモした Airtable の API Key
  • Base Id
    • さきほどメモした今回作った Base の ID

を設定して更新ボタンクリックして、

image

完了ボタンをクリックして、

image

ワークスペースに戻って保存ボタンをクリックします。

これで設定は完了です。

動かしてみる

image

ワークスペースにある、「タイムスタンプ」と書かれている inject ノード(図中の赤い矢印部分)をクリックします。

image

このように、デバッグタブに天気予報データが表示されればうまく動作しています。

image

Airtable の今回の Base を確認してデータが入っていれば Airtable の設定もうまく動作しています。

実行環境で 1 時間の定期実行で設定してみる

このフローを定期実行する実行環境で動かします。

新リリースのenebularクラウド実行環境の使い方 | enebular blog

上記の記事をベースに、クラウド実行環境を作成します。フローをデプロイします。

image

設定でスケジュールトリガーを ON にして 毎時 5 分の実行にします。

これで、1 時間ごとのスケジュール実行を設定できたので、定期的に Airtable に気象庁の天気予報データ貯めていきましょう!