Score:0

AWS Cloudfront ส่งคืนการตอบกลับที่แตกต่างกันสำหรับข้อความค้นหาที่เหมือนกัน

ธง cn

ฉันมี API ที่ควรใช้ยอมรับ a เว็บไซต์ ส่วนหัวที่จัดทำโดยไคลเอนต์เพื่อตอบสนองแตกต่างกันไปขึ้นอยู่กับเว็บไซต์ที่ร้องขอ

ฉันได้อนุญาตส่วนหัวนี้ใน AWS Cloudfront แล้ว ตามความเข้าใจของฉัน นี่ควรหมายความว่า Cloudfront รวมไว้ในคีย์แคช

เมื่อฉันเรียก curl ที่เหมือนกันซ้ำๆ ไปยังปลายทาง ฉันจะได้รับผลลัพธ์ที่แตกต่างจาก Cloudfront

ส่วนหัวของการตอบสนองจะระบุการเข้าชมแคชจาก Cloudfront เสมอ แต่บางครั้งเนื้อหาการตอบสนองนั้นใช้สำหรับเว็บไซต์ที่ไม่ถูกต้อง กล่าวอีกนัยหนึ่ง Cloudfront ดูเหมือนจะไม่รวมส่วนหัวของเว็บไซต์ในรหัสแคชและส่งคืนเนื้อหาการตอบสนองสำหรับรหัสคำขออื่น

นี่คือตัวอย่างเอาต์พุตจากสคริปต์ด้านล่าง:

$ หาง -f one.txt
23245 - x-cache: เข้าชมจาก cloudfront
56138 - x-cache: เข้าชมจาก cloudfront
56138 - x-cache: เข้าชมจาก cloudfront
56138 - x-cache: เข้าชมจาก cloudfront
23245 - x-cache: เข้าชมจาก cloudfront

โปรดสังเกตว่า "ผลรวม" นั้นแตกต่างกัน (นี่คือคีย์ JSON ในการตอบกลับที่ฉันได้รับกลับมา)

ฉันใช้สคริปต์เพื่อโทรซ้ำ ดังนั้นฉันคาดว่าคำขอจะเหมือนกัน

เหตุใด Cloudfront จึงตอบกลับผิดในบางครั้ง

ฉันแน่ใจว่าต้นทางส่งคืนคำตอบที่ถูกต้องสำหรับส่วนหัวของเว็บไซต์เสมอ ฉันได้ตรวจสอบสิ่งนี้ด้วยการเรียกใช้สคริปต์ของฉันกับต้นทางโดยไม่มี Cloudfront อยู่ข้างหน้า และฉันได้ยืนยันด้วยว่าต้นทางของฉันไม่โดนโจมตีเมื่อฉันเรียกใช้สคริปต์นี้กับ Cloudfront

ฉันจะแก้ปัญหานี้ต่อไปได้อย่างไร ฉันคิดว่าบางทีฉันอาจใช้ "ผ่าน" เพื่อดูว่าโหนดขอบใดโหนดหนึ่งส่งคืนการตอบสนองที่ไม่ถูกต้องอยู่เสมอ แต่ก็ไม่ได้ผล

#!/bin/bash

ไฟล์=("หนึ่ง-totals.txt" "สองผลรวม.txt")
สำหรับฉันใน "${files[@]}"
ทำ
   rm $i >& /dev/null
เสร็จแล้ว

callWebsiteOne () {
    curl --location --request GET 'https://my-api.example.com' \
    --ส่วนหัว 'การอนุญาต: Bearer 123abc' \
    --ส่วนหัว 'เว็บไซต์: หนึ่ง' \
    -i > temp.txt
    รวม=$(cat temp.txt | sed s/[^{]*// | jq -r .total)
    edgenode=$(cat temp.txt | grep ผ่าน :)
    echo $total " - " $edgenode >> one-edges.txt
    echo $total >> one-totals.txt
    rm temp.txt
}

callWebsiteTwo () {
    curl --location --request GET 'https://my-api.example.com' \
    --ส่วนหัว 'การอนุญาต: Bearer 123abc' \
    -- ส่วนหัว 'เว็บไซต์: สอง' \
    -i > temp.txt
    รวม=$(cat temp.txt | sed s/[^{]*// | jq -r .total)
    edgenode=$(cat temp.txt | grep ผ่าน :)
    echo $total " - " $edgenode >> two.txt
    echo $total >> two-totals.txt
    rm temp.txt
}

โทรสุ่มเว็บไซต์ (){    
    สุ่ม=$[สุ่ม%4+1]
    กรณี $random in
        1)
            โทรเว็บไซต์หนึ่ง
            ;;
        2)
            โทรเว็บไซต์สอง
            ;;
    เอสแซค
}

สำหรับมูลค่าใน {1..100}
ทำ
    โทรสุ่มเว็บไซต์
    นอน0.25วิ
เสร็จแล้ว

สำหรับฉันใน "${files[@]}"
ทำ
    ไม่ซ้ำกัน = $ (เรียง $i | uniq | wc -l)
    รวม = $ (แมว $i | wc -l)
    echo $i " มี " $unique " ค่าเฉพาะใน " $total " รวมบรรทัด"
เสร็จแล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา