Lambda + node + Athena

表題の環境でハマったのでメモとして残しておく。

■ 環境

  • Node.js 8.10
  • AWS Lambda
  • AWS Athena

■ node

新規でLambdaの関数を”一から作成“で作成した際に、下記のコードが作成されたのでこれを元に処理を追加していった。

exports.handler = async (event) => {
    // TODO implement
    return 'Hello from Lambda!'
};

LambdaからAthenaに`startQueryExecution`でクエリを実行させ、S3にCSVが作成された、満足だ、と安心し更に実装を進めていたら、`startQueryExecution`の箇所はほぼ修正していないのに実行ができなくなってしまった…。その後、ファイルのversionを戻しても実行がされない…。`listNamedQueries`を実行してみても結果を得られない…。

  1. 実行できた時点のversionを再実行
  2. `startQueryExecution`を`listNamedQueries`にして実行
  3. 関数を新規に作成して実行

ここまで実行してもやはり実行はできなかった。エラーも出ていない、CloudWatchログで見ても実行時のエラーは出ていない。手詰まり…となったがふと思いたってランタイムを”Node.js 6.10“にして実行してみた。実行してみるとエラーが発生。`async`がダメというような内容であった。

従って、上記のサンプルでいうと下記のように修正した。

exports.handler = (event) => {
    // TODO implement
    return 'Hello from Lambda!'
};

実行できてしまった…。`listNamedQueries`も`startQueryExecution`も問題なく実行ができた。

もしや?と思いこのソースのままランタイムを”Node.js 8.10“に変更しても問題なく実行ができた。

変な箇所にハマって時間をくってしまったので原因を深く追求するのはやめて実装を進めることにする。

以上。

wget -r

表題のコマンドについての単なるメモ。

■ 環境

  • wget
  • Homebrew
  • macOS High Sierra

■ wget

Macでは`wget`コマンドはインストールされていないので、必要ならば`brew`コマンドでインストールする。

$ brew install wget

使い方は簡単である。

$ wget -r https://example.com/

URLにもよりはするのだが、上記だとかなりの数のHTMLや画像ファイル等をダウンロードしてくることになる。

いろいろオプションを試した結果、自身が現在求めているのは下記で対応できそうである。

$ wget -r -l 3 -q -p --show-progress https://example.com/

以上。

Trello App

表題のアプリがあるのを知ったので試してみた。

■ 環境

  • macOS High Sierra

■ Trello

仕事でTrelloを使っている。有効活用できているかと問われると少々微妙ではあるのだが”GitHub”の”project”よりはまだ自身的には使い勝手が良い。MacのアプリでもTrelloがあるのに気が付いたのでインストールしてみた。ちなみに普段はブラウザでアクセスしている。

Trello
https://itunes.apple.com/jp/app/trello/id461504587?mt=8

ブラウザと特に操作性に変わりはなかった。今後もブラウザで使うことになるだろう…。

以上。

Posted in: Mac | Tagged:

ModSecurity 3.0 on CentOS 6.9 (3)

先日の続き。3回目。

■ 環境

  • ModSecurity 3.0
  • CentOS 6.9
  • Vagrant 2.1.1
  • macOS High Sierra

■ 前回までの手順を整理

  1. install autoconf-2.69
  2. install automake-1.15
  3. error at ModSecurity build.sh

■ m4

前回`build.sh`を実行したところ下記のようなメッセージが出力されていた。

[root@localhost ModSecurity]# ./build.sh
  :
configure.ac:82: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/yajl.m4:4: PROG_YAJL is expanded from...
configure.ac:82: the top level
configure.ac:87: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/libgeoip.m4:10: PROG_GEOIP is expanded from...
configure.ac:87: the top level
configure.ac:91: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/libmaxmind.m4:10: PROG_MAXMIND is expanded from...
configure.ac:91: the top level
configure.ac:96: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/lmdb.m4:4: PROG_LMDB is expanded from...
  :

今までと同様に`m4`が古いからなのかな。ちなみにversionを確認すると下記であった。

[root@localhost ModSecurity]# m4 --version
m4 (GNU M4) 1.4.13
  :

`m4`の現時点での最新は”1.4.18“のようである。

[root@localhost ~]# curl --silent http://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.gz | tar zx
[root@localhost ~]# cd m4-1.4.18/
[root@localhost m4-1.4.18]# ./configure
  :
[root@localhost m4-1.4.18]# make && make install
  :

■ ModSecurity

再度`build.sh`を実行する。

[root@localhost ModSecurity]# ./build.sh
  :
configure.ac:82: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/yajl.m4:4: PROG_YAJL is expanded from...
configure.ac:82: the top level
configure.ac:87: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/libgeoip.m4:10: PROG_GEOIP is expanded from...
configure.ac:87: the top level
configure.ac:91: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/libmaxmind.m4:10: PROG_MAXMIND is expanded from...
configure.ac:91: the top level
configure.ac:96: warning: PKG_PROG_PKG_CONFIG is m4_require'd but not m4_defun'd
build/lmdb.m4:4: PROG_LMDB is expanded from...
  :

消えてくれない…。さてなんでだろう?としばらく悩んだが、コンパイルの順番を再度考えてインストールし直してみた。

  1. m4
  2. autoconf
  3. automake

と思ったが…よくみたら”YAJL/GEOIP/MAXMIND/LMDB“と今回は対象外のところでの発生ではないか…。”warning“だし消えなくてもまぁとりあえずは良いだろう…。ということで一旦心が折れたのでここまで。

以上。

■ 関連

ModSecurity 3.0 on CentOS 6.9 (1)

ModSecurity 3.0 on CentOS 6.9 (2)

ftp on Mac

表題をしたかったのだができなくなってたのでメモ。

■ 環境

  • macOS High Sierra

■ ftp

以前は`ftp`コマンドがあった気がするのだが、実行してみると下記の結果が…。

$ ftp XX.XX.XX.XX
-bash: ftp: command not found
$

あれ?前はどうやって動作確認したんだっけ…と思い悩むも確かにMacのターミナルから`ftp`で繋いだはず。以前との違いは…と考えると思い当たるのは”High Sierra“にアップグレードしたこと。

どうやら”macOS High Sierra“では`ftp`コマンドが廃止になったらしい。まぁ確かに今なら`sftp`くらい使えよな、ということであろう。自身の場合は普段`scp`でやってしまうが。

以上。

Posted in: Mac | Tagged: