1

我试图用 chalice 构建一个简单的 api+lambda,它可以接收 POST 请求,然后在添加一些身份验证的同时将其转发到另一个 API。当我在本地运行我的 chalice 代码时,我可以发送请求并打印我在 chalice 控制台中发送的有效负载,但我无法转发我的请求。我没有找回我的代码中的任何错误或其他打印语句。我不知道在哪里可以找到更多答案,所以我在这里问。

from chalice import Chalice
import requests

app = Chalice(app_name='redirect_url')
app.debug = True
TOKEN_URL = "https://redirect.com/v0/token"
USERNAME = 'email@email.com'
PASSWORD = 'Password01021'


@app.route('/redirect_url', methods=['POST'])
def get_payload():
    update_payload = app.current_request.json_body
    print(update_payload)


def fetch_auth_token():
    username = USERNAME
    password = PASSWORD
    data = {
        "grant_type": "password",
        "username": username,
        "password": password
    }
    response = requests.post(TOKEN_URL, data=data)
    token = response.json()
    print(token)    

如果我向端点(http://127.0.0.1:8000/redirect_url)发送请求,我会看到我的请求打印在圣杯日志中,但我没有看到令牌请求。我将不胜感激任何帮助

4

1 回答 1

0

这有点老了,但我想我会为那些刚接触 Chalice 的人回答这个问题。

您期望在不调用它的情况下触发该函数。它应该是:

from chalice import Chalice
import requests

app = Chalice(app_name='redirect_url')
app.debug = True
TOKEN_URL = "https://redirect.com/v0/token"
USERNAME = 'email@email.com'
PASSWORD = 'Password01021'


@app.route('/redirect_url', methods=['POST'])
def get_payload():
    update_payload = app.current_request.json_body
    APIresponse = fetch_auth_token()
    print(APIresponse) ## If you want to show it right before the update_payload
    print(update_payload)


def fetch_auth_token():
    username = USERNAME
    password = PASSWORD
    data = {
        "grant_type": "password",
        "username": username,
        "password": password
    }
    response = requests.post(TOKEN_URL, data=data)
    return response.json()
于 2020-08-05T14:31:34.770 回答