SlackAPIをLocalで利用しようと思ったけど、httpsのURLしか対応していない...
そこでngrokを利用してlocalhost:8080を外部公開することにしました。
DockerでLocal開発環境を構築し、バックエンドにFastAPIを使用しています
docker-compose.yml
以下のようにdocker-compose.ymlに記述することで外部公開することができました。
ngrok:
image: wernight/ngrok:latest
ports:
- 4040:4040
environment:
NGROK_PROTOCOL: http
NGROK_PORT: server:8080 # Serverがバックエンドのサービス名(Port8080)
FastAPIはASGIフレームワークなので、Nnginxのコンテナを立てなくても実行できました。
(ASGIがまだよくわかっていないです)
アクセスしてみる
localhost:4040にアクセスすると以下のような画面が表示されました。
httpsの方をクリックすると、localhost:8080で表示されていた画面にアクセスすることができました!
コンテナを再起動すれば、外部公開されるURLも変わります。
思った以上に簡単に外部公開できました。
これでSlackAPIが利用できそうです。
ngrokのコンテナ起動中だと外部公開されているのも嫌なので、SlackAPI使用しない間はコンテナを停止して運用したいと思います。(厳密には無料アカウントだと起動時間に制限があるようですが...)
参考記事