gpt4 book ai didi

amazon-web-services - 使用Chalice将 header 添加到AWS API Gateway Response

转载 作者:行者123 更新时间:2023-12-02 13:45:19 25 4
gpt4 key购买 nike

我的用例要求我的应用程序在错误响应为401时返回CORS header 。

去年AWS(See this)添加了此功能。可以使用Cloudformation和Swagger模板完成此操作,但是我不确定Chalice是否可以使用。

最佳答案

我使用一个Python脚本解决了我的问题,该脚本为401响应添加了CORS header 并重新部署了API。重新部署API需要一两秒钟,因为它不必像Chalice一样部署所有Lambda。

deploy.sh

#!/usr/bin/env bash

cd services
A="$(chalice deploy --stage $1)"
cd ..
python update_api_response_headers.py "$A" "$1"

update_api_response_headers.py
import boto3
import sys
import re

if len(sys.argv) != 3:
print("usage: python script.py <CHALICE_DEPLOYMENT_RESULT> <STAGE>")
exit()

search = re.search('URL: https:\\/\\/([a-zA-Z0-9]+).+', sys.argv[1])
api_id = search.group(1)
print(api_id)
if not api_id:
print(sys.argv[1])
exit()
client = boto3.client('apigateway')

response = client.put_gateway_response(
restApiId=api_id,
responseType='UNAUTHORIZED',
statusCode='401',
responseParameters={
"gatewayresponse.header.Access-Control-Allow-Origin": "'*'",
"gatewayresponse.header.Access-Control-Allow-Headers": "'*'"
}
)
response = client.create_deployment(
restApiId=api_id,
stageName=sys.argv[2])

print(sys.argv[1])

服务文件夹包含我的 chalice 应用程序。 deploy.sh update_api_response_headers.py 被放置在 chalice 应用程序上方一级。要部署该应用程序,我只需要使用:
./deploy.sh stage_name

关于amazon-web-services - 使用Chalice将 header 添加到AWS API Gateway Response,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53708969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com