Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เชนเซ‡ เชนเชฌเชฐ!

เชถเซเช‚ เชคเชฎเชจเซ‡ เช‰เชกเชคเชพ เชเชฐเซ‹เชชเซเชฒเซ‡เชจ เช—เชฎเซ‡ เช›เซ‡? เชฎเชจเซ‡ เชคเซ‡ เช—เชฎเซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชธเซเชต-เช…เชฒเช—เชคเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฎเชจเซ‡ เชเช• เชœเชพเชฃเซ€เชคเชพ เชธเช‚เชธเชพเชงเชจ - Aviasales เชฎเชพเช‚เชฅเซ€ เชเชฐ เชŸเชฟเช•เชฟเชŸ เชชเชฐเชจเชพ เชกเซ‡เชŸเชพเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เชชเชฃ เชชเซเชฐเซ‡เชฎ เชฅเชฏเซ‹.

เช†เชœเซ‡ เช…เชฎเซ‡ Amazon Kinesis เชจเชพ เช•เชพเชฐเซเชฏเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ€เชถเซเช‚, เชฐเซ€เช…เชฒ-เชŸเชพเช‡เชฎ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชธเชพเชฅเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชฌเชจเชพเชตเซ€เชถเซเช‚, Amazon DynamoDB NoSQL เชกเซ‡เชŸเชพเชฌเซ‡เชธเชจเซ‡ เชฎเซเช–เซเชฏ เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐเซ‡เชœ เชคเชฐเซ€เช•เซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€เชถเซเช‚ เช…เชจเซ‡ เชฐเชธเชชเซเชฐเชฆ เชŸเชฟเช•เชฟเชŸเซ‹ เชฎเชพเชŸเซ‡ SMS เชธเซ‚เชšเชจเชพเช“ เชธเซ‡เชŸ เช•เชฐเซ€เชถเซเช‚.

เชฌเชงเซ€ เชตเชฟเช—เชคเซ‹ เช•เชŸ เชนเซ‡เช เชณ เช›เซ‡! เชœเชพเช“!

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เชชเชฐเชฟเชšเชฏ

เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เช…เชฎเชจเซ‡ เชเช•เซเชธเซ‡เชธเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ Aviasales API. เชคเซ‡เชจเซ€ เชเช•เซเชธเซ‡เชธ เชตเชฟเชจเชพ เชฎเซ‚เชฒเซเชฏเซ‡ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเชฌเช‚เชงเซ‹ เชตเชฟเชจเชพ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡; เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เชกเซ‡เชŸเชพเชจเซ‡ เชเช•เซเชธเซ‡เชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซเช‚ API เชŸเซ‹เช•เชจ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ "เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพ" เชตเชฟเชญเชพเช—เชฎเชพเช‚ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.

เช† เชฒเซ‡เช–เชจเซ‹ เชฎเซเช–เซเชฏ เชนเซ‡เชคเซ AWS เชฎเชพเช‚ เชฎเชพเชนเชฟเชคเซ€ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช—เชจเชพ เช‰เชชเชฏเซ‹เช—เชจเซ€ เชธเชพเชฎเชพเชจเซเชฏ เชธเชฎเชœ เช†เชชเชตเชพเชจเซ‹ เช›เซ‡; เช…เชฎเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเช เช›เซ€เช เช•เซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏเซ‡เชฒ API เชฆเซเชตเชพเชฐเชพ เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชกเซ‡เชŸเชพ เชธเช–เชค เชฐเซ€เชคเซ‡ เช…เชช-เชŸเซ-เชกเซ‡เชŸ เชจเชฅเซ€ เช…เชจเซ‡ เชคเซ‡ เช•เซ‡เชถเชฎเชพเช‚เชฅเซ€ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เช›เซ‡, เชœเซ‡ เช›เซ‡เชฒเซเชฒเชพ 48 เช•เชฒเชพเช•เชฅเซ€ Aviasales.ru เช…เชจเซ‡ Jetradar.com เชธเชพเช‡เชŸเชจเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชฆเซเชตเชพเชฐเชพ เชถเซ‹เชงเชจเชพ เช†เชงเชพเชฐเซ‡ เชฐเชšเชจเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.

เช•เชพเช‡เชจเซ‡เชธเชฟเชธ-เชเชœเชจเซเชŸ, เชชเซเชฐเซ‹เชกเซเชฏเซเชธเชฟเช‚เช— เชฎเชถเซ€เชจ เชชเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚, API เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡, เชคเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชฆเซเชตเชพเชฐเชพ เช‡เชšเซเช›เชฟเชค เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชกเซ‡เชŸเชพเชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชŸเซเชฐเชพเชจเซเชธเชฎเชฟเชŸ เช•เชฐเชถเซ‡. เช† เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชฐเซ‹ เชตเชฐเซเชเชจ เชธเซเชŸเซ‹เชฐ เชชเชฐ เชธเซ€เชงเซเช‚ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. DynamoDB เชฎเชพเช‚ เชคเซˆเชจเชพเชค เช•เชฐเชพเชฏเซ‡เชฒ เช•เชพเชšเซ‹ เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐเซ‡เชœ BI เชŸเซ‚เชฒเซเชธ, เชœเซ‡เชฎ เช•เซ‡ AWS เช•เซเชตเชฟเช• เชธเชพเช‡เชŸ เชฆเซเชตเชพเชฐเชพ เชŸเชฟเช•เชฟเชŸ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฎเชพเชŸเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เช†เชชเชถเซ‡.

เช…เชฎเซ‡ เชธเชฎเช—เซเชฐ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เชฌเซ‡ เชตเชฟเช•เชฒเซเชชเซ‹ เชชเชฐ เชตเชฟเชšเชพเชฐ เช•เชฐเซ€เชถเซเช‚:

  • เชฎเซ‡เชจเซเชฏเซเช…เชฒ - AWS เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เช•เชจเซเชธเซ‹เชฒ เชฆเซเชตเชพเชฐเชพ;
  • เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช†เชณเชธเซ เช“เชŸเซ‹เชฎเซ‡เชŸเชฐเซเชธ เชฎเชพเชŸเซ‡ เช›เซ‡;

เชตเชฟเช•เชธเชฟเชค เชธเชฟเชธเซเชŸเชฎเชจเซเช‚ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชตเชชเชฐเชพเชฏเซ‡เชฒ เช˜เชŸเช•เซ‹:

  • Aviasales API โ€” เช† API เชฆเซเชตเชพเชฐเชพ เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เชกเซ‡เชŸเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เชชเช›เซ€เชจเชพ เชคเชฎเชพเชฎ เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡;
  • EC2 เชจเชฟเชฐเซเชฎเชพเชคเชพ เช‰เชฆเชพเชนเชฐเชฃ โ€” เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชจเชฟเชฏเชฎเชฟเชค เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ เชœเชจเชฐเซ‡เชŸ เชฅเชถเซ‡:
    • เช•เชฟเชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸ เชฎเชถเซ€เชจ เชชเชฐ เชธเซเชฅเชพเชจเชฟเช• เชฐเซ€เชคเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซ€ เชœเชพเชตเชพ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช›เซ‡ เชœเซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ (เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ เช…เชฅเชตเชพ เช•เชฟเชจเซ‡เชธเชฟเชธ เชซเชพเชฏเชฐเชนเซ‹เช) เชจเซ‡ เชกเซ‡เชŸเชพ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชธเชฐเชณ เชฐเซ€เชค เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชเชœเชจเซเชŸ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เช“เชฎเชพเช‚ เชซเชพเช‡เชฒเซ‹เชจเชพ เชธเซ‡เชŸเชจเซเช‚ เชธเชคเชค เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เชฟเชจเซ‡เชธเชฟเชธเชจเซ‡ เชจเชตเซ‹ เชกเซ‡เชŸเชพ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡;
    • API เช•เซ‹เชฒเชฐ เชธเซเช•เซเชฐเชฟเชชเซเชŸ โ€” เชเช• เชชเชพเชฏเชฅเซ‹เชจ เชธเซเช•เซเชฐเชฟเชชเซเชŸ เช•เซ‡ เชœเซ‡ API เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชชเซเชฐเชคเชฟเชญเชพเชตเชจเซ‡ เชซเซ‹เชฒเซเชกเชฐเชฎเชพเช‚ เชฎเซ‚เช•เซ‡ เช›เซ‡ เชœเซ‡เชจเซเช‚ เช•เชพเชˆเชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸ เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡;
  • เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ - เชตเชฟเชถเชพเชณ เชธเซเช•เซ‡เชฒเชฟเช‚เช— เช•เซเชทเชฎเชคเชพเช“ เชธเชพเชฅเซ‡ เชฐเซ€เช…เชฒ-เชŸเชพเช‡เชฎ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช— เชธเซ‡เชตเชพ;
  • เช•เชฟเชจเซ‡เชธเชฟเชธ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชเช• เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเซ‡เชตเชพ เช›เซ‡ เชœเซ‡ เชตเชพเชธเซเชคเชตเชฟเช• เชธเชฎเชฏเชฎเชพเช‚ เชธเซเชŸเซเชฐเซ€เชฎเชฟเช‚เช— เชกเซ‡เชŸเชพเชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃเชจเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡. Amazon Kinesis Data Analytics เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เช—เซ‹เช เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช†เชตเชจเชพเชฐเชพ เชกเซ‡เชŸเชพเชจเชพ เช•เซ‹เชˆเชชเชฃ เชตเซ‹เชฒเซเชฏเซเชฎเชจเซ‡ เชนเซ‡เชจเซเชกเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชธเซเช•เซ‡เชฒ เช•เชฐเซ‡ เช›เซ‡;
  • AWS เชฒเซ‡เชฎเซเชฌเชกเชพ โ€” เชเชตเซ€ เชธเซ‡เชตเชพ เช•เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เชธเชฐเซเชตเชฐเชจเซ‹ เชฌเซ‡เช•เช…เชช เชฒเซ€เชงเชพ เชตเชฟเชจเชพ เช…เชฅเชตเชพ เชธเซ‡เชŸเช…เชช เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ เช•เซ‹เชก เชšเชฒเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชฆเชฐเซ‡เช• เช•เซ‰เชฒ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฎ เช•เชฎเซเชชเซเชฏเซเชŸเชฟเช‚เช— เชชเชพเชตเชฐ เช†เชชเชฎเซ‡เชณเซ‡ เชฎเชพเชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡;
  • เชเชฎเซ‡เชเซ‹เชจ เชกเชพเชฏเชจเชพเชฎเซ‹เชกเซ€เชฌเซ€ - เช•เซ€-เชตเซ‡เชฒเซเชฏเซ เชœเซ‹เชกเซ€ เช…เชจเซ‡ เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹เชจเซ‹ เชกเซ‡เชŸเชพเชฌเซ‡เช เชœเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเซเช•เซ‡เชฒ เชชเชฐ เชšเชพเชฒเชคเซ€ เชตเช–เชคเซ‡ 10 เชฎเชฟเชฒเซ€เชธเซ‡เช•เช‚เชกเชฅเซ€ เช“เช›เซ€ เชฒเซ‡เชŸเชจเซเชธเซ€ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. DynamoDB เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เช•เซ‹เชˆเชชเชฃ เชธเชฐเซเชตเชฐเชจเซ‡ เชœเซ‹เช—เชตเชพเชˆ, เชชเซ‡เชš เช…เชฅเชตเชพ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. DynamoDB เช‰เชชเชฒเชฌเซเชง เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชฎเชพเชคเซเชฐเชพเชจเซ‡ เชธเชฎเชพเชฏเซ‹เชœเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เช‰เชšเซเชš เชชเซเชฐเชฆเชฐเซเชถเชจ เชœเชพเชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹เชจเซ‡ เชธเซเช•เซ‡เชฒ เช•เชฐเซ‡ เช›เซ‡. เช•เซ‹เชˆ เชธเชฟเชธเซเชŸเชฎ เชตเชนเซ€เชตเชŸ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€;
  • เชเชฎเซ‡เชเซ‹เชจ SNS - เชชเซเชฐเช•เชพเชถเช•-เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌเชฐ (เชชเชฌ/เชธเชฌ) เชฎเซ‰เชกเชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃ เชตเซเชฏเชตเชธเซเชฅเชพเชชเชฟเชค เชธเซ‡เชตเชพ, เชœเซ‡เชจเซ€ เชฎเชฆเชฆเชฅเซ€ เชคเชฎเซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชธเชฐเซเชตเชฟเชธเชฟเชธ, เชกเชฟเชธเซเชŸเซเชฐเชฟเชฌเซเชฏเซเชŸเซ‡เชก เชธเชฟเชธเซเชŸเชฎเซเชธ เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซเชธเชจเซ‡ เช…เชฒเช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. SNS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเซ‹เชฌเชพเช‡เชฒ เชชเซเชถ เชธเซ‚เชšเชจเชพเช“, SMS เชธเช‚เชฆเซ‡เชถเชพเช“ เช…เชจเซ‡ เช‡เชฎเซ‡เช‡เชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เช…เช‚เชคเชฟเชฎ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“เชจเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชชเซเชฐเชพเชฐเช‚เชญเชฟเช• เชคเชพเชฒเซ€เชฎ

เชกเซ‡เชŸเชพ เชซเซเชฒเซ‹เชจเซเช‚ เช…เชจเซเช•เชฐเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฎเซ‡เช‚ Aviasales API เชฆเซเชตเชพเชฐเชพ เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเซ€ เชเชฐเชฒเชพเช‡เชจ เชŸเชฟเช•เชฟเชŸ เชฎเชพเชนเชฟเชคเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. IN เชฆเชธเซเชคเชพเชตเซ‡เชœเซ€เช•เชฐเชฃ เชตเชฟเชตเชฟเชง เชชเชฆเซเชงเชคเชฟเช“เชจเซ€ เชคเชฆเซเชฆเชจ เชตเชฟเชธเซเชคเซƒเชค เชธเซ‚เชšเชฟ, เชšเชพเชฒเซ‹ เชคเซ‡เชฎเชพเช‚เชฅเซ€ เชเช• เชฒเชˆเช - "เชฎเชพเชธเชฟเช• เช•เชฟเช‚เชฎเชค เช•เซ‡เชฒเซ‡เชจเซเชกเชฐ", เชœเซ‡ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฃเชจเซ€ เชธเช‚เช–เซเชฏเชพ เชฆเซเชตเชพเชฐเชพ เชœเซ‚เชฅเชฌเชฆเซเชง, เชฎเชนเชฟเชจเชพเชจเชพ เชฆเชฐเซ‡เช• เชฆเชฟเชตเชธ เชฎเชพเชŸเซ‡ เช•เชฟเช‚เชฎเชคเซ‹ เช†เชชเซ‡ เช›เซ‡. เชœเซ‹ เชคเชฎเซ‡ เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เชถเซ‹เชง เชฎเชนเชฟเชจเชพเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เชจ เช•เชฐเซ‹, เชคเซ‹ เชตเชฐเซเชคเชฎเชพเชจ เชฎเชนเชฟเชจเชพ เชชเช›เซ€เชจเชพ เชฎเชนเชฟเชจเชพ เชฎเชพเชŸเซ‡ เชฎเชพเชนเชฟเชคเซ€ เชชเชฐเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

เชคเซ‹, เชšเชพเชฒเซ‹ เชจเซ‹เช‚เชงเชฃเซ€ เช•เชฐเชพเชตเซ€เช เช…เชจเซ‡ เช…เชฎเชพเชฐเซเช‚ เชŸเซ‹เช•เชจ เชฎเซ‡เชณเชตเซ€เช.

เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชตเชฟเชจเช‚เชคเซ€ เชจเซ€เชšเซ‡ เช›เซ‡:

http://api.travelpayouts.com/v2/prices/month-matrix?currency=rub&origin=LED&destination=HKT&show_to_affiliates=true&token=TOKEN_API

เชตเชฟเชจเช‚เชคเซ€เชฎเชพเช‚ เชŸเซ‹เช•เชจเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ€เชจเซ‡ API เชชเชพเชธเซ‡เชฅเซ€ เชกเซ‡เชŸเชพ เชฎเซ‡เชณเชตเชตเชพเชจเซ€ เช‰เชชเชฐเชจเซ€ เชชเชฆเซเชงเชคเชฟ เช•เชพเชฎ เช•เชฐเชถเซ‡, เชชเชฐเช‚เชคเซ เชนเซเช‚ เชนเซ‡เชกเชฐ เชฆเซเชตเชพเชฐเชพ เชเช•เซเชธเซ‡เชธ เชŸเซ‹เช•เชจ เชชเชธเชพเชฐ เช•เชฐเชตเชพเชจเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเซเช‚ เช›เซเช‚, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ api_caller.py เชธเซเช•เซเชฐเชฟเชชเซเชŸเชฎเชพเช‚ เช† เชชเชฆเซเชงเชคเชฟเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚.

เชœเชตเชพเชฌ เช‰เชฆเชพเชนเชฐเชฃ:

{{
   "success":true,
   "data":[{
      "show_to_affiliates":true,
      "trip_class":0,
      "origin":"LED",
      "destination":"HKT",
      "depart_date":"2015-10-01",
      "return_date":"",
      "number_of_changes":1,
      "value":29127,
      "found_at":"2015-09-24T00:06:12+04:00",
      "distance":8015,
      "actual":true
   }]
}

เช‰เชชเชฐเซ‹เช•เซเชค API เชชเซเชฐเชคเชฟเชธเชพเชฆ เช‰เชฆเชพเชนเชฐเชฃ เชธเซ‡เชจเซเชŸ เชชเซ€เชŸเชฐเซเชธเชฌเชฐเซเช—เชฅเซ€ เชซเซเช• เชธเซเชงเซ€เชจเซ€ เชŸเชฟเช•เชฟเชŸ เชฌเชคเชพเชตเซ‡ เช›เซ‡... เช“เชน, เชถเซเช‚ เชธเซเชตเชชเซเชจ เช›เซ‡...
เชนเซเช‚ เช•เชเชพเชจเชฅเซ€ เช›เซเช‚ เช…เชจเซ‡ เชซเซ‚เช•เซ‡เชŸ เชนเชตเซ‡ โ€œเชฎเชพเชคเซเชฐ เชเช• เชธเซเชตเชชเซเชจโ€ เช›เซ‡, เชšเชพเชฒเซ‹ เชธเซ‡เชจเซเชŸ เชชเซ€เชŸเชฐเซเชธเชฌเชฐเซเช—เชฅเซ€ เช•เชพเชเชพเชจ เชธเซเชงเซ€เชจเซ€ เชŸเชฟเช•เชฟเชŸเซ‹ เชœเซ‹เชˆเช.

เชคเซ‡ เชงเชพเชฐเซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ AWS เชเช•เชพเช‰เชจเซเชŸ เช›เซ‡. เชนเซเช‚ เชคเชฐเชค เชœ เช เชนเช•เซ€เช•เชค เชชเชฐ เชตเชฟเชถเซ‡เชท เชงเซเชฏเชพเชจ เชฆเซ‹เชฐเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เช•เซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เช…เชจเซ‡ เชเชธเชเชฎเชเชธ เชฆเซเชตเชพเชฐเชพ เชธเซ‚เชšเชจเชพเช“ เชฎเซ‹เช•เชฒเชตเซ€ เชตเชพเชฐเซเชทเชฟเช•เชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เชจเชฅเซ€. เชซเซเชฐเซ€ เชŸเชฟเชฏเชฐ (เชฎเชซเชค เช‰เชชเชฏเซ‹เช—). เชชเชฐเช‚เชคเซ เช† เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เช•เซ‡เชŸเชฒเชพเช• เชกเซ‹เชฒเชฐเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฐเชพเช–เซ€เชจเซ‡, เชธเซ‚เชšเชฟเชค เชธเชฟเชธเซเชŸเชฎ เชฌเชจเชพเชตเชตเซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชฐเชฎเชตเซเช‚ เชคเชฆเซเชฆเชจ เชถเช•เซเชฏ เช›เซ‡. เช…เชจเซ‡, เช…เชฒเชฌเชคเซเชค, เชฌเชงเชพ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เชจ เชนเซ‹เชฏ เชคเซ‡ เชชเช›เซ€ เชคเซ‡เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เชตเชพเชจเซเช‚ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚.

เชธเชฆเชจเชธเซ€เชฌเซ‡, เชœเซ‹ เชคเชฎเซ‡ เชฎเชพเชธเชฟเช• เชฎเชซเชค เชฎเชฐเซเชฏเชพเชฆเชพเชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเซ‹ เช›เซ‹ เชคเซ‹ DynamoDb เช…เชจเซ‡ lambda เชซเช‚เช•เซเชถเชจ เช…เชฎเชพเชฐเชพ เชฎเชพเชŸเซ‡ เชฎเชซเชค เชฐเชนเซ‡เชถเซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, DynamoDB เชฎเชพเชŸเซ‡: 25 GB เชธเซเชŸเซ‹เชฐเซ‡เชœ, 25 WCU/RCU เช…เชจเซ‡ 100 เชฎเชฟเชฒเชฟเชฏเชจ เช•เซเชตเซ‡เชฐเซ€เช. เช…เชจเซ‡ เชฆเชฐ เชฎเชนเชฟเชจเซ‡ เชเช• เชฎเชฟเชฒเชฟเชฏเชจ เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจ เช•เซ‰เชฒเซเชธ.

เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชธเชฟเชธเซเชŸเชฎ เชœเชฎเชพเชตเชŸ

เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชšเชพเชฒเซ‹ เช•เชพเชˆเชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ เชธเซ‡เชตเชพ เชชเชฐ เชœเชˆเช เช…เชจเซ‡ เชฌเซ‡ เชจเชตเซ€ เชธเซเชŸเซเชฐเซ€เชฎ เชฌเชจเชพเชตเซ€เช, เชฆเชฐเซ‡เช• เชฎเชพเชŸเซ‡ เชเช• เชถเชพเชฐเซเชก.

เชถเชพเชฐเซเชก เชถเซเช‚ เช›เซ‡?
เชถเชพเชฐเซเชก เช เชเชฎเซ‡เชเซ‹เชจ เช•เชฟเชจเซ‡เชธเชฟเชธ เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชฎเซ‚เชณเชญเซ‚เชค เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชฏเซเชจเชฟเชŸ เช›เซ‡. เชเช• เชธเซ‡เช—เชฎเซ‡เชจเซเชŸ 1 MB/s เชจเซ€ เชเชกเชชเซ‡ เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช…เชจเซ‡ 2 MB/s เชจเซ€ เชเชกเชชเซ‡ เช†เช‰เชŸเชชเซเชŸ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชเช• เชธเซ‡เช—เชฎเซ‡เชจเซเชŸ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก 1000 PUT เชเชจเซเชŸเซเชฐเซ€เชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเซ‡ เช›เซ‡. เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ เชฌเชจเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชคเชฎเชพเชฐเซ‡ เชธเซ‡เช—เชฎเซ‡เชจเซเชŸเซเชธเชจเซ€ เช†เชตเชถเซเชฏเช• เชธเช‚เช–เซเชฏเชพเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเซ‡ เชฌเซ‡ เชตเชฟเชญเชพเช—เซ‹ เชธเชพเชฅเซ‡ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ เชฌเชจเชพเชตเซ€ เชถเช•เซ‹ เช›เซ‹. เช† เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎ 2 MB/s เชชเชฐ เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เช…เชจเซ‡ 4 MB/s เชชเชฐ เช†เช‰เชŸเชชเซเชŸ เชกเซ‡เชŸเชพ เชŸเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซเชฐเชฆเชพเชจ เช•เชฐเชถเซ‡, เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก 2000 PUT เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธเชจเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช•เชฐเชถเซ‡.

เชคเชฎเชพเชฐเชพ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชœเซ‡เชŸเชฒเชพ เชตเชงเซ เชถเชพเชฐเซเชกเซเชธ, เชคเซ‡เชŸเชฒเซเช‚ เชตเชงเซ เชคเซ‡เชจเซเช‚ เชฅเซเชฐเซเชชเซเชŸ. เชธเซˆเชฆเซเชงเชพเช‚เชคเชฟเช• เชฐเซ€เชคเซ‡, เช† เชฐเซ€เชคเซ‡ เชชเซเชฐเชตเชพเชนเซ‹เชจเซ‡ เชฎเชพเชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ - เชถเชพเชฐเซเชกเซเชธ เช‰เชฎเซ‡เชฐเซ€เชจเซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชœเซ‡เชŸเชฒเชพ เชตเชงเซ เชถเชพเชฐเซเชกเซเชธ เช›เซ‡, เชคเซ‡เชŸเชฒเซ€ เชŠเช‚เชšเซ€ เช•เชฟเช‚เชฎเชค. เชฆเชฐเซ‡เช• เชถเชพเชฐเซเชกเชจเซ€ เช•เชฟเช‚เชฎเชค เช•เชฒเชพเช• เชฆเซ€เช  1,5 เชธเซ‡เชจเซเชŸ เช…เชจเซ‡ เชฆเชฐเซ‡เช• เชฎเชฟเชฒเชฟเชฏเชจ PUT เชชเซ‡เชฒเซ‹เชก เชเช•เชฎเซ‹ เชฎเชพเชŸเซ‡ เชตเชงเชพเชฐเชพเชจเชพ 1.4 เชธเซ‡เชจเซเชŸ เช›เซ‡.

เชšเชพเชฒเซ‹ เชจเชพเชฎ เชธเชพเชฅเซ‡ เชเช• เชจเชตเซ‹ เชชเซเชฐเชตเชพเชน เชฌเชจเชพเชตเซ€เช เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เชฟเชŸ, 1 เชถเชพเชฐเซเชก เชคเซ‡เชจเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ‹ เชนเชถเซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชนเชตเซ‡ เชจเชพเชฎ เชธเชพเชฅเซ‡ เชฌเซ€เชœเซ‹ เชฅเซเชฐเซ‡เชก เชฌเชจเชพเชตเซ€เช เชตเชฟเชถเซ‡เชท_เชชเซเชฐเชตเชพเชน:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เชจเชฟเชฐเซเชฎเชพเชคเชพ เชธเซ‡เชŸเช…เชช

เช•เชพเชฐเซเชฏเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชกเซ‡เชŸเชพ เชจเชฟเชฐเซเชฎเชพเชคเชพ เชคเชฐเซ€เช•เซ‡ เชจเชฟเชฏเชฎเชฟเชค EC2 เชฆเชพเช–เชฒเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡. เชคเซ‡ เชเช• เชถเช•เซเชคเชฟเชถเชพเชณเซ€, เช–เชฐเซเชšเชพเชณ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชนเซ‹เชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€; เชธเซเชชเซ‹เชŸ t2.micro เชฌเชฐเชพเชฌเชฐ เช•เชพเชฎ เช•เชฐเชถเซ‡.

เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชจเซ‹เช‚เชง: เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเชพเชฐเซ‡ เช‡เชฎเซ‡เชœเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช - Amazon Linux AMI 2018.03.0, เชคเซ‡เชฎเชพเช‚ เช•เชพเชˆเชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸเชจเซ‡ เชเชกเชชเชฅเซ€ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช“เช›เชพ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช›เซ‡.

EC2 เชธเซ‡เชตเชพ เชชเชฐ เชœเชพเช“, เชจเชตเซเช‚ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฌเชจเชพเชตเซ‹, t2.micro เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เช‡เชšเซเช›เชฟเชค AMI เชชเชธเช‚เชฆ เช•เชฐเซ‹, เชœเซ‡ เชซเซเชฐเซ€ เชŸเชฟเชฏเชฐเชฎเชพเช‚ เชถเชพเชฎเซ‡เชฒ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชจเชตเซ€ เชฌเชจเชพเชตเซ‡เชฒ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชธเซ‡เชตเชพ เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชธเช•เซเชทเชฎ เชฌเชจเซ‡ เชคเซ‡ เชฎเชพเชŸเซ‡, เชคเซ‡เชจเซ‡ เช†เชฎ เช•เชฐเชตเชพเชจเชพ เช…เชงเชฟเช•เชพเชฐเซ‹ เช†เชชเชตเชพ เช†เชตเชถเซเชฏเช• เช›เซ‡. เช† เช•เชฐเชตเชพเชจเซ€ เชถเซเชฐเซ‡เชทเซเช  เชฐเซ€เชค เช เช›เซ‡ เช•เซ‡ IAM เชญเซ‚เชฎเชฟเช•เชพ เชธเซ‹เช‚เชชเชตเซ€. เชคเซ‡เชฅเซ€, เชธเซเชŸเซ‡เชช 3: เช‡เชจเซเชธเซเชŸเชจเซเชธ เชกเชฟเชŸเซ‡เชฒเซเชธ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเซ‹ เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ, เชคเชฎเชพเชฐเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช เชจเชตเซ€ IAM เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ‹:

EC2 เชฎเชพเชŸเซ‡ IAM เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเชตเซ€
Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช–เซเชฒเชคเซ€ เชตเชฟเช‚เชกเซ‹เชฎเชพเช‚, เชชเชธเช‚เชฆ เช•เชฐเซ‹ เช•เซ‡ เช…เชฎเซ‡ EC2 เชฎเชพเชŸเซ‡ เชจเชตเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช เช…เชจเซ‡ เชชเชฐเชตเชพเชจเช—เซ€ เชตเชฟเชญเชพเช— เชชเชฐ เชœเชพเช“:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชคเชพเชฒเซ€เชฎเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเชพเชฐเซ‡ เชธเช‚เชธเชพเชงเชจ เช…เชงเชฟเช•เชพเชฐเซ‹เชจเชพ เชฆเชพเชฃเชพเชฆเชพเชฐ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจเชจเซ€ เชฌเชงเซ€ เชœเชŸเชฟเชฒเชคเชพเช“เชฎเชพเช‚ เชœเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ Amazon เชฆเซเชตเชพเชฐเชพ เชชเซ‚เชฐเซเชต-เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เชจเซ€เชคเชฟเช“ เชชเชธเช‚เชฆ เช•เชฐเซ€เชถเซเช‚: AmazonKinesisFullAccess เช…เชจเซ‡ CloudWatchFullAccess.

เชšเชพเชฒเซ‹ เช† เชญเซ‚เชฎเชฟเช•เชพ เชฎเชพเชŸเซ‡ เช•เซ‡เชŸเชฒเชพเช• เช…เชฐเซเชฅเชชเซ‚เชฐเซเชฃ เชจเชพเชฎ เช†เชชเซ€เช, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡: EC2-KinesisStreams-FullAccess. เชชเชฐเชฟเชฃเชพเชฎ เชจเซ€เชšเซ‡เชจเชพ เชšเชฟเชคเซเชฐเชฎเชพเช‚ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ‡ เชœ เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช† เชจเชตเซ€ เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซเชฏเชพ เชชเช›เซ€, เชคเซ‡เชจเซ‡ เชฌเชจเชพเชตเซ‡เชฒ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช‰เชฆเชพเชนเชฐเชฃ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชตเชพเชจเซเช‚ เชญเซ‚เชฒเชถเซ‹ เชจเชนเซ€เช‚:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช…เชฎเซ‡ เช† เชธเซเช•เซเชฐเซ€เชจ เชชเชฐ เชฌเซ€เชœเซเช‚ เช•เช‚เชˆเชชเชฃ เชฌเชฆเชฒเชคเชพ เชจเชฅเซ€ เช…เชจเซ‡ เช†เช—เชณเชจเซ€ เชตเชฟเช‚เชกเซ‹เช เชชเชฐ เช†เช—เชณ เชตเชงเซ€เช เช›เซ€เช.

เชนเชพเชฐเซเชก เชกเซเชฐเชพเชˆเชต เชธเซ‡เชŸเชฟเช‚เช—เซเชธเชจเซ‡ เชกเชฟเชซเซ‰เชฒเซเชŸ เชคเชฐเซ€เช•เซ‡ เช›เซ‹เชกเซ€ เชถเช•เชพเชฏ เช›เซ‡, เชธเชพเชฅเซ‡ เชธเชพเชฅเซ‡ เชŸเซ…เช—เซเชธ (เชœเซ‹เช•เซ‡ เชŸเซ…เช—เซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เช เชธเชพเชฐเซ€ เชชเซเชฐเชฅเชพ เช›เซ‡, เช“เช›เชพเชฎเชพเช‚ เช“เช›เซเช‚ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‡ เชจเชพเชฎ เช†เชชเซ‹ เช…เชจเซ‡ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชธเซ‚เชšเชตเซ‹).

เชนเชตเซ‡ เช…เชฎเซ‡ เชธเซเชŸเซ‡เชช 6 เชชเชฐ เช›เซ€เช: เชธเชฟเช•เซเชฏเซ‹เชฐเชฟเชŸเซ€ เช—เซเชฐเซ‚เชช เชŸเซ‡เชฌเชจเซ‡ เช—เซ‹เช เชตเซ‹, เชœเซเชฏเชพเช‚ เชคเชฎเชพเชฐเซ‡ เชเช• เชจเชตเซเช‚ เชฌเชจเชพเชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช…เชฅเชตเชพ เชคเชฎเชพเชฐเซเช‚ เชนเชพเชฒเชจเซเช‚ เชธเชฟเช•เซเชฏเซเชฐเชฟเชŸเซ€ เช—เซเชฐเซ‚เชช เชธเซเชชเชทเซเชŸ เช•เชฐเชตเซเช‚ เชชเชกเชถเซ‡, เชœเซ‡ เชคเชฎเชจเซ‡ ssh (เชชเซ‹เชฐเซเชŸ 22) เชฆเซเชตเชพเชฐเชพ เชฆเชพเช–เชฒเชพ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เชคเซเชฏเชพเช‚ เชธเซเชคเซเชฐเซ‹เชค -> My IP เชชเชธเช‚เชฆ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเชฎเซ‡ เชฆเชพเช–เชฒเซ‹ เชฒเซ‹เช‚เชš เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชœเชฒเชฆเซ€ เชคเซ‡ เชšเชพเชฒเซ เชธเซเชฅเชฟเชคเชฟ เชชเชฐ เชธเซเชตเชฟเชš เช•เชฐเซ‡ เช›เซ‡, เชคเชฎเซ‡ เชคเซ‡เชจเซ‡ ssh เชฆเซเชตเชพเชฐเชพ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹.

เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช•เซเชทเชฎ เชฅเชตเชพ เชฎเชพเชŸเซ‡, เชฎเชถเซ€เชจ เชธเชพเชฅเซ‡ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เช•เชจเซ‡เช•เซเชŸ เชฅเชฏเชพ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เชŸเชฐเซเชฎเชฟเชจเชฒเชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเซ‹ เชฆเชพเช–เชฒ เช•เชฐเชตเชพ เช†เชตเชถเซเชฏเช• เช›เซ‡:

sudo yum -y update
sudo yum install -y python36 python36-pip
sudo /usr/bin/pip-3.6 install --upgrade pip
sudo yum install -y aws-kinesis-agent

เชšเชพเชฒเซ‹ API เชชเซเชฐเชคเชฟเชธเชพเชฆเซ‹เชจเซ‡ เชธเชพเชšเชตเชตเชพ เชฎเชพเชŸเซ‡ เชซเซ‹เชฒเซเชกเชฐ เชฌเชจเชพเชตเซ€เช:

sudo mkdir /var/log/airline_tickets

เชเชœเชจเซเชŸ เชถเชฐเซ‚ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

sudo vim /etc/aws-kinesis/agent.json

agent.json เชซเชพเช‡เชฒเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เช†เชจเชพ เชœเซ‡เชตเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช:

{
  "cloudwatch.emitMetrics": true,
  "kinesis.endpoint": "",
  "firehose.endpoint": "",

  "flows": [
    {
      "filePattern": "/var/log/airline_tickets/*log",
      "kinesisStream": "airline_tickets",
      "partitionKeyOption": "RANDOM",
      "dataProcessingOptions": [
         {
            "optionName": "CSVTOJSON",
            "customFieldNames": ["cost","trip_class","show_to_affiliates",
                "return_date","origin","number_of_changes","gate","found_at",
                "duration","distance","destination","depart_date","actual","record_id"]
         }
      ]
    }
  ]
}

เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชซเชพเช‡เชฒเชฎเชพเช‚เชฅเซ€ เชœเซ‹เชˆ เชถเช•เชพเชฏ เช›เซ‡ เชคเซ‡เชฎ, เชเชœเชจเซเชŸ /var/log/airline_tickets/ เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€เชฎเชพเช‚ .log เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชธเชพเชฅเซ‡ เชซเชพเช‡เชฒเซ‹เชจเซเช‚ เชจเชฟเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชถเซ‡, เชคเซ‡เชฎเชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเชถเซ‡ เช…เชจเซ‡ เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เซ‡เชŸ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชถเซ‡.

เช…เชฎเซ‡ เชธเซ‡เชตเชพ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ€เช เช›เซ€เช เช•เซ‡ เชคเซ‡ เชšเชพเชฒเซ เช›เซ‡ เช…เชจเซ‡ เชšเชพเชฒเซ เช›เซ‡:

sudo service aws-kinesis-agent restart

เชนเชตเซ‡ เชšเชพเชฒเซ‹ Python เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€เช เชœเซ‡ API เชชเชพเชธเซ‡เชฅเซ€ เชกเซ‡เชŸเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเชถเซ‡:

REPO_PATH=https://raw.githubusercontent.com/igorgorbenko/aviasales_kinesis/master/producer

wget $REPO_PATH/api_caller.py -P /home/ec2-user/
wget $REPO_PATH/requirements.txt -P /home/ec2-user/
sudo chmod a+x /home/ec2-user/api_caller.py
sudo /usr/local/bin/pip3 install -r /home/ec2-user/requirements.txt

api_caller.py เชธเซเช•เซเชฐเชฟเชชเซเชŸ Aviasales เชชเชพเชธเซ‡เชฅเซ€ เชกเซ‡เชŸเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ Kinesis เชเชœเชจเซเชŸ เชธเซเช•เซ‡เชจ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡ เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพเชฎเชพเช‚ เชชเซเชฐเชพเชชเซเชค เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ‡ เชธเชพเชšเชตเซ‡ เช›เซ‡. เช† เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซเช‚ เช…เชฎเชฒเซ€เช•เชฐเชฃ เชเช•เชฆเชฎ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เช›เซ‡, เชคเซเชฏเชพเช‚ เชเช• TicketsApi เชตเชฐเซเช— เช›เซ‡, เชคเซ‡ เชคเชฎเชจเซ‡ API เชจเซ‡ เช…เชธเซเชฎเซ‡เชณ เชฐเซ€เชคเซ‡ เช–เซ‡เช‚เชšเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡. เช…เชฎเซ‡ เชŸเซ‹เช•เชจ เชธเชพเชฅเซ‡ เชนเซ‡เชกเชฐ เชชเชธเชพเชฐ เช•เชฐเซ€เช เช›เซ€เช เช…เชจเซ‡ เช† เชตเชฐเซเช—เชจเซ‡ เชชเชฐเชฟเชฎเชพเชฃเซ‹เชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ€เช เช›เซ€เช:

class TicketsApi:
    """Api caller class."""

    def __init__(self, headers):
        """Init method."""
        self.base_url = BASE_URL
        self.headers = headers

    async def get_data(self, data):
        """Get the data from API query."""
        response_json = {}
        async with ClientSession(headers=self.headers) as session:
            try:
                response = await session.get(self.base_url, data=data)
                response.raise_for_status()
                LOGGER.info('Response status %s: %s',
                            self.base_url, response.status)
                response_json = await response.json()
            except HTTPError as http_err:
                LOGGER.error('Oops! HTTP error occurred: %s', str(http_err))
            except Exception as err:
                LOGGER.error('Oops! An error ocurred: %s', str(err))
            return response_json


def prepare_request(api_token):
    """Return the headers and query fot the API request."""
    headers = {'X-Access-Token': api_token,
               'Accept-Encoding': 'gzip'}

    data = FormData()
    data.add_field('currency', CURRENCY)
    data.add_field('origin', ORIGIN)
    data.add_field('destination', DESTINATION)
    data.add_field('show_to_affiliates', SHOW_TO_AFFILIATES)
    data.add_field('trip_duration', TRIP_DURATION)
    return headers, data


async def main():
    """Get run the code."""
    if len(sys.argv) != 2:
        print('Usage: api_caller.py <your_api_token>')
        sys.exit(1)
        return
    api_token = sys.argv[1]
    headers, data = prepare_request(api_token)

    api = TicketsApi(headers)
    response = await api.get_data(data)
    if response.get('success', None):
        LOGGER.info('API has returned %s items', len(response['data']))
        try:
            count_rows = log_maker(response)
            LOGGER.info('%s rows have been saved into %s',
                        count_rows,
                        TARGET_FILE)
        except Exception as e:
            LOGGER.error('Oops! Request result was not saved to file. %s',
                         str(e))
    else:
        LOGGER.error('Oops! API request was unsuccessful %s!', response)

เชเชœเชจเซเชŸเชจเซ€ เชฏเซ‹เช—เซเชฏ เชธเซ‡เชŸเชฟเช‚เช—เซเชธ เช…เชจเซ‡ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ api_caller.py เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชšเชฒเชพเชตเซ€เช:

sudo ./api_caller.py TOKEN

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช…เชจเซ‡ เช…เชฎเซ‡ เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เชฟเชŸ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชเชœเชจเซเชŸ เชฒเซ‹เช—เชฎเชพเช‚ เช…เชจเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชŸเซ‡เชฌ เชชเชฐ เช•เชพเชฎเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซ‡ เชœเซ‹เชˆเช เช›เซ€เช:

tail -f /var/log/aws-kinesis-agent/aws-kinesis-agent.log

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชฌเชงเซเช‚ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เชฟเชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡. เชนเชตเซ‡ เชšเชพเชฒเซ‹ เช—เซเชฐเชพเชนเช•เชจเซ‡ เช—เซ‹เช เชตเซ€เช.

เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

เชšเชพเชฒเซ‹ เชธเชฎเช—เซเชฐ เชธเชฟเชธเซเชŸเชฎเชจเชพ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชฏ เช˜เชŸเช• เชคเชฐเชซ เช†เช—เชณ เชตเชงเซ€เช - Kinesis_analytics_airlines_app เชจเชพเชฎเชจเซ€ Kinesis Data Analytics เชฎเชพเช‚ เชเช• เชจเชตเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฌเชจเชพเชตเซ‹:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช•เชฟเชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชคเชฎเชจเซ‡ เชเชธเช•เซเชฏเซเชเชฒ เชญเชพเชทเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เชฟเชจเซ‡เชธเชฟเชธ เชธเซเชŸเซเชฐเซ€เชฎเซเชธเชฎเชพเช‚เชฅเซ€ เชฐเซ€เช…เชฒ-เชŸเชพเช‡เชฎ เชกเซ‡เชŸเชพ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เช•เชฐเชตเชพ เชฆเซ‡ เช›เซ‡. เชคเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ เช“เชŸเซ‹เชธเซเช•เซ‡เชฒเชฟเช‚เช— เชธเซ‡เชตเชพ เช›เซ‡ (เช•เชพเชˆเชจเซ‡เชธเชฟเชธ เชธเซเชŸเซเชฐเซ€เชฎเซเชธเชฅเซ€ เชตเชฟเชชเชฐเซ€เชค) เชœเซ‡:

  1. เชคเชฎเชจเซ‡ เชธเซเชฐเซ‹เชค เชกเซ‡เชŸเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€เช“เชจเชพ เช†เชงเชพเชฐเซ‡ เชจเชตเซ€ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ (เช†เช‰เชŸเชชเซเชŸ เชธเซเชŸเซเชฐเซ€เชฎ) เชฌเชจเชพเชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡;
  2. เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเชคเซ€ เชคเซเชฏเชพเชฐเซ‡ เชฅเชฏเซ‡เชฒเซ€ เชญเซ‚เชฒเซ‹ เชธเชพเชฅเซ‡เชจเซ‹ เชธเซเชŸเซเชฐเซ€เชฎ เชชเซ‚เชฐเซ‹ เชชเชพเชกเซ‡ เช›เซ‡ (เชญเซ‚เชฒ เชธเซเชŸเซเชฐเซ€เชฎ);
  3. เช‡เชจเชชเซเชŸ เชกเซ‡เชŸเชพ เชธเซเช•เซ€เชฎ เช†เชชเชฎเซ‡เชณเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ (เชœเซ‹ เชœเชฐเซ‚เชฐเซ€ เชนเซ‹เชฏ เชคเซ‹ เชคเซ‡เชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชซเชฐเซ€เชฅเซ€ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡).

เช† เชธเชธเซเชคเซ€ เชธเซ‡เชตเชพ เชจเชฅเซ€ - เช•เชพเชฎเชจเชพ เช•เชฒเชพเช• เชฆเซ€เช  0.11 USD, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‹ เช•เชพเชณเชœเซ€เชชเซ‚เชฐเซเชตเช• เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเซ€ เชฒเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ‹.

เชšเชพเชฒเซ‹ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เชกเซ‡เชŸเชพ เชธเซเชคเซเชฐเซ‹เชค เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเซ€เช:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช…เชฎเซ‡ เชœเซ‡ เชธเซเชŸเซเชฐเซ€เชฎ เชธเชพเชฅเซ‡ เช•เชจเซ‡เช•เซเชŸ เชฅเชตเชพ เชœเชˆ เชฐเชนเซเชฏเชพ เช›เซ€เช เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‹ (เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เชฟเชŸ):

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช†เช—เชณ, เชคเชฎเชพเชฐเซ‡ เชจเชตเซ€ IAM เชญเซ‚เชฎเชฟเช•เชพ เชœเซ‹เชกเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚เชฅเซ€ เชตเชพเช‚เชšเซ€ เชถเช•เซ‡ เช…เชจเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชฒเช–เซ€ เชถเช•เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชเช•เซเชธเซ‡เชธ เชชเชฐเชตเชพเชจเช—เซ€ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚ เช•เช‚เชˆเชชเชฃ เชฌเชฆเชฒเชตเซเช‚ เชจเชนเซ€เช‚ เชคเซ‡ เชชเซ‚เชฐเชคเซเช‚ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชšเชพเชฒเซ‹ เชนเชตเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชกเซ‡เชŸเชพ เชธเซเช•เซ€เชฎเชพ เชถเซ‹เชงเชตเชพเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ€เช; เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, "เชกเชฟเชธเซเช•เชตเชฐ เชธเซเช•เซ€เชฎเชพ" เชฌเชŸเชจ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹. เชชเชฐเชฟเชฃเชพเชฎเซ‡, IAM เชญเซ‚เชฎเชฟเช•เชพ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ (เชเช• เชจเชตเซเช‚ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡) เช…เชจเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช†เชตเซ€ เช—เชฏเซ‡เชฒเชพ เชกเซ‡เชŸเชพเชฎเชพเช‚เชฅเซ€ เชธเซเช•เซ€เชฎเชพ เชถเซ‹เชง เชถเชฐเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชนเชตเซ‡ เชคเชฎเชพเชฐเซ‡ SQL เชเชกเชฟเชŸเชฐ เชชเชฐ เชœเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช† เชฌเชŸเชจ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเชถเซ‹, เชคเซเชฏเชพเชฐเซ‡ เชเช• เชตเชฟเชจเซเชกเซ‹ เชฆเซ‡เช–เชพเชถเซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพเชจเซเช‚ เช•เชนเซ‡เชถเซ‡ - เชคเชฎเซ‡ เชถเซเช‚ เชฒเซ‹เชจเซเชš เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‹ เช›เซ‹ เชคเซ‡ เชชเชธเช‚เชฆ เช•เชฐเซ‹:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
SQL เชเชกเชฟเชŸเชฐ เชตเชฟเชจเซเชกเซ‹เชฎเชพเช‚ เชจเซ€เชšเซ‡เชจเซ€ เชธเชฐเชณ เช•เซเชตเซ‡เชฐเซ€ เชฆเชพเช–เชฒ เช•เชฐเซ‹ เช…เชจเซ‡ เชธเซ‡เชต เช…เชจเซ‡ เชฐเชจ เชเชธเช•เซเชฏเซเชเชฒ เชชเชฐ เช•เซเชฒเชฟเช• เช•เชฐเซ‹:

CREATE OR REPLACE STREAM "DESTINATION_SQL_STREAM" ("cost" DOUBLE, "gate" VARCHAR(16));

CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_SQL_STREAM"
SELECT STREAM "cost", "gate"
FROM "SOURCE_SQL_STREAM_001"
WHERE "cost" < 5000
    and "gate" = 'Aeroflot';

เชฐเชฟเชฒเซ‡เชถเชจเชฒ เชกเซ‡เชŸเชพเชฌเซ‡เชธเซ‡เชธเชฎเชพเช‚, เชคเชฎเซ‡ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ INSERT เชธเซเชŸเซ‡เชŸเชฎเซ‡เชจเซเชŸเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชจเซ‡ เชกเซ‡เชŸเชพเชจเซ‡ เช•เซเชตเซ‡เชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ SELECT เชธเซเชŸเซ‡เชŸเชฎเซ‡เชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซ‹เชทเซเชŸเช•เซ‹ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ‹ เช›เซ‹. Amazon Kinesis Data Analytics เชฎเชพเช‚, เชคเชฎเซ‡ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ (STREAMs) เช…เชจเซ‡ เชชเชฎเซเชชเซเชธ (PUMPs) เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ‹ เช›เซ‹โ€”เชธเชคเชค เช‡เชจเซเชธเชฐเซเชŸ เชตเชฟเชจเช‚เชคเซ€เช“ เชœเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เชเช• เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพเชจเซ‡ เชฌเซ€เชœเซ€ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ‡ เช›เซ‡.

เช‰เชชเชฐ เชชเซเชฐเชธเซเชคเซเชค SQL เช•เซเชตเซ‡เชฐเซ€ เชชเชพเช‚เชš เชนเชœเชพเชฐ เชฐเซเชฌเซ‡เชฒเซเชธเชฅเซ€ เช“เช›เซ€ เช•เชฟเช‚เชฎเชคเซ‡ เชเชฐเซ‹เชซเซเชฒเซ‹เชŸ เชŸเชฟเช•เชฟเชŸเซ‹ เชฎเชพเชŸเซ‡ เชถเซ‹เชง เช•เชฐเซ‡ เช›เซ‡. เช† เชถเชฐเชคเซ‹เชจเซ‡ เชชเซ‚เชฐเซเชฃ เช•เชฐเชคเชพ เชคเชฎเชพเชฎ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ DESTINATION_SQL_STREAM เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡.

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช—เช‚เชคเชตเซเชฏ เชฌเซเชฒเซ‹เช•เชฎเชพเช‚, เชธเซเชชเซ‡เชถเชฟเชฏเชฒ_เชธเซเชŸเซเชฐเซ€เชฎ เชธเซเชŸเซเชฐเซ€เชฎ เชชเชธเช‚เชฆ เช•เชฐเซ‹ เช…เชจเซ‡ เช‡เชจ-เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเซเชŸเซเชฐเซ€เชฎ เชจเชพเชฎ DESTINATION_SQL_STREAM เชกเซเชฐเซ‹เชช-เชกเชพเช‰เชจ เชธเซ‚เชšเชฟเชฎเชพเช‚:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชคเชฎเชพเชฎ เชฎเซ‡เชจเชฟเชชเซเชฏเซเชฒเซ‡เชถเชจเซเชธเชจเซเช‚ เชชเชฐเชฟเชฃเชพเชฎ เชจเซ€เชšเซ‡เชจเชพ เชšเชฟเชคเซเชฐ เชœเซ‡เชตเซเช‚ เชœ เช•เช‚เชˆเช• เชนเซ‹เชตเซเช‚ เชœเซ‹เชˆเช:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

SNS เชตเชฟเชทเชฏ เชฌเชจเชพเชตเชตเซ‹ เช…เชจเซ‡ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเชตเซเช‚

เชธเชฟเชฎเซเชชเชฒ เชจเซ‹เชŸเชฟเชซเชฟเช•เซ‡เชถเชจ เชธเชฐเซเชตเชฟเชธ เชชเชฐ เชœเชพเช“ เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เชเชฐเชฒเชพเชˆเชจเซเชธ เชจเชพเชฎ เชธเชพเชฅเซ‡ เชจเชตเซ‹ เชตเชฟเชทเชฏ เชฌเชจเชพเชตเซ‹:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช† เชตเชฟเชทเชฏ เชชเชฐ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌ เช•เชฐเซ‹ เช…เชจเซ‡ เชฎเซ‹เชฌเชพเช‡เชฒ เชซเซ‹เชจ เชจเช‚เชฌเชฐ เชธเซ‚เชšเชตเซ‹ เช•เซ‡ เชœเซ‡เชจเชพ เชชเชฐ SMS เชธเซ‚เชšเชจเชพเช“ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

DynamoDB เชฎเชพเช‚ เชŸเซ‡เชฌเชฒ เชฌเชจเชพเชตเซ‹

เชคเซ‡เชฎเชจเซ€ เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เชฟเชŸ เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚เชฅเซ€ เช•เชพเชšเซ‹ เชกเซ‡เชŸเชพ เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เชคเซ‡ เชœ เชจเชพเชฎ เชธเชพเชฅเซ‡ เชกเชพเชฏเชจเชพเชฎเซ‹เชกเซ€เชฌเซ€เชฎเชพเช‚ เชเช• เชŸเซ‡เชฌเชฒ เชฌเชจเชพเชตเซ€เช. เช…เชฎเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช• เช•เซ€ เชคเชฐเซ€เช•เซ‡ record_id เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจ เช•เชฒเซ‡เช•เซเชŸเชฐ เชฌเชจเชพเชตเชตเซเช‚

เชšเชพเชฒเซ‹ เช•เชฒเซ‡เช•เซเชŸเชฐ เชจเชพเชฎเชจเซเช‚ เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจ เชฌเชจเชพเชตเซ€เช, เชœเซ‡เชจเซเช‚ เช•เชพเชฐเซเชฏ เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เซ‡เชŸ เชธเซเชŸเซเชฐเซ€เชฎเชจเซเช‚ เชฎเชคเชฆเชพเชจ เช•เชฐเชตเชพเชจเซเช‚ เชฐเชนเซ‡เชถเซ‡ เช…เชจเซ‡, เชœเซ‹ เชคเซเชฏเชพเช‚ เชจเชตเชพ เชฐเซ‡เช•เซ‹เชฐเซเชก เชœเซ‹เชตเชพ เชฎเชณเซ‡, เชคเซ‹ เช† เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธเชจเซ‡ เชกเชพเชฏเชจเชพเชฎเซ‹เชกเซ€เชฌเซ€ เชŸเซ‡เชฌเชฒเชฎเชพเช‚ เชฆเชพเช–เชฒ เช•เชฐเซ‹. เชฆเซ‡เช–เซ€เชคเซ€ เชฐเซ€เชคเซ‡, เชกเชฟเชซเซ‰เชฒเซเชŸ เชฐเชพเช‡เชŸเซเชธ เช‰เชชเชฐเชพเช‚เชค, เช† เชฒเซ‡เชฎเซเชฌเชกเชพ เชชเชพเชธเซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเชจเซ€ เชฐเซ€เชก เชเช•เซเชธเซ‡เชธ เช…เชจเซ‡ เชกเชพเชฏเชจเชพเชฎเซ‹เชกเซ€เชฌเซ€ เชชเชฐ เชฒเช–เชตเชพเชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช.

เช•เชฒเซ‡เช•เซเชŸเชฐ เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจ เชฎเชพเชŸเซ‡ IAM เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเชตเซ€
เชชเซเชฐเชฅเชฎ, เชšเชพเชฒเซ‹ เชฒเซ‡เชฎเซเชฌเชกเชพ เชฎเชพเชŸเซ‡ เชเช• เชจเชตเซ€ IAM เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเซ€เช เชœเซ‡เชจเซเช‚ เชจเชพเชฎ เช›เซ‡ Lambda-TicketsProcessingRole:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชชเชฐเซ€เช•เซเชทเชฃ เช‰เชฆเชพเชนเชฐเชฃ เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡เชจเซ€ เชšเชฟเชคเซเชฐเชฎเชพเช‚ เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ‡, เชชเซ‚เชฐเซเชต-เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค AmazonKinesisReadOnlyAccess เช…เชจเซ‡ AmazonDynamoDBFullAccess เชจเซ€เชคเชฟเช“ เชเช•เชฆเชฎ เชฏเซ‹เช—เซเชฏ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เชœเซเชฏเชพเชฐเซ‡ เชจเชตเซ€ เชเชจเซเชŸเซเชฐเซ€เช“ เชเชฐเชฒเชพเช‡เชจ_เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชชเซเชฐเชตเซ‡เชถเซ‡ เช›เซ‡ เชคเซเชฏเชพเชฐเซ‡ เช† เชฒเซ‡เชฎเซเชฌเชกเชพเชจเซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธเชจเชพ เชŸเซเชฐเชฟเช—เชฐ เชฆเซเชตเชพเชฐเชพ เชฒเซ‹เช‚เชš เชฅเชตเซ‹ เชœเซ‹เชˆเช, เชคเซ‡เชฅเซ€ เช…เชฎเชพเชฐเซ‡ เชเช• เชจเชตเซเช‚ เชŸเซเชฐเชฟเช—เชฐ เช‰เชฎเซ‡เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เช•เซ‹เชก เชฆเชพเช–เชฒ เช•เชฐเชตเชพเชจเซเช‚ เช…เชจเซ‡ เชฒเซ‡เชฎเซเชฌเชกเชพเชจเซ‡ เชธเชพเชšเชตเชตเชพเชจเซเช‚ เช›เซ‡.

"""Parsing the stream and inserting into the DynamoDB table."""
import base64
import json
import boto3
from decimal import Decimal

DYNAMO_DB = boto3.resource('dynamodb')
TABLE_NAME = 'airline_tickets'

class TicketsParser:
    """Parsing info from the Stream."""

    def __init__(self, table_name, records):
        """Init method."""
        self.table = DYNAMO_DB.Table(table_name)
        self.json_data = TicketsParser.get_json_data(records)

    @staticmethod
    def get_json_data(records):
        """Return deserialized data from the stream."""
        decoded_record_data = ([base64.b64decode(record['kinesis']['data'])
                                for record in records])
        json_data = ([json.loads(decoded_record)
                      for decoded_record in decoded_record_data])
        return json_data

    @staticmethod
    def get_item_from_json(json_item):
        """Pre-process the json data."""
        new_item = {
            'record_id': json_item.get('record_id'),
            'cost': Decimal(json_item.get('cost')),
            'trip_class': json_item.get('trip_class'),
            'show_to_affiliates': json_item.get('show_to_affiliates'),
            'origin': json_item.get('origin'),
            'number_of_changes': int(json_item.get('number_of_changes')),
            'gate': json_item.get('gate'),
            'found_at': json_item.get('found_at'),
            'duration': int(json_item.get('duration')),
            'distance': int(json_item.get('distance')),
            'destination': json_item.get('destination'),
            'depart_date': json_item.get('depart_date'),
            'actual': json_item.get('actual')
        }
        return new_item

    def run(self):
        """Batch insert into the table."""
        with self.table.batch_writer() as batch_writer:
            for item in self.json_data:
                dynamodb_item = TicketsParser.get_item_from_json(item)
                batch_writer.put_item(dynamodb_item)

        print('Has been added ', len(self.json_data), 'items')

def lambda_handler(event, context):
    """Parse the stream and insert into the DynamoDB table."""
    print('Got event:', event)
    parser = TicketsParser(TABLE_NAME, event['Records'])
    parser.run()

เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจ เชจเซ‹เชŸเชฟเชซเชพเชฏเชฐ เชฌเชจเชพเชตเชตเซเช‚

เชฌเซ€เชœเซเช‚ เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจ, เชœเซ‡ เชฌเซ€เชœเชพ เชธเซเชŸเซเชฐเซ€เชฎ (เชธเซเชชเซ‡เชถเชฟเชฏเชฒ_เชธเซเชŸเซเชฐเซ€เชฎ) เชจเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐ เช•เชฐเชถเซ‡ เช…เชจเซ‡ SNS เชจเซ‡ เชธเซ‚เชšเชจเชพ เชฎเซ‹เช•เชฒเชถเซ‡, เชคเซ‡ เชœ เชฐเซ€เชคเซ‡ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชคเซ‡เชฅเซ€, เช† เชฒเซ‡เชฎเซเชฌเชกเชพ เชชเชพเชธเซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธเชฎเชพเช‚เชฅเซ€ เชตเชพเช‚เชšเชตเชพ เช…เชจเซ‡ เช†เชชเซ‡เชฒเชพ SNS เชตเชฟเชทเชฏ เชชเชฐ เชธเช‚เชฆเซ‡เชถเชพ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเซ‹เชตเซ€ เช†เชตเชถเซเชฏเช• เช›เซ‡, เชœเซ‡ เชชเช›เซ€ SNS เชธเซ‡เชตเชพ เชฆเซเชตเชพเชฐเชพ เช† เชตเชฟเชทเชฏเชจเชพ เชคเชฎเชพเชฎ เชธเชฌเซเชธเซเช•เซเชฐเชพเช‡เชฌเชฐเซเชธเชจเซ‡ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡ (เช‡เชฎเซ‡เช‡เชฒ, SMS, เชตเช—เซ‡เชฐเซ‡).

IAM เชญเซ‚เชฎเชฟเช•เชพ เชฌเชจเชพเชตเชตเซ€
เชชเซเชฐเชฅเชฎ, เช…เชฎเซ‡ เช† เชฒเซ‡เชฎเซเชฌเชกเชพ เชฎเชพเชŸเซ‡ IAM เชญเซ‚เชฎเชฟเช•เชพ Lambda-KinesisAlarm เชฌเชจเชพเชตเซ€เช เช›เซ€เช, เช…เชจเซ‡ เชชเช›เซ€ เช† เชญเซ‚เชฎเชฟเช•เชพ เช…เชฒเชพเชฐเซเชฎ_เชจเซ‹เชŸเชฟเชซเชพเชฏเชฐ เชฒเซ‡เชฎเซเชฌเชกเชพเชจเซ‡ เชฌเชจเชพเชตเซ€เช เช›เซ€เช:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เช† เชฒเซ‡เชฎเซเชฌเชกเชพเช เชธเซเชชเซ‡เชถเชฟเชฏเชฒ_เชธเซเชŸเซเชฐเซ€เชฎเชฎเชพเช‚ เชฆเชพเช–เชฒ เชฅเชตเชพ เชฎเชพเชŸเซ‡ เชจเชตเชพ เชฐเซ‡เช•เซ‹เชฐเซเชก เชฎเชพเชŸเซ‡ เชŸเซเชฐเชฟเช—เชฐ เชชเชฐ เช•เชพเชฎ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช, เชคเซ‡เชฅเซ€ เชคเชฎเชพเชฐเซ‡ เชŸเซเชฐเชฟเช—เชฐเชจเซ‡ เชคเซ‡ เชœ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชฐเซ€เชคเซ‡ เช…เชฎเซ‡ เช•เชฒเซ‡เช•เซเชŸเชฐ เชฒเซ‡เชฎเซเชฌเชกเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚.

เช† เชฒเซ‡เชฎเซเชฌเชกเชพเชจเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ เชเช• เชจเชตเซเช‚ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒ เชฐเชœเซ‚ เช•เชฐเซ€เช - TOPIC_ARN, เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชเชฐเชฒเชพเชˆเชจเซเชธ เชตเชฟเชทเชฏเชจเชพ ANR (Amazon Recourse Names) เชฎเซ‚เช•เซ€เช เช›เซ€เช:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช…เชจเซ‡ เชฒเซ‡เชฎเซเชฌเชกเชพ เช•เซ‹เชก เชฆเชพเช–เชฒ เช•เชฐเซ‹, เชคเซ‡ เชฌเชฟเชฒเช•เซเชฒ เชœเชŸเชฟเชฒ เชจเชฅเซ€:

import boto3
import base64
import os

SNS_CLIENT = boto3.client('sns')
TOPIC_ARN = os.environ['TOPIC_ARN']


def lambda_handler(event, context):
    try:
        SNS_CLIENT.publish(TopicArn=TOPIC_ARN,
                           Message='Hi! I have found an interesting stuff!',
                           Subject='Airline tickets alarm')
        print('Alarm message has been successfully delivered')
    except Exception as err:
        print('Delivery failure', str(err))

เชเชตเซเช‚ เชฒเชพเช—เซ‡ เช›เซ‡ เช•เซ‡ เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ เชฎเซ‡เชจเซเชฏเซเช…เชฒ เชธเชฟเชธเซเชŸเชฎ เช—เซ‹เช เชตเชฃเซ€ เชชเซ‚เชฐเซเชฃ เชฅเชพเชฏ เช›เซ‡. เชœเซ‡ เชฌเชพเช•เซ€ เช›เซ‡ เชคเซ‡ เชšเช•เชพเชธเชตเชพเชจเซเช‚ เช…เชจเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เชฌเชงเซเช‚ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡ เช—เซ‹เช เชตเซเชฏเซเช‚ เช›เซ‡.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เชœเชฎเชพเชตเชŸ เช•เชฐเซ‹

เชœเชฐเซ‚เชฐเซ€ เชคเซˆเชฏเชพเชฐเซ€

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชœเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช–เซ‚เชฌ เชœ เช…เชจเซเช•เซ‚เชณ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชŸเซ‚เชฒ เช›เซ‡. เชคเซ‡เชจเซ€ เชชเซ‹เชคเชพเชจเซ€ เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เช›เซ‡ เชœเซ‡ เชถเซ€เช–เชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช…เชจเซ‡ เชถเซเช‚ เชœเชฎเชพเชตเชตเซเช‚ เชคเซ‡เชจเชพ เช˜เชฃเชพ เช‰เชฆเชพเชนเชฐเชฃเซ‹ เช›เซ‡. เชเชŸเชฎ เชเชกเชฟเชŸเชฐ เช…เชฅเชตเชพ เชตเชฟเชเซเชฏเซเช…เชฒ เชธเซเชŸเซเชกเชฟเชฏเซ‹ เช•เซ‹เชกเชฎเชพเช‚ เช˜เชฃเชพ เชธเชฐเชณ เชชเซเชฒเช—เชˆเชจเซ‹ เช›เซ‡ เชœเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชธเชฐเชณ เชฌเชจเชพเชตเซ‡ เช›เซ‡.

เชคเชฎเซ‡ เชตเชฟเชคเชฐเชฃ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ เช…เชนเซ€เช‚เชฅเซ€. เชคเชฎเชพเชฎ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซเชทเชฎเชคเชพเช“เชจเซเช‚ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช† เชฒเซ‡เช–เชจเชพ เช…เชตเช•เชพเชถเชจเซ€ เชฌเชนเชพเชฐ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชชเซ‹เชคเชพเชจเซ‡ เชฎเซเช–เซเชฏ เชฎเซเชฆเซเชฆเชพเช“ เชธเซเชงเซ€ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เช•เชฐเซ€เชถเซเช‚.

เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเชฐเซ‚ เช•เชฐเชตเซเช‚

เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ‹ เชธเช‚เชชเซ‚เชฐเซเชฃ เช•เซ‹เชก เช›เซ‡ เชฎเชพเชฐเชพ เชญเช‚เชกเชพเชฐเชฎเชพเช‚. เช…เชฎเซ‡ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชจเซ‡ เช†เชชเชฃเซ€ เชœเชพเชคเชจเซ‡ เช•เซเชฒเซ‹เชจ เช•เชฐเซ€เช เช›เซ€เช. เชถเชฐเซ‚ เช•เชฐเชคเชพ เชชเชนเซ‡เชฒเชพ, เชคเชฎเชพเชฐเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เช•เซ‡ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ AWS CLI เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช—เซ‹เช เชตเซ‡เชฒ เช›เซ‡, เช•เชพเชฐเชฃ เช•เซ‡... Terraform ~/.aws/credentials เชซเชพเช‡เชฒเชฎเชพเช‚ เช“เชณเช–เชชเชคเซเชฐเซ‹ เชถเซ‹เชงเชถเซ‡.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชนเชพเชฒเชฎเชพเช‚ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เช†เชชเชฃเชพ เชฎเชพเชŸเซ‡ เชถเซเช‚ เชฌเชจเชพเชตเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชœเซ‹เชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเช—เซเชฐ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ‡ เชœเชฎเชพเชตเชตเชพ เชชเชนเซ‡เชฒเชพเช‚ เชชเซเชฒเชพเชจ เช•เชฎเชพเชจเซเชกเชจเซ‡ เชšเชฒเชพเชตเชตเชพเชจเซ€ เชธเชพเชฐเซ€ เชชเซเชฐเชฅเชพ เช›เซ‡:

terraform.exe plan

เชคเชฎเชจเซ‡ เชธเซ‚เชšเชจเชพเช“ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชซเซ‹เชจ เชจเช‚เชฌเชฐ เชฆเชพเช–เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช‚เช•เซ‡เชค เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เช† เชคเชฌเช•เซเช•เซ‡ เชคเซ‡เชจเซ‡ เชฆเชพเช–เชฒ เช•เชฐเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เชจเชฅเซ€.

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชจเชพ เช“เชชเชฐเซ‡เชถเชจ เชชเซเชฒเชพเชจเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซเชฏเชพ เชชเช›เซ€, เช…เชฎเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช:

terraform.exe apply

เช† เช†เชฆเซ‡เชถ เชฎเซ‹เช•เชฒเซเชฏเชพ เชชเช›เซ€, เชคเชฎเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชซเซ‹เชจ เชจเช‚เชฌเชฐ เชฆเชพเช–เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชนเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡; เชœเซเชฏเชพเชฐเซ‡ เช–เชฐเซ‡เช–เชฐ เช•เซเชฐเชฟเชฏเชพเช“ เช•เชฐเชตเชพ เชตเชฟเชถเซ‡ เชชเซเชฐเชถเซเชจ เชฌเชคเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ "เชนเชพ" เชกเชพเชฏเชฒ เช•เชฐเซ‹. เช† เชคเชฎเชจเซ‡ เชธเชฎเช—เซเชฐ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชธเซ‡เชŸ เช•เชฐเชตเชพ, EC2 เชจเซเช‚ เชคเชฎเชพเชฎ เชœเชฐเซ‚เชฐเซ€ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชจ เชนเชพเชฅ เชงเชฐเชตเชพ, เชฒเซ‡เชฎเซเชฌเชกเชพ เชซเช‚เช•เซเชถเชจเซเชธ เชตเช—เซ‡เชฐเซ‡ เช—เซ‹เช เชตเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเชถเซ‡.

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชก เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฎ เชธเช‚เชธเชพเชงเชจเซ‹ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ€ เชตเชฟเช—เชคเซ‹เชฎเชพเช‚ เชœเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ (เช•เชฎเชจเชธเซ€เชฌเซ‡, เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเชตเซเช‚ เชคเซ‡ เชฎเชจเซ‡ เชฎเชณเซเชฏเซเช‚ เชจเชฅเซ€).

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฒเซ‹เช‚เชš เช•เชฐเซ‹:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เช† เชชเช›เซ€, เชคเชฎเชพเชฐเซ‡ เชกเซเชฐเซ‹เชช-เชกเชพเช‰เชจ เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€ เชชเชธเช‚เชฆ เช•เชฐเซ€เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚ เชธเซเชŸเซเชฐเซ€เชฎ เชจเชพเชฎ เชธเซเชชเชทเซเชŸเชชเชฃเซ‡ เชธเซ‡เชŸ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชนเชตเซ‡ เชฌเชงเซเช‚ เชœเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ‡.

เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเชฐเซ€เช•เซเชทเชฃ

เชคเชฎเซ‡ เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เช…เชฅเชตเชพ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชก เชฆเซเชตเชพเชฐเชพ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฎเชพเชตเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเชพ เชตเชฟเชจเชพ, เชคเซ‡ เชคเซ‡ เชœ เช•เชพเชฐเซเชฏ เช•เชฐเชถเซ‡.

เช…เชฎเซ‡ SSH เชฎเชพเชฐเชซเชคเซ‡ EC2 เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจเชฎเชพเช‚ เชฒเซ‰เช— เช‡เชจ เช•เชฐเซ€เช เช›เซ€เช เชœเซเชฏเชพเช‚ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒเซเช‚ เช›เซ‡ เช…เชจเซ‡ api_caller.py เชธเซเช•เซเชฐเชฟเชชเซเชŸ เชšเชฒเชพเชตเซ€เช เช›เซ€เช

sudo ./api_caller.py TOKEN

เชคเชฎเชพเชฐเซ‡ เชซเช•เซเชค เชคเชฎเชพเชฐเชพ เชจเช‚เชฌเชฐ เชชเชฐ เชเช• SMSเชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชจเซ€ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
SMS - เชฒเช—เชญเช— 1 เชฎเชฟเชจเชฟเชŸเชฎเชพเช‚ เชคเชฎเชพเชฐเชพ เชซเซ‹เชจ เชชเชฐ เชเช• เชธเช‚เชฆเซ‡เชถ เช†เชตเซ‡ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ
เชคเซ‡ เชชเช›เซ€เชจเชพ, เชตเชงเซ เชตเชฟเช—เชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฎเชพเชŸเซ‡ เชกเชพเชฏเชจเชพเชฎเซ‹เชกเซ€เชฌเซ€ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฐเซ‡เช•เซ‹เชฐเซเชกเซเชธ เชธเชพเชšเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเชคเชพ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชœเซ‹เชตเชพเชจเซเช‚ เชฌเชพเช•เซ€ เช›เซ‡. เชเชฐเชฒเชพเช‡เชจ_เชŸเชฟเช•เชฟเชŸ เช•เซ‹เชทเซเชŸเช•เชฎเชพเช‚ เชฒเช—เชญเช— เชจเซ€เชšเซ‡เชจเซ‹ เชกเซ‡เชŸเชพ เช›เซ‡:

Amazon Kinesis เช…เชจเซ‡ เชธเชฐเซเชตเชฐเชฒเซ‡เชธ เชธเชฐเชณเชคเชพ เชธเชพเชฅเซ‡ Aviasales API เชเช•เซ€เช•เชฐเชฃ

เชจเชฟเชทเซเช•เชฐเซเชท

เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒ เช•เชพเชฐเซเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชเชฎเซ‡เชเซ‹เชจ เช•เชฟเชจเซ‡เชธเชฟเชธ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เช“เชจเชฒเชพเชˆเชจ เชกเซ‡เชŸเชพ เชชเซเชฐเซ‹เชธเซ‡เชธเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เช•เชฟเชจเซ‡เชธเชฟเชธ เชกเซ‡เชŸเชพ เชธเซเชŸเซเชฐเซ€เชฎเซเชธ เช…เชจเซ‡ เชเชธเช•เซเชฏเซเชเชฒ เช†เชฆเซ‡เชถเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชฐเซ€เช…เชฒ-เชŸเชพเช‡เชฎ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เช•เชฟเชจเซ‡เชธเชฟเชธ เชเชจเชพเชฒเชฟเชŸเชฟเช•เซเชธ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฃเชฎเชพเช‚ เช•เชพเช‡เชจเซ‡เชธเชฟเชธ เชเชœเชจเซเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เชคเซ‡เชฎเชœ เช…เชจเซเชฏ AWS เชธเซ‡เชตเชพเช“ เชธเชพเชฅเซ‡ เชเชฎเซ‡เชเซ‹เชจ เช•เชฟเชจเซ‡เชธเชฟเชธเชจเซ€ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€.

เช…เชฎเซ‡ เช‰เชชเชฐเซ‹เช•เซเชค เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชฌเซ‡ เชฐเซ€เชคเซ‡ เชคเซˆเชจเชพเชค เช•เชฐเซ€ เช›เซ‡: เชเช• เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡ เชฒเชพเช‚เชฌเซ€ เชฎเซ‡เชจเซเชฏเซเช…เชฒ เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€ เชเชกเชชเซ€.

เชฌเชงเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชก เช‰เชชเชฒเชฌเซเชง เช›เซ‡ เชฎเชพเชฐเชพ GitHub เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚, เชนเซเช‚ เชคเชฎเชจเซ‡ เชคเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เชชเชฐเชฟเชšเชฟเชค เชฅเชตเชพเชจเซเช‚ เชธเซ‚เชšเชจ เช•เชฐเซเช‚ เช›เซเช‚.

เชนเซเช‚ เชฒเซ‡เช–เชจเซ€ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช–เซเชถ เช›เซเช‚, เชนเซเช‚ เชคเชฎเชพเชฐเซ€ เชŸเชฟเชชเซเชชเชฃเซ€เช“เชจเซ€ เชฐเชพเชน เชœเซ‹เช‰เช‚ เช›เซเช‚. เชนเซเช‚ เชฐเชšเชจเชพเชคเซเชฎเช• เชŸเซ€เช•เชพเชจเซ€ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚.

เชนเซเช‚ เชคเชฎเชจเซ‡ เชธเชซเชณเชคเชพเชจเซ€ เช‡เชšเซเช›เชพ เช•เชฐเซเช‚ เช›เซเช‚!

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹