lineBot
20200427_lunch
· ☕ 1
ウォーターサーバーがほしくて、色々比較した話

ログ収集処理を作った
· ☕ 2
ツイート感覚で適当に書く技術ブログ。静的サイトジェネレーターhugoをs3に載せて、月額運用費5円で運用するブログ。毎日のただの作業記録をツイートのように書いていきますw

おかえり!ゆいちゃん!
· ☕ 2
ずっという事聞いてくれていなかったゆいちゃん!ようやく!動くようになりましたーーー長かった…。なぜ動かなかったかというと、この改造工事をしていたからwでもね、まだトランザクションの整備終わってないから、変数登録が微妙におかしいかもww

linebotのログを収集する
· ☕ 2
linebotにどんなメッセージがきているのか? 適切に応答出来ているのはどのくらいあるのか? 「何を言っているのか分かりません」みたいな返答が変えることはどれくらいあるのか? を見るために、ログを収集したいなと考えていました。 「何を言っているのか分かりません」みたいな返答は、エラーではないので、エラー通

SQS⇒lambdaをSNS⇒lambdaに置き換えた
· ☕ 1
先日実は月額30円の定額課金?SQS⇒lambdaの罠…で書きましたが、SQS⇒lambdaはトリガーごとに月30円かかります。 私のlinebotは こんな感じだったので、月90円かかることになります… なので、SQSを全部SNSに置き換える! こんな感じ これで月90円の節約です// cloudFormat

linebotまとめ
· ☕ 3
今作っているlinebotのまとめ記事 概要 line公式アカウントの後ろにawsがあり、ホットペッパーやGoogleカレンダーと連携しています。 基本の仕組み lineにはwebhookという仕組みがあり、メッセージをlineがうけとると、その内容をAPIに送ってくれます。 こんな感じ 基本は、この仕組みで、

linebotの仕組みを考え直す
· ☕ 2
私の作ったlinebot達。 はじめは小さかったんですが、ちょっと最近ぐちゃぐちゃしてきて…。 今はこんな感じになってます。 file分けるような感覚でlambdaのファンクション自体は分割しているのですが、同期処理で、頭のlinebotWebhookってファンクションが、最初から最後まで動いているってい

dynamoDBを更新するlambdaを作成
· ☕ 2
lambdaでdynamoDBを更新することってよくあるんですが、キーが違ったりすると、毎回コード書着かえたりしないといけなくて…。 めんどくさいので、汎用的に使えるのを作りました。 dyanmoDBからまず定義を取ってきて、その定義に沿ってデータ取得、更新をします。 前提 私は全dynamoDBを { パーテ

boto3でSNSにtopicとsubscriptionを作ってみた
· ☕ 1
自動予約受付アプリの中で、メールの転送作業が必要で、その転送設定をユーザーに勝手にしてもらいたいので、lambdaで実装する必要があった。 SNSのtopicを新規で作って、そこにsubscriptionを設定する。 import boto3 def main(param): client = boto3.client('sns') response = client.create_topic( Name=f'sendMail{param["shopId"]}' ) print(response) arn = response["TopicArn"] sns = boto3.resource('sns') topic = sns.Topic(arn) subscription = topic.subscribe( Protocol='email', Endpoint=param["mail"], ReturnSubscriptionArn=True ) def lambda_handler(event, context): try: print(event) print(event["body"]) return main(json.loads(event["body"])) except: import traceback traceback.print_exc() でき

liffのバージョンをv2.0に上げたら、liffIdが必要になって困った話
· ☕ 1
liffのバージョンをそろそろ上げないとかなと思って、v2.0にあげてみたら、liff.initにliffIdが必須でした…。 でも、私は一つのhtmlを複数liffで使いまわししており、liffIdの設定がhtml側ではできません…。 URLから取得できないか? clientCd(liffIdの数字部分

ついに!アプリリリース!治療院向け自動予約アプリ
· ☕ 1
やーっとリリースできました! 結局全部作り切れずに、一部機能先送りにしてしまいました…。 いやぁ、一日作業してたはずなのに、遅くなった…。 サイトはこちら 自動予約受付ができるlinebotです。 しかも、あんまりテストできてないから、まだバグだらけかも…。 明日からしっかりテストしよう…。 あ、ちゃんとリリース

dockerでマウントする カレンダー連携⑥
· ☕ 2
朝、マウント(同期)が上手くいかなかったので、リベンジ windowsのdockerでは/c/xxxを見ていて、 wslでは/c/xxxがマウントされた/mnt/c/xxxを見ている なんか、この辺がよくないことになっているよう…。 前回までの流れはこちら ただ、requirements.txtはdocker

dockerのメモリを下げる カレンダー連携⑤
· ☕ 2
昨日はメモリ不足でdocker動かなかったので、今日はそのリベンジ。 私のPCが7年前のおんぼろのせいで、dockerが要求しているメモリが確保できない問題ww dockerが要求しているメモリを下げる方法を考える 前回までの流れはこちら メモリ減らす! update updateしてみた。 結果変わらず…。 やはりsett

dockerを使ってみる カレンダー連携④
· ☕ 2
前回lambdaが動かなかったので、なんとか頑張る回ですw layerが上手く固められていなかったのが原因で、多分dockerで解決するはず…。 前回までの流れはこちら docerの導入 私の開発環境はwindows on WSL です。 なので、Docker for WindowsをWSLから呼び出していきます。 Windows

googleカレンダー取得スクリプトをlambdaに載せる カレンダー連携③
· ☕ 1
ついに本題ですw 昨日ローカルから実行したpythonをlambdaに上げていきます! 前回までの流れはこちら layers作成 昨日pip installしたこの子達をlayersに固めていきます。 pip install -t . httplib2 pip install -t . oauth2client pip install -t . google-api-python-client で、cloudformationでデプロイ templateはこちら AWSTemplateFormatVersion: '2010-09-09' Transform: 'AWS::Serverless-2016-10-31' Description: api gw,