2021のゴールドスポンサーとしてスポンサーさせていただきました。今回弊社平瀬さんがLocastの内容で登壇されました!内容はこちらからご覧ください。speakerdeck.comその際、会社のブースではPythonを使ったミニゲームを実施していました。2021はオンラインとオフラインでのハイブリッド開催となりました。スポンサーブースはオンラインのみで、Discordのチャンネルに参加者の方に入っていただき、そこで会社の紹介や、参加者の方と交流するという流れになっていました。画像はブースで待機している図です。(JX通信社のブースです)その中でJX通信社ではミニゲームを開催し、来場者の方にゲームを遊んでいただき、抽選で景品を差し上げることにしました。オンラインブースに来てもらうためのコンテンツを用意すると、当日来てくれた方と話すきっかけになったり、宣伝もしやすかったので用意して良かったです。ゲームの内容ゲームを作るに当たり、UI部分まで作るのは大変そうだったので、小規模に、かつPythonを使ってゲームを楽しめるようにできないか考えた結果、お客さんはエンジニアなのでターミナルからアクセスしてもらう形式にしました。Responseはすべてテキストで返却して、回答者に答えをPostしていただく形式になっています。(ちなみにResponseをapplication/jsonではなくtext/plainにすることでターミナル上で改行がきちんと反映されるというハックがあります)また、回答していただけた方にアンケートを実施していたのですが、回答が全て好評でよかったです。今回設定したのは以下の要件でした。APIだけで完結させるお客さんのHTTPClientで答えをPostしてもらうシステム構成ソースコードはこちらで公開しています。FastAPI(ゲーム部分)API部分はFastAPIで作成しました。テキスト・問題・解答はyamlファイルに入れておき、ゲームの進行度に応じて適切な内容を返すようにしたので、ロジック部分はほぼありません。FastAPIは基本JSONレスポンスなので、文章を出す際に改行コードが出てしまい、若干見づらかったためテキスト形式でレスポンスを返すようにしました。Runは、通常コールドスタートといって、リクエストが来ない間はインスタンスを立ち上げない状態のままにしておき料金を抑えてくれるという特徴があります。リクエストが来る最初のレスポンスは時間がかかってしまう問題があり、コールドスタートのままだとリクエストから5秒以上かかってしまうこともありました。Runのオプションで最低1つのインスタンスを立ち上げておくようにしました。このようにデプロイ時にプロパティを設定することで、最低インスタンス数を指定することができます。ようなドメインが生成されます)、ある程度読みやすいドメインがほしいなと思いました。hostingを使って、ゲームに必要なドメインを作成することにしました。デフォルトだと、プロジェクト名そのままのドメインが生成されてしまうため、カスタムドメインを作成します。Firebaseの画面から新規でウェブのアプリを作成します。Hostingの設定もできるため、ここで追加します。その後、チュートリアルに従ってFirebaseの設定をします。Runに送信するための設定を記述します。Runに送信するための設定です。生成されたindex.htmlは削除しましょう。]}おまけ今回PyConJPの開催期間2日稼働させた結果、150円前後で抑えることができました。Runの最低インスタンスを抑えることでもう少し安くできたかもしれないですが)まとめ今回もスポンサーとして参加できてよかったです。パターン...取締役の小笠原(@yamitzky)です。Corp.引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。