在使用 AWS SAM(Local) 进行本地调试时,有时会发现本地调用与 API 网关返回的响应不同。这可能会导致代码在实际部署时运行出现问题。 在 Python 中,可以通过设置环境变量 AWS_SAM_LOCAL
为 true
来解决这个问题。同时,也需要在代码中增加对此变量的判断,并在本地测试时返回适当的响应格式。
示例代码:
import os
import json
def lambda_handler(event, context):
is_local = bool(os.environ.get('AWS_SAM_LOCAL'))
if is_local:
# 本地测试时使用
response_body = {
"message": "Hello Local!",
"input": event
}
return {
"statusCode": 200,
"body": json.dumps(response_body)
}
else:
# 部署时使用
response_body = {
"message": "Hello Production!",
"input": event
}
return {
"statusCode": 200,
"body": json.dumps(response_body)
}