SAMのURLパラメタの分析にflaskを使う

template.ymlにて

  SampleFlaskFunction:
    Type: AWS::Serverless::Function 
    Properties:
      CodeUri: src/
      Handler: flask_test.lambda_handler
      Runtime: python3.7
      Events:
        HttpGet:
          Type: Api
          Properties:
            Path: '/flask'
            Method: GET
        HttpGetProxy:
          Type: Api
          Properties:
            Path: '/flask/{proxy+}'
            Method: GET

のような設定をしている時に

lambda側でパラメタを取得したい場合は

from flask import Flask, jsonify
import awsgi

app = Flask(__name__)

@app.route('/flask/<name>')
def output_name(name):
    return jsonify({'input': name})

def lambda_handler(event, context):
    return awsgi.response(app, event, context)

このようにすると取得できる

なおアクセスできるURLは
http://127.0.0.1:3000/flask/name

SAM側で振り分けたflaskというディレクトリもlambdaでも設定する必要がある。(アクセスしたパスがそのまま渡ってきているイメージか)

@app.route('/flask/<name>/test/<test>/test2/<test2>')
def output_name(name,test,test2):
    return jsonify({'value': name + test + test2}

このように複数の値の取得も可能

pythonのリストの逆順

google app engineの親子の関係の子供を降順で表示したかったのだが

reverse()ってのが使えるらしいが

リストの中で使うと上手くいかない

そのような場合は

{% for comment in message.comments reversed %}

こんな感じで行うと逆順でループが走る

(これはdjangoのみ??)