Rubyで動的クラスを使ったクラス設計を考える
地元鉄道の時刻表や駅の情報を返すAPIを考えている。 (Alexaのスキルを作りたくて、そのためのデータを返すAPIがほしいのだった)
欲しいのは、駅の情報(info)・時刻表(timetable)・運賃(fare)。
Akaden
というのは地元鉄道の愛称。正式名称は遠州鉄道、略して遠鉄。車体が赤いので市民は「赤電」と呼んでいる。
駅名をメソッドにする
::Akaden::Info.shin_hamamatsu => { name: '新浜松', address: '' , ...}
::Akaden::Timetable.kamijima => [ { detection: 'upto', week: 'weekday', time: '10:35' }, ... ]続きを読む
Amplify Geo for AWS Amplify を試してみる
AWS Amplify に AWS Location Serviceのリソースを作成してくれる Amplify Geo のデベロッパープレビューが公開されたので試してみた。
できたものはこちらです。
amplifygeo-20210929141446-hostingbucket-dev.s3-website-ap-northeast-1.amazonaws.com
実は AWS Location Serviceが出た頃に Location Service は試していて、以下のような簡単なアプリケーションを作っていたのだけど、
master.d1h878o7did8z6.amplifyapp.com
Amplify Geo を使うとこんな感じの機能をもっと簡単に作れるようになる。
続きを読むAlexaスキルのindex.js の見通しを良くする
Alexa Hostedで自動生成されるコードは index.js
にすべてのインテントハンドラのコードが実装されていてすこぶる見通しが悪い。
そこでハンドラごとに handers
配下に切り出してみた。
毎回これやるの面倒だな。。
手元の環境の ASK CLI を最新化した
開発をお手伝いしているAlexa Skillのバージョンアップの話が出てきたので下準備中。
続きを読むcopilot pipelineで作ったCI が「COMMAND_EXECUTION_ERROR Message: Error while executing command: for workload in $WORKLOADS」で FAILする
これについて。
copilot pipelineで作ったCIがコケてたのだけどやっと原因がわかった。「When using COPY with more than one source file, the destination must be a directory and end with a /」まさかここで以降のプロセスがコケてたとは思わなんだ。ただのwarningかと #aws #copilot
— yuto (@jacoyutorius) 2021年6月21日
ここ最近 copilot cliが楽しくて、ドキュメント流し見してチュートリアル試して、手元のDockerイメージをデプロイして、、といった感じで遊んでいた。
AWS App Runner がリリースされたことで、コンテナイメージデプロイがとーーーーーーっってもカジュアルにできるようになった。
で、App RunnerでもGithubへのpushをフックして自動デプロイなんてことはやってくれるのだけど、もうちょっと実戦での運用を考えたときに、CI/CDの環境があったほうが便利。copilot ならコマンド一発でそれができる。
copilot pipeline
コマンドを叩くとCodePipelineによるCI/CD環境を作ってくれる。