Sergey
Sergey

Reputation: 1

How to redirect in aws app runner with flask

I am trying to deploy my flask application to aws app runner, locally everything works perfectly. But I can't figure out how to redirect to another page of my website in app runner

My code looks similar to this

from flask import Flask, url_for
from waitress import serve

app = Flask(__name__)

@app.route("/hello")
def hello():
    return "Hello"

@app.route("/redirect_to")
def redirect_to():
    return "Redirected successfully!"

@app.route("/redirect_from")
def redirect_from():
    return redirect(url_for("redirect_to"))

if __name__ == "__main__":
    serve(app, host="0.0.0.0", port=8000)

App runner provided "Default domain" that redirects all traffic to my app, that is running on 0.0.0.0:8000. When I request default-domain.awsapprunner.com/hello, it successfully redirects to 0.0.0.0:8000/hello, but when I try to request default-domain.awsapprunner.com/redirect_from page loads forever. I think it happens because my app redirects to 0.0.0.0, and app runner expects that all traffic comes to default-domain.awsapprunner.com but I am not sure

What is the best way to fix this problem?

Upvotes: 0

Views: 543

Answers (1)

billyBob456
billyBob456

Reputation: 61

from flask import Flask, url_for, redirect
from waitress import serve

app = Flask(__name__)

@app.route("/hello")
def hello():
    return "Hello"

@app.route("/redirect_to")
def redirect_to():
    return "Redirected successfully!"

@app.route("/redirect_from")
def redirect_from():
    return redirect("http://YOUR_APP_URL.com/redirect_to")

if __name__ == "__main__":
    serve(app, host="0.0.0.0", port=8000)

Upvotes: -1

Related Questions