Pythonで複数のhttpリクエストを同時に投げる
- 2020.11.30
あるプロダクトでGoogleのChat APIを使用した機能を作っていて、その際に、複数のAPIコールを並列で同時に投げたくて、そのやり方を調べて実装したのでメモ。 並列で複数処理を行う場合はasyncio.gatherを使う Node.jsでいうPromise.all的な処理をPythonで行うには、asyncio.gatherを使います。以下、実装例です。 APIコールを呼び出す側のコード A […]
最近Web系に移行したエンジニアのメモ
あるプロダクトでGoogleのChat APIを使用した機能を作っていて、その際に、複数のAPIコールを並列で同時に投げたくて、そのやり方を調べて実装したのでメモ。 並列で複数処理を行う場合はasyncio.gatherを使う Node.jsでいうPromise.all的な処理をPythonで行うには、asyncio.gatherを使います。以下、実装例です。 APIコールを呼び出す側のコード A […]
どんな本か? なぜテストを書くべきか、ということよりもどうやってテストを書けば良いかについてわかりやすく記載している本。非常に読みやすく、全体にざっと目を通すのにあまり時間はかからない。テストを書いたことがない人も、テストを書いたことはあるが体系的に学べていない人にも、とても参考になる内容と感じた。ちなみに自分はこれまである程度はテストを書いてきたが、ユニットテストと統合テストのどちらを優先すべき […]
CI/CDを構築する際、AWSのCodePipelineを使う機会はこれまで結構あったのですが、今回、初めてGCPのサービスであるCloudBuildを使ってみたので、その使い方を記録に残しておきます。 Cloud Buildアプリのインストール 今回は、ソースリポジトリとしてGitHubを使用するので、GitHub MarketplaceページからCloud Buildと連携するためのアプリをイ […]
Cognitoでは認証をしていないユーザー(ゲストユーザー)にロールを設定することができるので、その機能を使ってみました。この機能をAPI Gatewayに使用することで、未認証ユーザ用のクレデンシャルを付与しないとAPIにアクセスできないため、認証は不要だけどどこからでもアクセスされるのは防ぎたいという要件を満たすことができます。 ポイント Cognitoの未認証ユーザの機能を実装するにあたり、 […]
最近、Dockerfileを書く機会が多いのですが、ADDとCOPY、CMDとENTRYPOINTの違いを自分の中でも曖昧な状態で放置していたので、この機会にまとめておきたいと思います。 ADDとCOPYの違い 結論から言うと、以下の違いがあります。 ADD COPY リモートからのファイル追加 できる できない 圧縮ファイルの自動解凍 される されない ここで言うリモートからのファイル追加という […]
AWSのCodeシリーズでCI/CDを構築する際に、異なるアカウントのS3からファイルをコピーしたいという要件があり、少しハマったのでその解決方法をメモ。 やり方は3つある “s3 クロスアカウント”などで検索すると、AWS公式のサイトがヒットして、やり方が書いてあります。 https://aws.amazon.com/jp/premiumsupport/knowledge […]
現状Windows Serverで動いているC#のアプリケーションをコンテナ化したいという要望があり、その際Windowsコンテナについて少し調べたのでメモ。Windows系の知識が全然ないので、認識が誤っていたらコメントいただけるとありがたいです。 前提 C#を実行するフレームワークによって、以下のようにOSの制約があります。 .NET Framework:Windows上でしか動かない→Win […]
Apache httpdとTomcatの2プロセスを1コンテナで立ち上げる必要があり、その時にSupervisorを使用したので使い方をメモ。 前提 コンテナでアプリケーションを構築する際、1コンテナ1プロセスにするべきというのが一般論で、そうすることによって以下の点でメリットがあります。 プロセスが落ちるとコンテナも落ちるのでゾンビプロセスが生まれない stdout / stderrのログをコン […]
AWS IoT Coreを使ってみたのですが、ネットで情報を漁っていると意外と古い&ざっくりした情報が多く、トピックごとの権限を設定するのに少し詰まったので、備忘録として残しておきます。 AWS IoT Coreのリソース作成 まずはAWSのマネジメントコンソール上で、IoT Coreの設定を行っていきます。以下のサイトで詳しく書いてあったので、参考にしました。「AWS IoTにモノを登録 […]
EKSを導入することになったので、コンテナの復習としてECSの使い方をメモ。80番ポートにアクセスすると文字列を返却する超簡単なexpressのイメージを作成しているので、今回はそれを使う。 イメージをローカルで動作確認 以下コマンドで、コンテナが立ち上がる。ブラウザでlocalhostにアクセスすると、「Hello World」と表示される。–nameの箇所は任意。 確認できたら、以 […]