PythonでGraphQL (opens new window)サーバーを構築する。 GraphQLサーバの構築にはPythonのGraphQLライブラリであるGraphene (opens new window)を使う。 # GraphQLとは GraphQLは、RESTに代わるAPIの仕様だ。 APIは、クライアントがサーバーからデータを取得する方法を定義する。 GraphQLクライアントはGraphQLクエリ言語(GraphQL query language)によりデータを絞り込み、GraphQLサーバから必要なデータを取得する。 GraphQLサーバは、固定のデータ構造を返す複数のエンドポイントではなく、単一のエンドポイントのみを公開し、クライアントが要求したデータを返す。GraphQLスキーマ言語(GraphQL schema language)によりデータの追加や変更、型を定
はじめに 仕事でバックエンドに AWS API Gateway + AWS Lambda + Mangum + FastAPI で構築したサーバーレスなアプリケーションをプロダクションに持っていくことができた。ひと息したところで、別途 Azure を使うプロジェクトから参加要請が来た。ここはAzureならAzure API Management + Azure Functions だよなぁと思ってたけど、チュートリアル的にはひとつひとつの関数を追加する方法はあるが、のなんらかのフレームワークを利用する方法が探せず。まあ仕事の中で考える・勉強しつつやるかなと思ってたけど。コロナ禍の3連休、マンボーで外にも出たくないし、オリンピックもつまらないし、で Azure の勉強がてら試したメモ。 Azure Functions での WSGI/ASGI 状況 (2021/08) 結局、Azure Fu
Flask-RESTX (Flask-RESTPlus) で, サーバ起動せずに swagger.json を取得するPythonFlask初心者Flask-RESTPlusFlask-RESTX from flask import Flask from flask_restx import Api, Resource, fields def create_app(): app = Flask(__name__) api = Api(app) @api.route("/sample") class SampleResource(Resource): @api.marshal_with(api.model("sample model", { "name": fields.String, "age": fields.Integer, })) def get(self): raise NotIm
あらかじめ必要なもの aptitude install python-setuptools # for ubunutu easy_install werkzeug 注釈 環境によってはsudoなどを用いて管理者権限に昇格する必要があります。 Windows版でのsetuptoolsのインストールについては http://python.matrix.jp/modules/setuptools.html などを参照してください。 WSGIってなんじゃらほい(おさらい) WSGIはPython文化から生まれのHTTPサーバーインターフェース規格。 基本のサーバーを実現するのに一個の関数を決められた形で記述するだけという 超シンプルで素敵な規格なのです。 この規格を「WSGIアプリ規格」と呼びましょうか。 「WSGIアプリ規格」の最小のサンプルを以下に示します。 def application(e
前回は素のFlaskアプリケーションをデプロイしました。 今回はDockerコンテナを動かしてみます。 ちょうどAzure Web App for Containersと同じようなものです。 Azure Web App for Containers EC2より自由度は下がりますが管理が楽になり、 EBに単純にアプリケーションをデプロイするよりは自由度が上がります。 それなりに学習コストも高くなりますが、かけただけの時間を将来削減できると信じて勉強します。 今回は単一コンテナのDocker環境構築を行います。 Elastic Beanstalkとは Elastic Beanstalkではユーザはアプリケーションをデプロイするだけです。 ソースコードを自動でEC2に配置し、ウェブサーバを設定し、さらにロードバランサーやオートスケーリングなどの面倒もElastic Beanstalkが管理してく
AWS Elastic Beanstalk (EB)ではアプリケーションをデプロイすれば Azure App ServiceのWeb Appと同じですね。 Azure Web App + Python Elastic Beanstalk cliのインストール 公式に沿ってやっていきます。 brew install aws-elasticbeanstalk 仮想環境の構築 virtualenvで環境を構築します。 これまでpyenvしか使ってきてなかったのでvirtualenvをインストールします。 pip install virtualenv 仮想環境を作成。ホーム下に作ってます。 pyenvを使用しているとカレントディレクトリに設定されているPythonバージョンが使用されます。 二重構造でややこしい。 virtualenv ~/YOUR_DIRECTORY ちょっと待って完了したらアク
はじめに こんにちは、技術一課の山中です。 本ブログでは Python の Web フレームワークである Flask を AWS に Serverless Framework を用いてデプロイしてみます。 今回は Amazon Linux 2 上で以下に沿って進めます。 Build a Python REST API with Serverless, Lambda, and DynamoDB Flask とは Flask は Python 用のマイクロ Web 開発フレームワークです。 標準で提供する機能を最小限にしているため、軽量でマイクロフレームワークと呼ばれています。 事前準備 事前に pyenv と pyenv-virtualenv を使って仮想環境を用意しておきます。 $ pyenv virtualenv -p python3.7 3.7.1 flaskenv また、 Serve
2012 Pythonアドベントカレンダー(Webフレームワーク) #python_adv の5日目の記事です。 明日は @altnight にお願いします。 Flaskはオモチャじゃないよ PyCharmなどのIDEがFlaskに対応を始めたり、Flask はそろそろ Django に続く Python の Web フレームワーク No.2 と名乗れそうなほど広まってきています。(その割にPython3対応遅いけど) Flaskと言えばマイクロフレームワーク、Hello World が簡単に書けるヤツで有名ですよね。 import flask app = flask.Flask(__name__) @app.route('/') def index(): return "Hello, World." app.run(debug=True) これを見るとオモチャっぽく見えるんですが、Fla
前提 Flaskアプリケーションのローカル環境での開発方法は知っていて、本番環境でのdeploymentの方法が知りたい。uWSGIやNginxについてはあまり知らない。 概略 Flaskの公式によると You can use the builtin server during development, but you should use a full deployment option for production applications. とのことなので、アプリを公開するには組み込みサーバーの利用はせずに、別の方法を考える必要があるらしい。様々な方法があるようだが、ここではuWSGIとNginxという組合せで進める。 まず、基本的な言葉の整理からおこなう。 uWSGI uWSGIは、WSGIと名前は似ているが異なる概念であることに注意する。 WSGI(Web Server Gate
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く