Skip to content

AdventCalendar2021

まとめ

今日で1か月。よく続いた。

アプリは完成までたどり着かなかったけど、学びは得られた。

GraphQL理解すればまた評価変わるかもしれないけど、AmplifyよりFirebaseのほうがとっつきやすいと感じた。

自分の環境ではモックがまともに使えなかったのも痛い。モックが使えなくても、pushが速ければ気にならなかったかもだけど。

Read more

GraphQLでAND条件検索

昨日の続き。

AND以外に、ORも同様のエラーでNGだった。 ANDやORを使わなければ想定通りのフィルタになるので、間違ってないと思うんだけど。

何度目かの詰み。

キャンセル処理入れる

エントリー処理ができるようになったので、同じようなノリでキャンセル処理も実装する。

同じノリなのになぜかエラーが出る、と思ったらエントリーの方もエラーが出ていた。

Variable 'id' has coerced Null value for NonNull type 'ID!'

eventIDとuserIDをキーに検索したいのに、idを指定しろと言われている。 getEventUserではなくlistEventUserにfilter指定したらいけそう。 API (GraphQL) - Fetch data - JavaScript - AWS Amplify Docs と思ったけどand指定したらなんかエラー。。

Read more

DB再作成

データがある状態でデータ構造の変更をかけたせいか、挙動が怪しくなったので一度DynamoDBのテーブルを削除した。

その後、amplify update apiapmlify pushを実行。 したらAppSyncのupdateでエラー終了してしまった。

amplify deleteで丸ごと削除してからamplify pushしたらNo Amplify backend project files detected within this folder.になった。

Read more

ここまでのまとめ

やったこと

  • Amplifyのチュートリアル
  • Codespacesでの開発
  • VSCode+WSLでの開発
  • VSCode+EC2での開発
  • VSCode+RaspberryPi4での開発

わかったこと

  • AmplifyはFirebaseみたいなもの
  • Vueはわかりやすい
  • データベースはGraphQLわからないとつらい
  • クラウド環境でAmplify mockを使うのは難しい
  • ラズパイ(32bit)ではAmplify mockを使えない
  • Surface Go 2ではこのレベルの開発作業は厳しい
  • クラウドに開発環境を移行するにはまだ壁がある

つぎにやること

  • 強いPCが欲しい
  • GraphQLを理解する

EC2で開発

Surface Go2 で厳しいので、EC2インスタンス立ててやってみる。 とりあえず無料枠のt2.microでAmazonLinux。

gitが入ってなかったのでインストール。

$ sudo yum update
$ sudo yum install git
$ git --version
git version 2.32.0

npmも入っていなかった。 チュートリアル: Amazon EC2 インスタンスでの Node.js のセットアップ - AWS SDK for JavaScript

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ . ~/.nvm/nvm.sh
$ nvm install node
$ npm -v
8.3.0

作ったソースダウンロードしてきてAmplifyのセットアップ。

Read more

Raspberry pi 4でやってみる

寝る前にEC2で試してダメで、起きたらラズパイがあること思い出したので、ラズパイでも試してみる。

久しぶりの起動だし、OSクリーンインストールからやったら結構時間かかる。こんなにかかったっけ。

毎日のようにAmplify設定やっているとだいぶ慣れてくる。 JavaはWSLのときのコマンドで入れる。

add-apt-repository コマンドが見つかりませんエラーが出たので、インストールする。

Read more

ユーザーテーブルにデータ登録する

イベントにエントリーするときにユーザーテーブルとイベントテーブルの関連付けするので、それぞれのテーブルにデータがないといけない。

イベントテーブルの作成と編集はできるようになっているので、ユーザーテーブルにデータ登録するところを作る。

サインインのタイミングで登録できれば良いのだけれど、とりあえずログイン時にテーブルチェックして、なければ登録するようにする。

Read more

壊れたファイルを取り戻す

最初に試したチュートリアルもCodespaceでやってたのを思い出して、まだ残っていたのでaws-exporter.jsを持ってくることができた。

で、aws_appsync_graphqlEndpoint はAWSコンソールから確認できるだろう、と見に行ったら、バックエンドの設定をもってくるっぽいコマンドが。

Read more