So-net無料ブログ作成

【AWS】AWSとDoCoMoでLINEのbot [クラウドを個人が使う]

◆Docomo 雑談対話API対応
なるほどそういうのもあるのか。これも書かれたとおりにやってみる。
・DoCoMo「新規API利用申請へ」はやたら意識が高い。こっちはただ適当にLINEボットを作りたいだけなのに。仕方がないのでいろいろでっち上げる。大きな声で言うことでもないが、住所や名前や電話番号など、まじめに書きますかそうですか。
で、いろいろうるさいわりにAPI keyは一瞬で発行される。
・DynamoDBテーブルも書かれている通り。キャパシティセットは5もいらないはず(多分)。
・改めて別のFunctionを作る。
コードはコピペ。だが注意。もちろんそのままでは動かない。
「DoCoMoのAPI keyをセットする」ところ。そこをセットする。
「DynamoDB TableNameをセットする」ところ。そこをセットする。
「LINEのChannel Access Tokenをセットする」ところ。そこをセットする。
あと、LINE developersでは、別のビジネスの登録を行って、それを使うほうがいいと思う。今のはせっかく動いているんだから壊すことはない。バージョン変えればできるっぽいけど。
「Lambda の IAMロールに DynamoDB へのアクセスを許可するポリシーを追加」
これがわりと難物。IAMのサービスに飛んで、設定する。どれをセットしたらいいのかよくわからないからLambdaとDynamoDBから適当に選ぶ。なんでもいいので動けばOK。
◆難所
「コードはzipファイルでアップロード」「requestモジュールを同梱」これがまた難物。
windows10環境でもnode.jsはinstallできる。npmも同時にinstallされる。
https://nodejs.org/ja/
コマンドプロンプトからnodejsと叩いて、npm install request でrequestモジュールが落ちてくる。但し今回の場合C:\直下にが出来たのは本来の動きなのか?
出来たnode_modulesのフォルダーと、作ったコード(index.jsという名前にしておく)をまとめてzipかけて、画面からアップする。
その後コードを画面から直したら動かない。必ずzipアップロードの手順を踏む。
慣れればたいした手間ではない。
◆でも動かない
動かない。DOCOMOまでは行っている。DynamoDBもどうやら書き込んでいるがreceive_idがおかしい。
原因はここ↓
if (!event_data.events[0].source.groupId){
receive_id = event_data.events[0].source.userId;
} else {
receive_id = event_data.events[0].source.groupId;
}
roomIdで来た場合、receive_idがセットできない。
if文並べて、
event_data.events[0].source.roomId を判断に付け加えればOK。
これで動いた。やれやれ。
なお、botはわりと中途半端な返答をする。
1.jpg

【AWS】AWSでLINEのbot [クラウドを個人が使う]

◆AWSでLINEのbot
単にAWSでWordpress立ち上げて、日記サイトやらなにやら立ち上げてもだからどうということもない。so-netから引っ越すのも手だが。まあそれはそのうち。
ちょうど、CodeZineに、「誰でも簡単にできる! LINE Botの作り方
https://codezine.jp/article/detail/9810
とあったので、いろいろ調べてみた。なお、このCodeZineというサイト、なかなか不思議な作りをしている(2016/12/12現在)。
「開発者のための実装系マガジン」とのことで、そういうことも出来ますよ的ななにかなのだろうか。

◆「その通りにやればいいじゃん」的な
まあそれはそうなんだが、PHP環境を作るのはともかく、HerokuのID取るのもなんだかな。そこまでしてbotかよ、AWSだけでなんとかなるだろ、という気分なので、別を探す。
これではまるでキュレーションサイト。

LINE BOT APIを使ってAWS Lambdaでサーバレスな版画風写真加工BOTを作る(Node.js)
【朗報】LINE BOT の Server IP Whitelist がOptionalになってた
【PHP】LINE Messaging APIで田村ゆかりさんの公式サイト更新通知BOTを作りなおした #yukarin
と、いろいろあるが、なるほどよくわかっているなと思わせるこちらのサイトに全面に従うことに。おせわになります。
LINE Messaging API と AWS Lambda で LINE BOT を作ってみた
http://www.kazuweb.asia/aws/lambda/chatbot
少しのことにも、先達はあらまほしき事なり

◆書いてある通りにやれば出来るというものではない
それほど甘くない。途中まで一緒だが、
・「Lambda Functionを登録する」--いきなり画面が違う。
当該記事は2016/10/11付なので、わずか2ヶ月で変わったということ。この界隈では別に珍しいことではない。一番左上を選べばいいみたい。
・「Existing role」は既存の「lambda_basic_execution」、とあるが、もちろん一番初めは「既存」は存在しないので、Createする。

・「LINE developers 画面にて発行できる Channel Access Token」とあって、え?それはなんだ、となる。LINEで先に発行しておく。{}は不要なことは言うまでもない。

以上に気をつければわりとあっさり動く。
これだけでは味気ないので、はじめのほうの
"text":"はろーわ~るど"
のところを変数にして、乱数でいろいろしゃべらせるとか、条件分岐するとかするとかなりそれっぽくなる。

【AWS】AWS 初歩の初歩 [クラウドを個人が使う]

◆AWS 初歩の初歩
変転極まりなく常に進化するamazon殿であるから、解説本やらサイトやらに書かれている内容はともかく、画面キャプチャは現行とはそこそこ違っている。
セミナーなどに通わないでお勉強しようとする人なら、それくらい自分で何とかするだろうとう想定だろう。
まずはじめるにあたって、当然AWSのアカウントが必要となる。これはちょっとやってみると、実はamazon.com つまりUSの.comのアカウントを使うようだ。これは持っているのでそのまま使う。アカウントがバラけるのは(そのうち忘れるので)よろしくない。カードは休眠状態にある某銀行系にしたが、プリペイド系のお財布pontaでも、COCOKARAでもOKのはず。
登録すると電話で確認が来る。どうと言うことはない。

◆チャレンジ
叩くコマンドはsudo だの yum だのなので、気分の問題で、せっかく作ったMintを使う。いまさらWin10にTeraTerm入れるのもちょっと。
あとは参考文献どおりに順番にコマンド叩いたり、画面入力したりだけの話。作業ゲーム。DBあたりになると、いくらawsが速いといっても、一旦「作成」とやると、数分かかるのがリアル。
簡単にWordPressが立ち上がり、さらにロードバランサー入れて、フロント2台 x RDB2台体制にまで約4時間。簡単。
最後にサイトを抹殺するのに若干時間がかかる。このへん出来ればあっさり消したい。

◆コンテンツ/構成の同期は?
ただ、これだと、コンテンツ変更をフロントにそれぞれやらないと食い違うので、実用とするには、デプロイの仕組みを入れる必要があるだろう。ステージングを作って、そこからコピーするのかと思いちょっと検索。
「アクセスが集中したら自動でサーバー増やします」までは設定できそうだけど、画面レイアウトやら中身やらを同期を取って全部置き換えるのはそこそこ工夫がいる?参考サービスとして
AWS Elastic Beanstalk https://aws.amazon.com/jp/elasticbeanstalk/
AWS OpsWorks https://aws.amazon.com/jp/opsworks/
AWS CloudFormation https://aws.amazon.com/jp/cloudformation/
‥これじゃamazonの回し者だ。
AWS Elastic Beanstalkが一番簡単そう。全く素人でもやれば出来る気がする。と思ったがもう全部消しちゃったしな。

◆すごすぎる。
つまりは、中身は別として、そこそこの企業情報サイトの外側は1日で出来てしまうとなると、かなりのエンジニアはAWSに合わせて勉強しなおさないとダメそう。いろいろ手作りで設定したい向きには不満だろうけど。
「チャレンジ」と書いたが、それほどでもない。むしろ前段のLinux Mint18のUSBメモリー立ち上げのほうがよっぽど手間。


【Linuxメモ】再開:Linux Mint 18編(3終)USB backup [Linux初心者]

◆苦難のソフト探し
あまり、「WindowsだったらこうなのにLinuxだと~」と書くとぶっ飛ばされるのは当然。ただ、前回17.3で簡単に入れられたavidemuxが18では存在しない
https://forums.linuxmint.com/viewtopic.php?t=222783
As you can see, VirtualBox and Avidemux are currently not in the Linux Mint 18 repository.
Windowsの野良ソフトはそれはそれで怖い。モノは本物でもインストーラーにmalwareが仕込んである。よほど信頼が置けるサイトから落としてきて、それをさらにウイルスチェックするとか、気を使う。
ただ、http://www.getdeb.net/welcome/ 「getdevをリポジトリに追加して、そこからもってこい」というのと、どちらが安全なのか。
あとはLINE。これも大変。Chromeは使いたくない。
http://blog.livedoor.jp/hiroumauma/archives/1710677.html
これをやればよいような気がする。開発環境コミで作らないとダメなのでちと面倒。
Mintの場合、「危険なものは入れないでね、こちらも黙って入れないからね」的なので、これらを入れるのはコンセプトに合わない。
・GV-USB2/A
以前から書いているが、多分ダメ。
GV-USB2/Aからandroid対応なので、もしかしたらどうにかできるかもしれない。

◆USBのバックアップ
せっかく作ったUSBブート式Mintであり、いろいろ入れて壊したくないので、丸ごとコピーしておきたい。あちこち読んで、
sudo dd if=/dev/sdc of=/dev/sdd
こんな感じで全部コピーできるということだが、やってみるとすごく遅い。待てばいいだけだけど。
こういうソフトはWindowsのほうが充実している。いざというときに戻せればいいと割り切った場合、単にイメージをコピー出来ればよいので、絶対の信頼を置く「K本的に無料ソフト」より
http://www.gigafree.net/system/SystemBackup/
ここから、USB Image Tool http://www.gigafree.net/system/SystemBackup/usbimagetool.html を選択。
Windows10を立ち上げて、書かれたとおりにやるだけ。時間もかからず。
単純にコピーして、あとで自分でlzhかzipにするほうが安心かも。
これでここまで戻れる。

タグ:mint Avidemux

【Linuxメモ】再開:Linux Mint 18編(2)音が出ないとか [Linux初心者]

◆手順
USBで立ち上げる。まずは電源設定と、スクリーンセーバー無効化。液晶画面にセーバーはいらない。あと、壁紙の設定。これでだいぶ気分が盛り上がる。
前回からリンクを貼っている「初めてのLinux」http://ondyrsjc.blog.jp/archives/1003611779.html
を参考にするとよいと思うが、Mint18だと日本語化のあたりがいろいろ異なる。
・フォルダーの英語化を先にやったほうがいい。一次ファイルとかスクリーンショットとか、ついデスクトップにおいてしまう。
・確認しながらやることになるので、FireFoxの設定を先にしたほうがいいように思う。
・「リポジトリのミラーサイトを日本にする」。ミラーではなく、先頭を日本にしてよいのでは?他国は当てにしない。
・アップデートは予想以上に時間がかかるので、かけっぱなしで寝るか、お風呂に入ってしまうかのほうが精神的に楽。ここで一区切り。

◆鬼門の日本語入力
・FcitxとMozc。今回の18から、親切にも、FcitxとMozcが見出しだけ入っている。まともに動かすには、
http://linuxmintjp.jimdo.com/日本語化/
にある呪文
$ sudo apt install fcitx-config-gtk mozc-utils-gui
でよいはず。「はず」というのは、Mozcの設定あたりがなんだか怪しいから。
18では、インストールのところで日本語が選べる。だったらここまでやってほしいがそういうお節介な文化ではないのだろう。こういうところに敷居の高さが残る。
でも17.3で試行錯誤したことを思えば、やることがはっきりしているだけ格段に楽。
とにかく、ここで1-2バイト変換キーに、「変換」「カタカナひらがな」「右ALT」を設定。キーボード配列ATOKを設定。
このあたりから見かけWindowsとそん色なくなる。
・次はプリンター。さすがMintとなるとちゃんと探してくれる。アップデートの後にやらないとエラーになることも。

◆突然、音がでなくなった?あれ?
なんだろうこういうの。当方、ビーっというノイズが嫌なので、USBでスピーカーにつないでいる。当然、17.3でも音は出るし、Windowsでも出る。ちょっと調べて、ALSAでミュートがかかっているのではないかと推測。sudo alsa で確認。あとはalsamixerで直る。(再び)なんなんだろうこういうの。(再び)こういうところに敷居の高さが残る。識者からは多分、平気で「そういう時は再インストールですぅ」って言われるだろう。