Điểm:0

AWS Cloudfront đang trả về các phản hồi khác nhau cho các truy vấn giống hệt nhau

lá cờ cn

Tôi có một API được cho là sử dụng chấp nhận một trang mạng tiêu đề do khách hàng cung cấp để phản hồi khác nhau tùy thuộc vào yêu cầu dành cho trang web nào.

Tôi đã đưa tiêu đề này vào danh sách trắng trong AWS Cloudfront. Theo hiểu biết của tôi, điều này có nghĩa là Cloudfront bao gồm nó trong khóa bộ đệm.

Khi tôi lặp lại các lệnh gọi curl giống hệt nhau đến điểm cuối của mình, tôi nhận được các kết quả khác nhau từ Cloudfront.

Các tiêu đề phản hồi luôn cho biết lần truy cập bộ nhớ cache từ Cloudfront, nhưng nội dung phản hồi đôi khi dành cho trang web sai. Nói cách khác, Cloudfront dường như không bao gồm tiêu đề trang web trong khóa bộ đệm và đang trả lại nội dung phản hồi cho một khóa yêu cầu khác.

Đây là một đầu ra mẫu từ kịch bản dưới đây:

$ đuôi -f one.txt
23245 - x-cache: Lượt truy cập từ nền tảng đám mây
56138 - x-cache: Lượt truy cập từ nền tảng đám mây
56138 - x-cache: Lượt truy cập từ nền tảng đám mây
56138 - x-cache: Lượt truy cập từ nền tảng đám mây
23245 - x-cache: Lượt truy cập từ nền tảng đám mây

Lưu ý rằng "tổng" là khác (đây là khóa JSON trong phản hồi tôi nhận được)

Tôi đang sử dụng tập lệnh để lặp lại các cuộc gọi nên tôi cho rằng yêu cầu giống hệt nhau.

Tại sao đôi khi Cloudfront trả về phản hồi sai?

Tôi chắc chắn rằng nguồn gốc luôn trả về phản hồi chính xác cho tiêu đề trang web. Tôi đã xác minh điều này bằng cách chạy tập lệnh của mình đối với nguồn gốc mà không có Cloudfront trước nó và tôi cũng đã xác minh rằng nguồn gốc của tôi không bị tấn công khi tôi chạy tập lệnh này với Cloudfront.

Làm thế nào tôi có thể gỡ lỗi này hơn nữa? Tôi nghĩ rằng có lẽ tôi có thể sử dụng "thông qua" để xem liệu một nút cạnh cụ thể có luôn trả về phản hồi sai hay không, nhưng điều đó không hiệu quả.

#!/bin/bash

files=("one-totals.txt" "hai-totals.txt")
cho tôi trong "${files[@]}"
làm
   rm $i >& /dev/null
xong

gọiWebsiteOne () {
    curl --location --request NHẬN 'https://my-api.example.com' \
    --header 'Ủy quyền: Bearer 123abc' \
    --header 'trang web: một' \
    -i > temp.txt
    tổng=$(cat temp.txt | sed s/[^{]*// | jq -r .total)
    edgenode=$(cat temp.txt | grep qua:)
    echo $total " - " $edgenode >> one-edges.txt
    echo $total >> one-totals.txt
    rm temp.txt
}

gọiWebsiteTwo () {
    curl --location --request NHẬN 'https://my-api.example.com' \
    --header 'Ủy quyền: Bearer 123abc' \
    --header 'trang web: hai' \
    -i > temp.txt
    tổng=$(cat temp.txt | sed s/[^{]*// | jq -r .total)
    edgenode=$(cat temp.txt | grep qua:)
    echo $total " - " $edgenode >> two.txt
    echo $total >> two-totals.txt
    rm temp.txt
}

callRandomWebsite (){    
    ngẫu nhiên=$[RANDOM%4+1]
    trường hợp $ ngẫu nhiên trong
        1)
            gọiWebsiteOne
            ;;
        2)
            gọiWebsiteHai
            ;;
    thoát hiểm
}

cho giá trị trong {1..100}
làm
    gọi Ngẫu nhiênTrang web
    ngủ 0,25s
xong

cho tôi trong "${files[@]}"
làm
    duy nhất=$(sắp xếp $i | uniq | wc -l)
    tổng=$(mèo $i | wc -l)
    echo $i " có các giá trị duy nhất " $unique " trong tổng số dòng " $total ""
xong

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.