【AWS】Pythonの開発環境Chaliceを使ってみる - API Key
【AWS】Pythonの開発環境Chaliceを使ってみる - API Key:
PythonのLambda関数の開発環境としてChaliceを使ってみます。今回はChaliceによって作られるAPI Gatewayへのアクセスを、API Keyで制限してみます。
Chaliceの環境設定などは以下の記事を参照してください。
【AWS】Python Lambdaのdeploy - Chalice
ドキュメントは「AWS Chalice」 と 「aws/chalice - github」 になります。
まずプロジェクトを作成作成します。
次にソースコートは、ドキュメントにあるものを流用させていただきます。
APIが必要なパスと、必要無いパスを設定します。
次にdeployします。自動的にIAM roleが生成され、LambdaとAPI Gatewayが作成されます。最後に作成されたリソースが表示されます。
まずAPI Keyの必要ないパスにアクセスします。問題ありません。
次に、API Keyを要求するパスに、API Keyを指定せずに、アクセスします。これはエラーとなります。
それでは作成したAPI GatewayにAPI Keyの紐づけを行います。「ゼロから作りながら覚えるAPI Gateway環境構築」を参考にさせていただきました。今回はLambdaやAPI Gateway自体は自動生成されているので、API Keyの紐づけだけが必要となります。
AWSのコンソールのAPI Gatewayで使用量プランを選択します。無かったら上記ブログを参考にして作成ます。以下の画面のように作成されたAPI Gatewayを追加します。
追加されたら、APIキーの画面で「表示」をクリックし、キーをコピーします。
コピーしたキーをx-api-keyの値(zzzzz)にしてアクセスします。
これで無事にアクセスできました。
今回はこれで終わりです。
PythonのLambda関数の開発環境としてChaliceを使ってみます。今回はChaliceによって作られるAPI Gatewayへのアクセスを、API Keyで制限してみます。
Chaliceの環境設定などは以下の記事を参照してください。
【AWS】Python Lambdaのdeploy - Chalice
ドキュメントは「AWS Chalice」 と 「aws/chalice - github」 になります。
1.プロジェクト作成
まずプロジェクトを作成作成します。$ chalice new-project api-key-test $ cd api-key-test
APIが必要なパスと、必要無いパスを設定します。
app.py
from chalice import Chalice app = Chalice(app_name='api-key-test') # 以下のパスへのアクセスにはAPI Keyが必要ありません。 @app.route('/') def index(): return {'hello': 'world'} # 以下のパスへのアクセスにはAPI Keyが必要です。 @app.route('/auth', methods=['GET'], api_key_required=True) def authenticated(): return {"secure": True}
$ chalice deploy Creating deployment package. Creating IAM role: api-key-test-dev Creating lambda function: api-key-test-dev Creating Rest API Resources deployed: - Lambda ARN: arn:aws:lambda:ap-northeast-1:xxxxx:function:api-key-test-dev - Rest API URL: https://yyyyy.execute-api.ap-northeast-1.amazonaws.com/api/
2.テスト
まずAPI Keyの必要ないパスにアクセスします。問題ありません。$ curl https://yyyyy.execute-api.ap-northeast-1.amazonaws.com/api/ {"hello": "world"}
$ curl https://yyyyy.execute-api.ap-northeast-1.amazonaws.com/api/auth/ {"message":"Forbidden"}
AWSのコンソールのAPI Gatewayで使用量プランを選択します。無かったら上記ブログを参考にして作成ます。以下の画面のように作成されたAPI Gatewayを追加します。
追加されたら、APIキーの画面で「表示」をクリックし、キーをコピーします。
コピーしたキーをx-api-keyの値(zzzzz)にしてアクセスします。
$ curl -H 'x-api-key:zzzzz' https://yyyyy.execute-api.ap-northeast-1.amazonaws.com/api/auth/ {"secure": true}
今回はこれで終わりです。
コメント
コメントを投稿