890.sh 1.14 KB
#!/bin/bash

echo "=== 诊断超时问题 ==="

echo "问题分析:"
echo "API Gateway 能够建立连接,但后端应用没有在超时时间内响应"
echo "这通常表示:"
echo "1. 后端应用处理请求太慢"
echo "2. 后端应用崩溃或卡住"
echo "3. 网络延迟问题"

echo ""
echo "1. 检查当前超时设置:"
API_ID="o7epe60qzf"
PROXY_RESOURCE_ID="cjql15"

aws apigateway get-integration \
    --rest-api-id $API_ID \
    --resource-id $PROXY_RESOURCE_ID \
    --http-method ANY \
    --query 'TimeoutInMillis' \
    --output text

echo ""
echo "2. 增加超时时间到 30秒:"
aws apigateway update-integration \
    --rest-api-id $API_ID \
    --resource-id $PROXY_RESOURCE_ID \
    --http-method ANY \
    --patch-operations "[
        {
            \"op\": \"replace\",
            \"path\": \"/timeoutInMillis\", 
            \"value\": \"30000\"
        }
    ]"

echo "✅ 超时时间已调整为 30秒"

echo ""
echo "3. 使用更长超时时间测试:"
TEST_URL="https://${API_ID}.execute-api.us-east-1.amazonaws.com/prod/health"
echo "测试 (30秒超时): $TEST_URL"
timeout 35 curl -v --max-time 30 "$TEST_URL" 2>&1 | head -50