田中ブログ

さいたまに住んでいる男です。仕事はSESでプログラムを書いてることが多いです。聖地巡礼、日々の生活、技術的なことを書いていこうと思います。

AWS Lambda(Node.js)でasync/awaitでS3の操作をする

 技術ネタを。
AWS Lambda(Node.js)でasync/awaitする。です。
Node.jsのバージョンは、8.10です。
 
async/awaitを利用した目的ですが、lambdaで以下のような処理を行いたかったためです。

①s3にアップロードされたzipファイルを解凍(lambdaにトリガー設定)
②古いファイルを削除

まあ、async/awaitを使わなくても動きそうですが、①が終わってから②の処理を行う方が素敵な感じなので。。。

コードは以下のイメージです。手元で実行できないのでイメージですみません。。
s3の各関数をコールするときにawaitを付ける感じです。

var AWS   = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = async (event, context) => {
   try {
    var s3Object = await s3.getObject(ここにパラメータ).promise();

    // zip解凍処理。node-zipとかで解凍。

    var arr = [];
    //  foreachでs3.putObjectするpromiseを作り配列にpush

    // putObjectを実行
    await Promises.all(arr);

    // 削除対象のリストを取得
    await s3.listObjects(ここにパラメータ).promise();

    var delArr = [];
    // foreachでs3.deleteObjectするpromiseを作り配列にpush

    await Promises.all(delArr);
  } catch(err) {
    console.log(err);
  }
}

 
handlerのところで、asyncと書くことで処理中でawaitが利用できるとのこと。
awaitを付けると、awaitを付けた処理が終了するまで待ってくれる。ちなみに結果も普通に取得できる。

s3.getObject(~).promise()のところですが、引数にコールバックを書いた場合にgetObjectが2回実行されました。
なので引数のコールバックは不要。

s3へのputやdeleteですが、forEachなどでやろうと思ったのですがawaitは使えないとのことで、promiseの配列を作成して、Promises.allで実行という形としました。
これだとS並列で実行してくれるようでなおいい感じですね。

 
以上

函館への旅(前編)

今回は2泊3日で函館にいってきました。ラブライブサンシャインの聖地もしっかりまわってきました。

ざっと下調べをした感じで、3日あるということと、観光スポットが密集している&聖地巡礼含めてチェックしたい場所がそこまでの数でなかったので、公共交通機関を利用するようにしました。あと、公共交通機関や観光スポットの入場料など、多くの場所でsuicaで決済できたので何気に便利でした。

結果的にこれは正解だったなあと。レンタカーを借りて行動していた場合、2日目で見たい場所をすべて見終わりそうな感じでした。ちなみに12月後半に行きましたが、この時点で歩道は大体凍っていたので、歩行注意ですね。

五稜郭タワー & ハセガワストア

まずは、元町などのエリアから離れていた五稜郭タワーへ行きました。市電で五稜郭公園前まで行き、そこから徒歩で向かいました。

道中でハセガワストアに立ち寄り、やきとり弁当を食べました。やきとりなのに豚串ということでちょっと驚きましたね。

 ▼豚串でご飯が進みます。3種類の豚串が入っている弁当を食べました。

f:id:tanaka653:20190106114417j:plain

腹ごしらえをしたら五稜郭タワーへ。

▼道中はビルに隠れて中々見えませんでしたが、そこそこの高さです!

f:id:tanaka653:20190106114703j:plain

1Fでチケットを購入してエレベーターに乗りこみ展望台へ。展望台には、歴史上の出来事が模型付きで解説あったりして勉強になりました。

五稜郭を眺める。町中にこんな場所があるのはすごいなあと。昔はお濠の氷を売ったりしていたようです。

f:id:tanaka653:20190106115015j:plain

▼土方さんの銅像。サンシャインとは異なり、座っている像でした。

f:id:tanaka653:20190106115322j:plain

階段を降り、1Fへ戻るエレベーターのあるフロアには、果南がはぐしてたシーンの透けてる床が。

 ▼写真は全然うまくとれなかったです。笑

f:id:tanaka653:20190106115518j:plain

立待岬 ⇒ 函館八幡宮 ⇒ 函館公園

翌日。聖地巡礼以外にも観光スポットを回ります。

公共交通機関は、市電・バスがありそれなりの頻度で走っているので移動手段には困りませんでしたね。

まずは市電で立待岬へ。降車駅からそこそこ歩きます。

▼市電(路面電車)。いい雰囲気ですねえ。

f:id:tanaka653:20190106115835j:plain

 ▼車内も床が板張りだったりでレトロ感がありました

f:id:tanaka653:20190106120057j:plain

▼道が凍ってて歩行注意ですね。ちなみに道中かなりお墓がありました。

f:id:tanaka653:20190106120300j:plain

 ▼迫力のある崖。海沿いに来たときはこういうところは押さえておきたい。

f:id:tanaka653:20190106120619j:plain

▼函館の街も見えます。方角的に温泉とかがある方かな?

f:id:tanaka653:20190106120719j:plain

立待岬を見たあとは時間もあるので歩いて元町方面に向かいました。

▼函館八幡宮を経由

f:id:tanaka653:20190106120830j:plain

函館公園も経由します。

f:id:tanaka653:20190106120927j:plain

函館公園は博物館や無料の小さな動物園があったりで結構楽しめそうな感じ。休日だと市民の方が来るのかな?

 八幡坂 ⇒ 菊泉

そして、有名な八幡坂へ向かいます。道中で函館山のロープウェイ乗り場や、ラジオ放送局を通ったりしましたがそれは後ほど。この辺りは劇場版でもがっつり出てきていましたね!

八幡坂にはツアーの観光客と思われる集団が。函館の坂の写真といえばここということで、かなり人気みたいですね。写真がきれいに撮れるポジションもあったりするようで、謎のおじさんにレクチャーしてもらえたりもしましたが観光客や路上駐車の車がいたりで中々難しいみたいです。ラブライブサンシャインの中で、この坂の部分で西高をバックに会話しているシーンはばっちり覚えていたのでちょっと感動しましたね。

 ▼西高へ続く坂

f:id:tanaka653:20190106123038j:plain

f:id:tanaka653:20190106123245j:plain

続いて、菊泉へ。西高の近くにあり行きやすいですね。

f:id:tanaka653:20190106123504j:plain

何かで情報で入店のときに「ラブライバーです」と名乗ると何かあるとのことだったので名乗ってみると、りあちゃんの部屋に案内されそこで食事できることに。うれしい誤算でした!

 ▼グッズも飾られていたりしました。

f:id:tanaka653:20190106123714j:plain

▼ぜんざい美味しい。

f:id:tanaka653:20190106123839j:plain

公会堂 ⇒ 船見児童公園

食事のあとは公会堂へ。ここは菊泉から歩いてすぐです。

▼絶賛工事中で中にも入れず残念な感じでしたがそれなりの雰囲気はまあ掴めました。

f:id:tanaka653:20190106124135j:plain

そして、船見児童公園へ。地図を見ると、船見公園の方が大きくぱっとわかりやすい感じで載っているので間違わないよう注意ですね。

ゆきだるまの残骸がありましたが、アニメでも雪だるまがあったんですね。ラブライバーが作って、別のラブライバーが破壊したのか。。。闇を感じますね。

 ▼船見児童公園。雪だるまが作られた形跡が。。。

f:id:tanaka653:20190106124249j:plain

 

後編へ。

たんぽぽ村キャンプ場

今回はたんぽぽ村キャンプ場へ。秋も終盤で天気予報を見ても最高気温は10度を切りなかなか寒そうな中行ってきました。

 

4号線をひたすら北上し、西那須野を超えたあたりでマイナーな道に入っていきます。

付近まで行くと小さめですが案内板がちょいちょいあるのでそれに従って進んでいくと、砂利道に入るのでそこを1,2分くらい進んでいくと到着です。

 

まずは管理棟で受付を。このキャンプ場の受付はセルフ形式で、受付用紙の各項目を記入してその紙と入場料を封筒に入れてポストへ投函するだけで受付完了というはじめてのシステムでした。

また、管理棟には炭や薪が売っているので今回は薪を購入しました。こちらもセルフ形式で薪のすぐ側の箱にお金を入れるだけ。近くに紐が置いてあるのでその紐に入る分だけ詰め込めて300円という感じでした。

 ▼サイトの様子。開放感があり良いです。草地のキャンプ場なので夏だとイメージがまた変わってくるんでしょうね。

f:id:tanaka653:20181209121311j:plain

ちなみにホームページにも載っていましたがヤギがいます。近づいたら寄ってきてくれました!

 ▼キャンプ場の端の方にヤギが。立派な小屋もあります。

f:id:tanaka653:20181209120829j:plain

そして設営へ。フリーサイトなので人があまりいないところへ。

すでに何回かキャンプに行っているのでテントを張ったり、寝床をつくったりはもう慣れてきましたね。

この日は寒くなると思われたので設営後にさっそく焚火を。わりと簡単に着火してくれて、ある程度火力が出てきたあとは薪を適当にくべればどんどん燃え続けてくれました。しかし、この時期・寒さの中では焚火が生命線だなあと思いました。

f:id:tanaka653:20181209121120j:plain

▼月も見えました。この日は雲の流れが速かった...!

f:id:tanaka653:20181209121956j:plain

焚火が燃えつきるまで飲み食いして就寝。

最低気温は2度とのことだったのですが初めて寒い中で就寝でちょっと死を感じました。笑

カイロを大量に使用して乗り切りましたが、他の人はどんな風に過ごしてるか気になるレベルでした。ソロで来てた人とか荷物少なかったしなー。

そして朝ごはんを食べて帰路へ。

▼朝も良い天気でした。

f:id:tanaka653:20181209122138j:plain

恐らく今年最後のキャンプになりますが、自分が想像していたキャンプをすることができました。環境も草地のキャンプ場で、サイトも空いている・静かで非常によかったです。今年一番のキャンプでした!

設備の感想

水場・炊事場・・・普通に蛇口も複数あり特に気になりませんでした。洗剤やスポンジも置いてなかったです。

トイレ・・・トイレ棟みたいな建物は封鎖されていて、仮説トイレのようなトイレが設置してありました。水洗トイレできれいさも個人的には気になりませんでした。洋式。

ゴミ捨て場・・・無いので持ち帰りでした。

北陸をめぐる旅

今回はタイトルの通り北陸をいろいろ回ってきました。個人的にいいなと思ったところとそうでもなかったところを書いていこうかなと。

1日目

お昼くらいに金沢に到着し、金沢を散策して七尾の方の和倉温泉へという感じでした。駅でレンタカーを借りて移動します。

近江町市場 ★☆☆

はじめに行きました。事前に調査しなかったのもの悪かったのですが、ナビの道案内がいまいちで満車の小さなコインパーキングの前で案内を終了してしまい右往左往。迷っていると実際は市場の横に立体駐車場ありました(走り去ってしまいました。)。実はそこが本来案内されるべき駐車場という悲しいことに。。。

結局、うろうろして別のコインパーキングに駐車しました。市場に行くとかなり人が多く、お店もどこも並んでいてなかなかお昼を食べれないという、、

一発目からネガティブですが、休日のお昼付近に近江町市場に来たのはミスったなと後悔しました。せっかく金沢まで来たのにここで無駄な待ち時間を使ってしまいました。

兼六園 ★★☆

その後は、兼六園へ。道路はちょいちょい混んでて信号機も多くなかなか辿り着かず。。ガイドの時間どりには行かないなあ。兼六園はそばにわかりやすく駐車場がるのでそこに駐車。兼六園はかなり有名な庭園だと思い期待値をかんりあげて行ってしまいましたが、個人的には人も多かったしまあ普通だなあという印象でしたね。

兼六園の庭園内

f:id:tanaka653:20181107224200j:plain

f:id:tanaka653:20181107224251j:plain

千里浜なぎさドライブウェイ

砂浜を車で走ることができるとのことで、目的地のひとつとしていましたがこの日は通行禁止になっていました。風が強く波も高かったように見えたからだめだったのかなあ。

和倉温泉 ホテル海望 ★★★

そして1日目の宿へ。最近は旅館に泊まることはほとんどなく久しぶりでしたが非常に良い印象でした。まず部屋がすごかったです。なんと部屋に茶室があるのです。

食事も回線、能登豚や、かに、マツタケご飯などが出てきて満足でした!

そしてお風呂に入るわけですが、これも個人的にはよかった。このホテルはすぐ後ろが湾となっており、この湾を目の前にして露天風呂に入ることができます。この日は月も綺麗に見えており、月の灯りが水面を照らしてそれもまあ綺麗。

明るいときに入っても絶対きれいな景色が見えるんだろうなと思えるお風呂でした。

▼なぜか撮ったロビー

f:id:tanaka653:20181107224508j:plain

 朝。旅館のカーテンを開けるとまた良い景色が。昨日は夜に到着したためちゃんと見てませんでしたが、明るくなってから見るとよいですね。能登島能登島大橋がいい感じです。思わず朝一で能登島大橋を渡ってしまいました。笑

▼部屋から見る能登島や温泉街

f:id:tanaka653:20181107224607j:plain

f:id:tanaka653:20181107224642j:plain

2日目

2日目は和倉温泉から南へ進み白川郷へ行き、そこから加賀温泉へ向かいました。

白川郷 ★★☆

今年、2度目の白川郷へ。今回は車で行ったのもあり、出会い橋という吊り橋を渡って集落へ向かいました。つり橋から見える景色もきれいでしたね。集落に入ると、紅葉が始まっており前に来た時とはまた別の綺麗さがありました。

▼集落と紅葉

f:id:tanaka653:20181107224739j:plain

f:id:tanaka653:20181107224809j:plain

 ちなみに席に座って食事できるようなお店がほとんど閉まっていたみたいで、お昼がなかなか食べれませんでした。日曜日はあまり営業してないのかな。。?

白山白川郷ホワイトロード ★★★

白川郷を出て加賀に向かうのですが、このとき白山白川郷ホワイトロードを通りました。そこまで期待してなかったのですが、ここはかなり良かったですね。有料道路なのですが、その区間ずっと紅葉が楽しめます。山を走ることになるので、高低差が結構あり場所によって色づきが違うのがまたよいです。高いところにある駐車場に止めてみる景色もよく、途中にある滝も素晴らしい景色でした。今回の旅で一番印象に残ったスポットでした。

 ▼運転していたのであまり写真は撮れず。これらの写真より遥かに良い景色が見れます

f:id:tanaka653:20181107224940j:plain

f:id:tanaka653:20181107225013j:plain

東尋坊 ★★★

時間がまだ早いので、加賀温泉を抜けて東尋坊へ。入り口っぽいところに進むとめっちゃ駐車場に誘導してくる人がいる!誘導に従って止めたのですが、この人はお土産屋の人でお店の駐車場にナチュラルに誘導しているのでした。観光地恐ろしい。。。

勉強になったなあと思いながら、駐車場から少し歩いて東尋坊へ向かいます。ここも特に期待せずいったのですが、良かったです!岩の迫力がすごいし、その岩の上を進んでいくとまあ怖いがとても良い感じです。自分は海と岩の組み合わせが好きなんだなあと感じましたね。

 ▼日本海と岩肌の組み合わせはやはり良いものです

f:id:tanaka653:20181107225558j:plain

f:id:tanaka653:20181107225650j:plain

片山津温泉 ★★☆

2日目の宿は加賀の片山津温泉。昨日の和倉温泉と比べると町としてはそこまで温泉街の雰囲気は感じないなーといった印象でしたね。宿は柴山潟のすぐ隣にある旅館でした。入り口やロビーなどかなり綺麗でいい感じでした。

食事は海鮮、能登豚など出てきましたが、個人的にお麩や野菜を使った料理が良かったです。デザートも棒茶プリンが出てきて美味しかったです。加賀と聞くと魚とかよりは野菜とかのイメージがあったのでそういものが食べれたのは良かったですね。

ちなみに朝はバイキングでは、豆腐が作れたりもして驚きました!

3日目

永平寺 ★★☆

今回の旅の最後の観光スポットの永平寺へ。周辺へ行くとお土産屋が並んでおり東尋坊と同じように駐車場への呼び込みが。昨日に東尋坊で学習したので、今回は永平寺に近いお土産屋の駐車場に止まりました。

最初に見かける駐車場に止めると結構歩くことになるので近い方の駐車場に止めるのがおすすめです。

永平寺ですが入った参道に入った瞬間、ひんやりとした空気。スピリチュアルな感じです。帰りの日ということで時間がなかったので素早く寺の中を見学します。天井に絵が並んでいる部屋(一押しみたい)や仏堂などを見てきました。結構階段を上り下りするので太ももにきました。笑

▼スピリチュアル感がありますね

f:id:tanaka653:20181107230114j:plain

 

f:id:tanaka653:20181107230140j:plain

 

そして、金沢駅へリターン。レンタカーを返却して、おみやげを買って新幹線へ。

ビールと北陸へ行ったときは何故か買ってしまう白えびのせんべいを食べながら帰りました。

今回は白山白川ホワイトロード和倉温泉東尋坊が特によかったです。特にホワイトロードは紅葉の季節は行く価値はおおいにありだと思いました!

ネット料金(BIGLOBE)の確認とオプション解約をした話

スマホ料金の記事も書いているところなのですが、最近通信費まわりが気になり家のネット料金についても確認しました。プロバイダはBIGLOBEです。

 利用料金の内訳確認

何を確認したかというと、毎月利用料金として3,947円引き落とされているのですがこの内訳がよくわからんということで内訳を確認しました。

契約したときの書類を掘り起こし、IDとパスワードを見つけ出し、BIGLOBEのマイページへログインして利用明細を確認してみました。

▼利用明細

f:id:tanaka653:20181023221736p:plain

基本は、光の利用料金工事費が掛かっていて、auスマホなのでそのセット割り1,200円が引かれているという感じ。UQMobileに移行したらこの割引は無くなるんだろう。。

工事費はあと数年すればなくなる感じか。。

そして、接続サービス以外の利用料金に何か変なものが。BIGLOBEあんしんバックアップという文字。やられたーという感じでした。たぶん契約時に申し込みすると安くなるという話で契約したまま解約が漏れていたのでしょう。。。(解約した気がしてたけど。)

プロバイダを変えて1年くらいだったと思うので、6,000円くらいの無駄な損か。

さっそく解約

サービスのページから有料サービスの項目をみると上記のサービスが解約ボタンを押して解約を進めていきます。

f:id:tanaka653:20181023222435p:plain

▼どんどん進めていきます。

f:id:tanaka653:20181023222631p:plain

▼完了画面

f:id:tanaka653:20181023222813p:plain

 

これで解約できたはず。

いつから利用料金に反映されるかは調べてないけど、引き落としされる都度確認していこう。

 

秋キャンプ 松田川ダム湖畔キャンプ場

今回は、松田川ダム湖畔キャンプ場に行ってきました。

このキャンプ場は栃木県の足利市にあります。車で行きました。

予約

ホームページを見たところ、事前に電話で予約するようでしたの電話予約をしました。夏休みも終わったし空いてきてるかなと思ったら結構予約が入ってましたね。受付場所、ごみは持ち帰りについてなので電話で色々説明していただきました。

買い出し

埼玉からキャンプ場に行きましたが、道中、足利の町にいろいろスーパーがありました。何件か回ったのですが個人的にはお肉の種類が色々あったのでとりせんが良かったなーと思いました。ホームセンターも普通にあります。

受付

今回は湖畔キャンプ場に行くのですが、受付は下の方にあるバーベキュー場のところにある管理棟で行いました。1区画1,030円で非常に安いですね。

そしてこのバーキュー場のある公園の雰囲気、個人的にとても好みでした。こっちに泊まってみたかったですね!

▼公園側でもかなり自然を感じます。

f:id:tanaka653:20181021152126j:plain

f:id:tanaka653:20181021152230j:plain

f:id:tanaka653:20181021152252j:plain

キャンプ

受付後に車で数分山を登っていき、キャンプ場へ。途中に何か所かダムの展望スポットがあります。ちょいちょい人がいました。

キャンプ場に到着すると時間が遅かったせいか駐車場がほぼ一杯。ちょっと早めに行くのがいいですね。予約も一杯だけあり人も多く中々賑やかな感じでしたね。勝手に穴場だと思って静かに過ごせるかなと思ったけど、その思惑は外れました。家族とか仲間とわいわいするのには良いでしょう。

あとは設営して、飲み食いして就寝&起床&朝食。

▼場内の斜面を登るとダムもしっかり見える

f:id:tanaka653:20181021152536j:plain

設備の感想

水場・炊事場・・・山の上で不安でしたが、蛇口も複数あり、洗剤やスポンジも置いてあり普通に良かったですね。あ

トイレ・・・こちも同じく不安でしたが、水洗トイレがありました。普通にきれいな感じ。個室は和式のみでした。

ゴミ捨て場・・・無いので持ち帰りです。これは致し方ないですね。

 

管理棟があった、バーキュー場側のオートサイトの方に泊まってみたいですね!

eclipselinkでpersistence.xmlに複数のDB接続先(PersistenceUnit)を記述する

ざっくりですが、技術ネタを。タイトルの通り、eclipselinkでpersistence.xmlに複数のDB接続先(PersistenceUnit)を記述した話です。そのうちソースコードも書くかも。

構成

 今回、DB構成がマスター・スレーブみたいな構成で、処理によってDB接続先を変えてみるということを行いました。以下みたいな感じ。

・参照のみの処理 ⇒ スレーブへ接続

・更新含む処理 ⇒ マスターへ接続

上記の関係なので、それぞれのDBには同じテーブルが定義されています。

persistence.xmlについて

普通にpersistenceUnitを複数記述しました。classタグでエンティティのクラスを記述しますが、このファイルではそれぞれのpersistenceUnitに記述しました。あと、それぞれjdbcのurlを接続したい内容で記述します。

pom.xmlについて

dependencyに、org.eclipse.persistence.jpa.modelgen.processorを指定するとメタモデルが自動で生成されますが、上記のように複数のpersistenceUnitを記述するとエラーになりました。

なので、pluginを記述してメタモデルを生成して、そこでunitを指定する形にしました。

↓pluginの参考

stackoverflow.com

↓unit指定の参考

stackoverflow.com

EntityManagerFactoryについて

上記で複数のPersistenceUnitは定義済ですので、分岐を追加するなりしてcreate()で指定するunit名を適宜変更する形で実装しました。

 

以上で今のところ期待通りには動いている。。。