เชนเซ เชนเชฌเชฐ!
เชถเซเช เชคเชฎเชจเซ เชเชกเชคเชพ เชเชฐเซเชชเซเชฒเซเชจ เชเชฎเซ เชเซ? เชฎเชจเซ เชคเซ เชเชฎเซ เชเซ, เชชเชฐเชเชคเซ เชธเซเชต-เช เชฒเชเชคเชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชฎเชจเซ เชเช เชเชพเชฃเซเชคเชพ เชธเชเชธเชพเชงเชจ - Aviasales เชฎเชพเชเชฅเซ เชเชฐ เชเชฟเชเชฟเช เชชเชฐเชจเชพ เชกเซเชเชพเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพเชฎเชพเช เชชเชฃ เชชเซเชฐเซเชฎ เชฅเชฏเซ.
เชเชเซ เช เชฎเซ Amazon Kinesis เชจเชพ เชเชพเชฐเซเชฏเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชถเซเช, เชฐเซเช เชฒ-เชเชพเชเชฎ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชธเชพเชฅเซ เชธเซเชเซเชฐเซเชฎเชฟเชเช เชธเชฟเชธเซเชเชฎ เชฌเชจเชพเชตเซเชถเซเช, Amazon DynamoDB NoSQL เชกเซเชเชพเชฌเซเชธเชจเซ เชฎเซเชเซเชฏ เชกเซเชเชพ เชธเซเชเซเชฐเซเช เชคเชฐเซเชเซ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชถเซเช เช เชจเซ เชฐเชธเชชเซเชฐเชฆ เชเชฟเชเชฟเชเซ เชฎเชพเชเซ SMS เชธเซเชเชจเชพเช เชธเซเช เชเชฐเซเชถเซเช.
เชฌเชงเซ เชตเชฟเชเชคเซ เชเช เชนเซเช เชณ เชเซ! เชเชพเช!
เชชเชฐเชฟเชเชฏ
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เช
เชฎเชจเซ เชเชเซเชธเซเชธเชจเซ เชเชฐเซเชฐ เชเซ
เช เชฒเซเชเชจเซ เชฎเซเชเซเชฏ เชนเซเชคเซ AWS เชฎเชพเช เชฎเชพเชนเชฟเชคเซ เชธเซเชเซเชฐเซเชฎเชฟเชเชเชจเชพ เชเชชเชฏเซเชเชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชธเชฎเช เชเชชเชตเชพเชจเซ เชเซ; เช เชฎเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเชเช เชเซเช เชเซ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชฏเซเชฒ API เชฆเซเชตเชพเชฐเชพ เชชเชฐเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชกเซเชเชพ เชธเชเชค เชฐเซเชคเซ เช เชช-เชเซ-เชกเซเช เชจเชฅเซ เช เชจเซ เชคเซ เชเซเชถเชฎเชพเชเชฅเซ เชชเซเชฐเชธเชพเชฐเชฟเชค เชฅเชพเชฏ เชเซ, เชเซ เชเซเชฒเซเชฒเชพ 48 เชเชฒเชพเชเชฅเซ Aviasales.ru เช เชจเซ Jetradar.com เชธเชพเชเชเชจเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเช เชฆเซเชตเชพเชฐเชพ เชถเซเชงเชจเชพ เชเชงเชพเชฐเซ เชฐเชเชจเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชเชพเชเชจเซเชธเชฟเชธ-เชเชเชจเซเช, เชชเซเชฐเซเชกเซเชฏเซเชธเชฟเชเช เชฎเชถเซเชจ เชชเชฐ เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒเซเช, API เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ, เชคเซ เชเชชเชฎเซเชณเซ เชเชพเชเชจเซเชธเชฟเชธ เชกเซเชเชพ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชฆเซเชตเชพเชฐเชพ เชเชเซเชเชฟเชค เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชกเซเชเชพเชจเซ เชชเชพเชฐเซเชธ เชเชฐเชถเซ เช เชจเซ เชเซเชฐเชพเชจเซเชธเชฎเชฟเช เชเชฐเชถเซ. เช เชธเซเชเซเชฐเซเชฎเชจเซเช เชฐเซ เชตเชฐเซเชเชจ เชธเซเชเซเชฐ เชชเชฐ เชธเซเชงเซเช เชฒเชเชตเชพเชฎเชพเช เชเชตเชถเซ. DynamoDB เชฎเชพเช เชคเซเชจเชพเชค เชเชฐเชพเชฏเซเชฒ เชเชพเชเซ เชกเซเชเชพ เชธเซเชเซเชฐเซเช BI เชเซเชฒเซเชธ, เชเซเชฎ เชเซ AWS เชเซเชตเชฟเช เชธเชพเชเช เชฆเซเชตเชพเชฐเชพ เชเชฟเชเชฟเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชฎเชพเชเซ เชชเชฐเชตเชพเชจเชเซ เชเชชเชถเซ.
เช เชฎเซ เชธเชฎเชเซเชฐ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชฎเชพเชตเชตเชพ เชฎเชพเชเซ เชฌเซ เชตเชฟเชเชฒเซเชชเซ เชชเชฐ เชตเชฟเชเชพเชฐ เชเชฐเซเชถเซเช:
- เชฎเซเชจเซเชฏเซเช เชฒ - AWS เชฎเซเชจเซเชเชฎเซเชจเซเช เชเชจเซเชธเซเชฒ เชฆเซเชตเชพเชฐเชพ;
- เชเซเชฐเชพเชซเซเชฐเซเชฎ เชเซเชกเชฎเชพเชเชฅเซ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เชเชณเชธเซ เชเชเซเชฎเซเชเชฐเซเชธ เชฎเชพเชเซ เชเซ;
เชตเชฟเชเชธเชฟเชค เชธเชฟเชธเซเชเชฎเชจเซเช เชเชฐเซเชเชฟเชเซเชเซเชเชฐ
เชตเชชเชฐเชพเชฏเซเชฒ เชเชเชเซ:
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 เชถเชพเชฐเซเชก เชคเซเชจเชพ เชฎเชพเชเซ เชชเซเชฐเชคเซ เชนเชถเซ:
เชนเชตเซ เชจเชพเชฎ เชธเชพเชฅเซ เชฌเซเชเซ เชฅเซเชฐเซเชก เชฌเชจเชพเชตเซเช เชตเชฟเชถเซเชท_เชชเซเชฐเชตเชพเชน:
เชจเชฟเชฐเซเชฎเชพเชคเชพ เชธเซเชเช เชช
เชเชพเชฐเซเชฏเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเชตเชพ เชฎเชพเชเซ, เชกเซเชเชพ เชจเชฟเชฐเซเชฎเชพเชคเชพ เชคเชฐเซเชเซ เชจเชฟเชฏเชฎเชฟเชค EC2 เชฆเชพเชเชฒเชพเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชคเซ เชชเซเชฐเชคเซเช เชเซ. เชคเซ เชเช เชถเชเซเชคเชฟเชถเชพเชณเซ, เชเชฐเซเชเชพเชณ เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจ เชนเซเชตเซเช เชเชฐเซเชฐเซ เชจเชฅเซ; เชธเซเชชเซเช t2.micro เชฌเชฐเชพเชฌเชฐ เชเชพเชฎ เชเชฐเชถเซ.
เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชจเซเชเชง: เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเชฎเชพเชฐเซ เชเชฎเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชเซเชเช - Amazon Linux AMI 2018.03.0, เชคเซเชฎเชพเช เชเชพเชเชจเซเชธเชฟเชธ เชเชเชจเซเชเชจเซ เชเชกเชชเชฅเซ เชฒเซเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชเชพ เชธเซเชเชฟเชเชเซเชธ เชเซ.
EC2 เชธเซเชตเชพ เชชเชฐ เชเชพเช, เชจเชตเซเช เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจ เชฌเชจเชพเชตเซ, t2.micro เชชเซเชฐเชเชพเชฐ เชธเชพเชฅเซ เชเชเซเชเชฟเชค AMI เชชเชธเชเชฆ เชเชฐเซ, เชเซ เชซเซเชฐเซ เชเชฟเชฏเชฐเชฎเชพเช เชถเชพเชฎเซเชฒ เชเซ:
เชจเชตเซ เชฌเชจเชพเชตเซเชฒ เชตเชฐเซเชเซเชฏเซเช
เชฒ เชฎเชถเซเชจ เชเชพเชเชจเซเชธเชฟเชธ เชธเซเชตเชพ เชธเชพเชฅเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพ เชเชฐเชตเชพ เชธเชเซเชทเชฎ เชฌเชจเซ เชคเซ เชฎเชพเชเซ, เชคเซเชจเซ เชเชฎ เชเชฐเชตเชพเชจเชพ เช
เชงเชฟเชเชพเชฐเซ เชเชชเชตเชพ เชเชตเชถเซเชฏเช เชเซ. เช เชเชฐเชตเชพเชจเซ เชถเซเชฐเซเชทเซเช เชฐเซเชค เช เชเซ เชเซ IAM เชญเซเชฎเชฟเชเชพ เชธเซเชเชชเชตเซ. เชคเซเชฅเซ, เชธเซเชเซเชช 3: เชเชจเซเชธเซเชเชจเซเชธ เชกเชฟเชเซเชฒเซเชธ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเซ เชธเซเชเซเชฐเซเชจ เชชเชฐ, เชคเชฎเชพเชฐเซ เชชเชธเชเชฆ เชเชฐเชตเซเช เชเซเชเช เชจเชตเซ IAM เชญเซเชฎเชฟเชเชพ เชฌเชจเชพเชตเซ:
EC2 เชฎเชพเชเซ IAM เชญเซเชฎเชฟเชเชพ เชฌเชจเชพเชตเชตเซ
เชเซเชฒเชคเซ เชตเชฟเชเชกเซเชฎเชพเช, เชชเชธเชเชฆ เชเชฐเซ เชเซ เช
เชฎเซ EC2 เชฎเชพเชเซ เชจเชตเซ เชญเซเชฎเชฟเชเชพ เชฌเชจเชพเชตเซ เชฐเชนเซเชฏเชพ เชเซเช เช
เชจเซ เชชเชฐเชตเชพเชจเชเซ เชตเชฟเชญเชพเช เชชเชฐ เชเชพเช:
เชคเชพเชฒเซเชฎเชจเชพ เชเชฆเชพเชนเชฐเชฃเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เช
เชฎเชพเชฐเซ เชธเชเชธเชพเชงเชจ เช
เชงเชฟเชเชพเชฐเซเชจเชพ เชฆเชพเชฃเชพเชฆเชพเชฐ เชฐเซเชชเชฐเซเชเชพเชเชเชจเชจเซ เชฌเชงเซ เชเชเชฟเชฒเชคเชพเชเชฎเชพเช เชเชตเชพเชจเซ เชเชฐเซเชฐ เชจเชฅเซ, เชคเซเชฅเซ เช
เชฎเซ Amazon เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเซเชต-เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชจเซเชคเชฟเช เชชเชธเชเชฆ เชเชฐเซเชถเซเช: AmazonKinesisFullAccess เช
เชจเซ CloudWatchFullAccess.
เชเชพเชฒเซ เช เชญเซเชฎเชฟเชเชพ เชฎเชพเชเซ เชเซเชเชฒเชพเช เช เชฐเซเชฅเชชเซเชฐเซเชฃ เชจเชพเชฎ เชเชชเซเช, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ: EC2-KinesisStreams-FullAccess. เชชเชฐเชฟเชฃเชพเชฎ เชจเซเชเซเชจเชพ เชเชฟเชคเซเชฐเชฎเชพเช เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ เช เชนเซเชตเซเช เชเซเชเช:
เช เชจเชตเซ เชญเซเชฎเชฟเชเชพ เชฌเชจเชพเชตเซเชฏเชพ เชชเชเซ, เชคเซเชจเซ เชฌเชจเชพเชตเซเชฒ เชตเชฐเซเชเซเชฏเซเช
เชฒ เชฎเชถเซเชจ เชเชฆเชพเชนเชฐเชฃ เชธเชพเชฅเซ เชเซเชกเชตเชพเชจเซเช เชญเซเชฒเชถเซ เชจเชนเซเช:
เช
เชฎเซ เช เชธเซเชเซเชฐเซเชจ เชชเชฐ เชฌเซเชเซเช เชเชเชเชชเชฃ เชฌเชฆเชฒเชคเชพ เชจเชฅเซ เช
เชจเซ เชเชเชณเชจเซ เชตเชฟเชเชกเซเช เชชเชฐ เชเชเชณ เชตเชงเซเช เชเซเช.
เชนเชพเชฐเซเชก เชกเซเชฐเชพเชเชต เชธเซเชเชฟเชเชเซเชธเชจเซ เชกเชฟเชซเซเชฒเซเช เชคเชฐเซเชเซ เชเซเชกเซ เชถเชเชพเชฏ เชเซ, เชธเชพเชฅเซ เชธเชพเชฅเซ เชเซ เชเซเชธ (เชเซเชเซ เชเซ เชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เช เชธเชพเชฐเซ เชชเซเชฐเชฅเชพ เชเซ, เชเชเชพเชฎเชพเช เชเชเซเช เชเชฆเชพเชนเชฐเชฃเชจเซ เชจเชพเชฎ เชเชชเซ เช เชจเซ เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชธเซเชเชตเซ).
เชนเชตเซ เช เชฎเซ เชธเซเชเซเชช 6 เชชเชฐ เชเซเช: เชธเชฟเชเซเชฏเซเชฐเชฟเชเซ เชเซเชฐเซเชช เชเซเชฌเชจเซ เชเซเช เชตเซ, เชเซเชฏเชพเช เชคเชฎเชพเชฐเซ เชเช เชจเชตเซเช เชฌเชจเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เช เชฅเชตเชพ เชคเชฎเชพเชฐเซเช เชนเชพเชฒเชจเซเช เชธเชฟเชเซเชฏเซเชฐเชฟเชเซ เชเซเชฐเซเชช เชธเซเชชเชทเซเช เชเชฐเชตเซเช เชชเชกเชถเซ, เชเซ เชคเชฎเชจเซ ssh (เชชเซเชฐเซเช 22) เชฆเซเชตเชพเชฐเชพ เชฆเชพเชเชฒเชพ เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชคเซเชฏเชพเช เชธเซเชคเซเชฐเซเชค -> My IP เชชเชธเชเชฆ เชเชฐเซ เช เชจเซ เชคเชฎเซ เชฆเชพเชเชฒเซ เชฒเซเชเช เชเชฐเซ เชถเชเซ เชเซ.
เชเชฒเชฆเซ เชคเซ เชเชพเชฒเซ เชธเซเชฅเชฟเชคเชฟ เชชเชฐ เชธเซเชตเชฟเช เชเชฐเซ เชเซ, เชคเชฎเซ เชคเซเชจเซ 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
เช
เชจเซ เช
เชฎเซ เชเชฐเชฒเชพเชเชจ_เชเชฟเชเชฟเช เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชเชเชจเซเช เชฒเซเชเชฎเชพเช เช
เชจเซ เชฎเซเชจเชฟเชเชฐเชฟเชเช เชเซเชฌ เชชเชฐ เชเชพเชฎเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเชจเซ เชเซเชเช เชเซเช:
tail -f /var/log/aws-kinesis-agent/aws-kinesis-agent.log
เชเซเชฎ เชคเชฎเซ เชเซเช เชถเชเซ เชเซ, เชฌเชงเซเช เชเชพเชฎ เชเชฐเซ เชเซ เช
เชจเซ เชเชฟเชจเซเชธเชฟเชธ เชเชเชจเซเช เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชกเซเชเชพ เชฎเซเชเชฒเซ เชเซ. เชนเชตเซ เชเชพเชฒเซ เชเซเชฐเชพเชนเชเชจเซ เชเซเช เชตเซเช.
เชเชพเชเชจเซเชธเชฟเชธ เชกเซเชเชพ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชธเซเช เชเชฐเซ เชฐเชนเซเชฏเซเช เชเซ
เชเชพเชฒเซ เชธเชฎเชเซเชฐ เชธเชฟเชธเซเชเชฎเชจเชพ เชเซเชจเซเชฆเซเชฐเชฟเชฏ เชเชเช เชคเชฐเชซ เชเชเชณ เชตเชงเซเช - Kinesis_analytics_airlines_app เชจเชพเชฎเชจเซ Kinesis Data Analytics เชฎเชพเช เชเช เชจเชตเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฌเชจเชพเชตเซ:
เชเชฟเชจเซเชธเชฟเชธ เชกเซเชเชพ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชคเชฎเชจเซ เชเชธเชเซเชฏเซเชเชฒ เชญเชพเชทเชพเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเชฟเชจเซเชธเชฟเชธ เชธเซเชเซเชฐเซเชฎเซเชธเชฎเชพเชเชฅเซ เชฐเซเช
เชฒ-เชเชพเชเชฎ เชกเซเชเชพ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชเชฐเชตเชพ เชฆเซ เชเซ. เชคเซ เชธเชเชชเซเชฐเซเชฃ เชเชเซเชธเซเชเซเชฒเชฟเชเช เชธเซเชตเชพ เชเซ (เชเชพเชเชจเซเชธเชฟเชธ เชธเซเชเซเชฐเซเชฎเซเชธเชฅเซ เชตเชฟเชชเชฐเซเชค) เชเซ:
- เชคเชฎเชจเซ เชธเซเชฐเซเชค เชกเซเชเชพเชจเซ เชตเชฟเชจเชเชคเซเชเชจเชพ เชเชงเชพเชฐเซ เชจเชตเซ เชธเซเชเซเชฐเซเชฎเซเชธ (เชเชเชเชชเซเช เชธเซเชเซเชฐเซเชฎ) เชฌเชจเชพเชตเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ;
- เชเชชเซเชฒเซเชเซเชถเชจ เชเชพเชฒเซ เชฐเชนเซ เชนเชคเซ เชคเซเชฏเชพเชฐเซ เชฅเชฏเซเชฒเซ เชญเซเชฒเซ เชธเชพเชฅเซเชจเซ เชธเซเชเซเชฐเซเชฎ เชชเซเชฐเซ เชชเชพเชกเซ เชเซ (เชญเซเชฒ เชธเซเชเซเชฐเซเชฎ);
- เชเชจเชชเซเช เชกเซเชเชพ เชธเซเชเซเชฎ เชเชชเชฎเซเชณเซ เชจเชเซเชเซ เชเชฐเซ เชถเชเซ เชเซ (เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ เชคเซเชจเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เชซเชฐเซเชฅเซ เชตเซเชฏเชพเชเซเชฏเชพเชฏเชฟเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ).
เช เชธเชธเซเชคเซ เชธเซเชตเชพ เชจเชฅเซ - เชเชพเชฎเชจเชพ เชเชฒเชพเช เชฆเซเช 0.11 USD, เชคเซเชฅเซ เชคเชฎเชพเชฐเซ เชคเซเชจเซ เชเชพเชณเชเซเชชเซเชฐเซเชตเช เชเชชเชฏเซเช เชเชฐเชตเซ เชเซเชเช เช เชจเซ เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชชเซเชฐเซเชฃ เชเชฐเซ เชฒเซ เชคเซเชฏเชพเชฐเซ เชคเซเชจเซ เชเชพเชขเซ เชจเชพเชเซ.
เชเชพเชฒเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชกเซเชเชพ เชธเซเชคเซเชฐเซเชค เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเซเช:
เช
เชฎเซ เชเซ เชธเซเชเซเชฐเซเชฎ เชธเชพเชฅเซ เชเชจเซเชเซเช เชฅเชตเชพ เชเช เชฐเชนเซเชฏเชพ เชเซเช เชคเซ เชชเชธเชเชฆ เชเชฐเซ (เชเชฐเชฒเชพเชเชจ_เชเชฟเชเชฟเช):
เชเชเชณ, เชคเชฎเชพเชฐเซ เชจเชตเซ IAM เชญเซเชฎเชฟเชเชพ เชเซเชกเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชฅเซ เชเชฐเซเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเชเซเชฐเซเชฎเชฎเชพเชเชฅเซ เชตเชพเชเชเซ เชถเชเซ เช
เชจเซ เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชฒเชเซ เชถเชเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชเซเชธเซเชธ เชชเชฐเชตเชพเชจเชเซ เชฌเซเชฒเซเชเชฎเชพเช เชเชเชเชชเชฃ เชฌเชฆเชฒเชตเซเช เชจเชนเซเช เชคเซ เชชเซเชฐเชคเซเช เชเซ:
เชเชพเชฒเซ เชนเชตเซ เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชกเซเชเชพ เชธเซเชเซเชฎเชพ เชถเซเชงเชตเชพเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซเช; เช เชเชฐเชตเชพ เชฎเชพเชเซ, "เชกเชฟเชธเซเชเชตเชฐ เชธเซเชเซเชฎเชพ" เชฌเชเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเซ. เชชเชฐเชฟเชฃเชพเชฎเซ, IAM เชญเซเชฎเชฟเชเชพ เช
เชชเชกเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ (เชเช เชจเชตเซเช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ) เช
เชจเซ เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชชเชนเซเชฒเซเชฅเซ เช เชเชตเซ เชเชฏเซเชฒเชพ เชกเซเชเชพเชฎเชพเชเชฅเซ เชธเซเชเซเชฎเชพ เชถเซเชง เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ:
เชนเชตเซ เชคเชฎเชพเชฐเซ SQL เชเชกเชฟเชเชฐ เชชเชฐ เชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชเซเชฏเชพเชฐเซ เชคเชฎเซ เช เชฌเชเชจ เชชเชฐ เชเซเชฒเชฟเช เชเชฐเชถเซ, เชคเซเชฏเชพเชฐเซ เชเช เชตเชฟเชจเซเชกเซ เชฆเซเชเชพเชถเซ เชเซ เชคเชฎเชจเซ เชเชชเซเชฒเซเชเซเชถเชจ เชฒเซเชจเซเช เชเชฐเชตเชพเชจเซเช เชเชนเซเชถเซ - เชคเชฎเซ เชถเซเช เชฒเซเชจเซเช เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซ เชคเซ เชชเชธเชเชฆ เชเชฐเซ:
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 เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเชเชคเชตเซเชฏ เชฌเซเชฒเซเชเชฎเชพเช, เชธเซเชชเซเชถเชฟเชฏเชฒ_เชธเซเชเซเชฐเซเชฎ เชธเซเชเซเชฐเซเชฎ เชชเชธเชเชฆ เชเชฐเซ เช
เชจเซ เชเชจ-เชเชชเซเชฒเชฟเชเซเชถเชจ เชธเซเชเซเชฐเซเชฎ เชจเชพเชฎ DESTINATION_SQL_STREAM เชกเซเชฐเซเชช-เชกเชพเชเชจ เชธเซเชเชฟเชฎเชพเช:
เชคเชฎเชพเชฎ เชฎเซเชจเชฟเชชเซเชฏเซเชฒเซเชถเชจเซเชธเชจเซเช เชชเชฐเชฟเชฃเชพเชฎ เชจเซเชเซเชจเชพ เชเชฟเชคเซเชฐ เชเซเชตเซเช เช เชเชเชเช เชนเซเชตเซเช เชเซเชเช:
SNS เชตเชฟเชทเชฏ เชฌเชจเชพเชตเชตเซ เช เชจเซ เชธเชฌเซเชธเซเชเซเชฐเชพเชเชฌ เชเชฐเชตเซเช
เชธเชฟเชฎเซเชชเชฒ เชจเซเชเชฟเชซเชฟเชเซเชถเชจ เชธเชฐเซเชตเชฟเชธ เชชเชฐ เชเชพเช เช เชจเซ เชคเซเชฏเชพเช เชเชฐเชฒเชพเชเชจเซเชธ เชจเชพเชฎ เชธเชพเชฅเซ เชจเชตเซ เชตเชฟเชทเชฏ เชฌเชจเชพเชตเซ:
เช เชตเชฟเชทเชฏ เชชเชฐ เชธเชฌเซเชธเซเชเซเชฐเชพเชเชฌ เชเชฐเซ เช
เชจเซ เชฎเซเชฌเชพเชเชฒ เชซเซเชจ เชจเชเชฌเชฐ เชธเซเชเชตเซ เชเซ เชเซเชจเชพ เชชเชฐ SMS เชธเซเชเชจเชพเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเชถเซ:
DynamoDB เชฎเชพเช เชเซเชฌเชฒ เชฌเชจเชพเชตเซ
เชคเซเชฎเชจเซ เชเชฐเชฒเชพเชเชจ_เชเชฟเชเชฟเช เชธเซเชเซเชฐเซเชฎเชฎเชพเชเชฅเซ เชเชพเชเซ เชกเซเชเชพ เชธเซเชเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชคเซ เช เชจเชพเชฎ เชธเชพเชฅเซ เชกเชพเชฏเชจเชพเชฎเซเชกเซเชฌเซเชฎเชพเช เชเช เชเซเชฌเชฒ เชฌเชจเชพเชตเซเช. เช เชฎเซ เชชเซเชฐเชพเชฅเชฎเชฟเช เชเซ เชคเชฐเซเชเซ record_id เชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช:
เชฒเซเชฎเซเชฌเชกเชพ เชซเชเชเซเชถเชจ เชเชฒเซเชเซเชเชฐ เชฌเชจเชพเชตเชตเซเช
เชเชพเชฒเซ เชเชฒเซเชเซเชเชฐ เชจเชพเชฎเชจเซเช เชฒเซเชฎเซเชฌเชกเชพ เชซเชเชเซเชถเชจ เชฌเชจเชพเชตเซเช, เชเซเชจเซเช เชเชพเชฐเซเชฏ เชเชฐเชฒเชพเชเชจ_เชเชฟเชเซเช เชธเซเชเซเชฐเซเชฎเชจเซเช เชฎเชคเชฆเชพเชจ เชเชฐเชตเชพเชจเซเช เชฐเชนเซเชถเซ เช เชจเซ, เชเซ เชคเซเชฏเชพเช เชจเชตเชพ เชฐเซเชเซเชฐเซเชก เชเซเชตเชพ เชฎเชณเซ, เชคเซ เช เชฐเซเชเซเชฐเซเชกเซเชธเชจเซ เชกเชพเชฏเชจเชพเชฎเซเชกเซเชฌเซ เชเซเชฌเชฒเชฎเชพเช เชฆเชพเชเชฒ เชเชฐเซ. เชฆเซเชเซเชคเซ เชฐเซเชคเซ, เชกเชฟเชซเซเชฒเซเช เชฐเชพเชเชเซเชธ เชเชชเชฐเชพเชเชค, เช เชฒเซเชฎเซเชฌเชกเชพ เชชเชพเชธเซ เชเชพเชเชจเซเชธเชฟเชธ เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเชจเซ เชฐเซเชก เชเชเซเชธเซเชธ เช เชจเซ เชกเชพเชฏเชจเชพเชฎเซเชกเซเชฌเซ เชชเชฐ เชฒเชเชตเชพเชจเซ เชเชเซเชธเซเชธ เชนเซเชตเซ เชเซเชเช.
เชเชฒเซเชเซเชเชฐ เชฒเซเชฎเซเชฌเชกเชพ เชซเชเชเซเชถเชจ เชฎเชพเชเซ IAM เชญเซเชฎเชฟเชเชพ เชฌเชจเชพเชตเชตเซ
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชฒเซเชฎเซเชฌเชกเชพ เชฎเชพเชเซ เชเช เชจเชตเซ IAM เชญเซเชฎเชฟเชเชพ เชฌเชจเชพเชตเซเช เชเซเชจเซเช เชจเชพเชฎ เชเซ Lambda-TicketsProcessingRole:
เชชเชฐเซเชเซเชทเชฃ เชเชฆเชพเชนเชฐเชฃ เชฎเชพเชเซ, เชจเซเชเซเชจเซ เชเชฟเชคเซเชฐเชฎเชพเช เชฌเชคเชพเชตเซเชฏเชพ เชชเซเชฐเชฎเชพเชฃเซ, เชชเซเชฐเซเชต-เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค AmazonKinesisReadOnlyAccess เช
เชจเซ AmazonDynamoDBFullAccess เชจเซเชคเชฟเช เชเชเชฆเชฎ เชฏเซเชเซเชฏ เชเซ:
เชเซเชฏเชพเชฐเซ เชจเชตเซ เชเชจเซเชเซเชฐเซเช เชเชฐเชฒเชพเชเชจ_เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชชเซเชฐเชตเซเชถเซ เชเซ เชคเซเชฏเชพเชฐเซ เช เชฒเซเชฎเซเชฌเชกเชพเชจเซ เชเชพเชเชจเซเชธเชฟเชธเชจเชพ เชเซเชฐเชฟเชเชฐ เชฆเซเชตเชพเชฐเชพ เชฒเซเชเช เชฅเชตเซ เชเซเชเช, เชคเซเชฅเซ เช
เชฎเชพเชฐเซ เชเช เชจเชตเซเช เชเซเชฐเชฟเชเชฐ เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ:
เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชเซเชก เชฆเชพเชเชฒ เชเชฐเชตเชพเชจเซเช เช
เชจเซ เชฒเซเชฎเซเชฌเชกเชพเชจเซ เชธเชพเชเชตเชตเชพเชจเซเช เชเซ.
"""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 เชฌเชจเชพเชตเซเช เชเซเช, เช
เชจเซ เชชเชเซ เช เชญเซเชฎเชฟเชเชพ เช
เชฒเชพเชฐเซเชฎ_เชจเซเชเชฟเชซเชพเชฏเชฐ เชฒเซเชฎเซเชฌเชกเชพเชจเซ เชฌเชจเชพเชตเซเช เชเซเช:
เช เชฒเซเชฎเซเชฌเชกเชพเช เชธเซเชชเซเชถเชฟเชฏเชฒ_เชธเซเชเซเชฐเซเชฎเชฎเชพเช เชฆเชพเชเชฒ เชฅเชตเชพ เชฎเชพเชเซ เชจเชตเชพ เชฐเซเชเซเชฐเซเชก เชฎเชพเชเซ เชเซเชฐเชฟเชเชฐ เชชเชฐ เชเชพเชฎ เชเชฐเชตเซเช เชเซเชเช, เชคเซเชฅเซ เชคเชฎเชพเชฐเซ เชเซเชฐเชฟเชเชฐเชจเซ เชคเซ เช เชฐเซเชคเซ เชเซเช เชตเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชฐเซเชคเซ เช
เชฎเซ เชเชฒเซเชเซเชเชฐ เชฒเซเชฎเซเชฌเชกเชพ เชฎเชพเชเซ เชเชฐเซเชฏเซเช เชนเชคเซเช.
เช เชฒเซเชฎเซเชฌเชกเชพเชจเซ เชฐเซเชชเชฐเซเชเชพเชเชเชฟเชค เชเชฐเชตเชพเชจเซเช เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เชเชพเชฒเซ เชเช เชจเชตเซเช เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชเชฒ เชฐเชเซ เชเชฐเซเช - TOPIC_ARN, เชเซเชฏเชพเช เช เชฎเซ เชเชฐเชฒเชพเชเชจเซเชธ เชตเชฟเชทเชฏเชจเชพ ANR (Amazon Recourse Names) เชฎเซเชเซเช เชเซเช:
เช
เชจเซ เชฒเซเชฎเซเชฌเชกเชพ เชเซเชก เชฆเชพเชเชฒ เชเชฐเซ, เชคเซ เชฌเชฟเชฒเชเซเชฒ เชเชเชฟเชฒ เชจเชฅเซ:
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))
เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เช เชคเซ เชเซ เชเซเชฏเชพเช เชฎเซเชจเซเชฏเซเช เชฒ เชธเชฟเชธเซเชเชฎ เชเซเช เชตเชฃเซ เชชเซเชฐเซเชฃ เชฅเชพเชฏ เชเซ. เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชเชเชพเชธเชตเชพเชจเซเช เช เชจเซ เชเชพเชคเชฐเซ เชเชฐเชตเชพเชจเซเช เชเซ เชเซ เช เชฎเซ เชฌเชงเซเช เชฏเซเชเซเชฏ เชฐเซเชคเซ เชเซเช เชตเซเชฏเซเช เชเซ.
เชเซเชฐเชพเชซเซเชฐเซเชฎ เชเซเชกเชฎเชพเชเชฅเซ เชเชฎเชพเชตเช เชเชฐเซ
เชเชฐเซเชฐเซ เชคเซเชฏเชพเชฐเซ
เชคเชฎเซ เชตเชฟเชคเชฐเชฃ เชกเชพเชเชจเชฒเซเชก เชเชฐเซ เชถเชเซ เชเซ
เชเซเชตเซ เชฐเซเชคเซ เชถเชฐเซ เชเชฐเชตเซเช
เชชเซเชฐเซเชเซเชเซเชเชจเซ เชธเชเชชเซเชฐเซเชฃ เชเซเชก เชเซ
เชเซเชฐเชพเชซเซเชฐเซเชฎ เชนเชพเชฒเชฎเชพเช เชเซเชฒเชพเชเชกเชฎเชพเช เชเชชเชฃเชพ เชฎเชพเชเซ เชถเซเช เชฌเชจเชพเชตเซ เชฐเชนเซเชฏเซเช เชเซ เชคเซ เชเซเชตเชพ เชฎเชพเชเซ เชธเชฎเชเซเชฐ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชจเซ เชเชฎเชพเชตเชตเชพ เชชเชนเซเชฒเชพเช เชชเซเชฒเชพเชจ เชเชฎเชพเชจเซเชกเชจเซ เชเชฒเชพเชตเชตเชพเชจเซ เชธเชพเชฐเซ เชชเซเชฐเชฅเชพ เชเซ:
terraform.exe plan
เชคเชฎเชจเซ เชธเซเชเชจเชพเช เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ เชซเซเชจ เชจเชเชฌเชฐ เชฆเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชธเชเชเซเชค เชเชชเชตเชพเชฎเชพเช เชเชตเชถเซ. เช เชคเชฌเชเซเชเซ เชคเซเชจเซ เชฆเชพเชเชฒ เชเชฐเชตเซเช เชเชฐเซเชฐเซ เชจเชฅเซ.
เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเชพ เชเชชเชฐเซเชถเชจ เชชเซเชฒเชพเชจเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชฏเชพ เชชเชเซ, เช
เชฎเซ เชธเชเชธเชพเชงเชจเซ เชฌเชจเชพเชตเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซ เชถเชเซเช เชเซเช:
terraform.exe apply
เช เชเชฆเซเชถ เชฎเซเชเชฒเซเชฏเชพ เชชเชเซ, เชคเชฎเชจเซ เชซเชฐเซเชฅเซ เชซเซเชจ เชจเชเชฌเชฐ เชฆเชพเชเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเชถเซ; เชเซเชฏเชพเชฐเซ เชเชฐเซเชเชฐ เชเซเชฐเชฟเชฏเชพเช เชเชฐเชตเชพ เชตเชฟเชถเซ เชชเซเชฐเชถเซเชจ เชฌเชคเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชคเซเชฏเชพเชฐเซ "เชนเชพ" เชกเชพเชฏเชฒ เชเชฐเซ. เช เชคเชฎเชจเซ เชธเชฎเชเซเชฐ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เชธเซเช เชเชฐเชตเชพ, EC2 เชจเซเช เชคเชฎเชพเชฎ เชเชฐเซเชฐเซ เชฐเซเชชเชฐเซเชเชพเชเชเชจ เชนเชพเชฅ เชงเชฐเชตเชพ, เชฒเซเชฎเซเชฌเชกเชพ เชซเชเชเซเชถเชจเซเชธ เชตเชเซเชฐเซ เชเซเช เชตเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเชถเซ.
เชเซเชฐเชพเชซเซเชฐเซเชฎ เชเซเชก เชฆเซเชตเชพเชฐเชพ เชคเชฎเชพเชฎ เชธเชเชธเชพเชงเชจเซ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชชเชเซ, เชคเชฎเชพเชฐเซ เชเชพเชเชจเซเชธเชฟเชธ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชเชชเซเชฒเชฟเชเซเชถเชจเชจเซ เชตเชฟเชเชคเซเชฎเชพเช เชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ (เชเชฎเชจเชธเซเชฌเซ, เชเซเชกเชฎเชพเชเชฅเซ เช เชเซเชตเซ เชฐเซเชคเซ เชเชฐเชตเซเช เชคเซ เชฎเชจเซ เชฎเชณเซเชฏเซเช เชจเชฅเซ).
เชเชชเซเชฒเชฟเชเซเชถเชจ เชฒเซเชเช เชเชฐเซ:
เช เชชเชเซ, เชคเชฎเชพเชฐเซ เชกเซเชฐเซเชช-เชกเชพเชเชจ เชธเซเชเชฟเชฎเชพเชเชฅเซ เชชเชธเชเชฆ เชเชฐเซเชจเซ เชเชชเซเชฒเชฟเชเซเชถเชจเชฎเชพเช เชธเซเชเซเชฐเซเชฎ เชจเชพเชฎ เชธเซเชชเชทเซเชเชชเชฃเซ เชธเซเช เชเชฐเชตเซเช เชเชตเชถเซเชฏเช เชเซ:
เชนเชตเซ เชฌเชงเซเช เชเชตเชพ เชฎเชพเชเซ เชคเซเชฏเชพเชฐ เชเซ.
เชเชชเซเชฒเชฟเชเซเชถเชจ เชชเชฐเซเชเซเชทเชฃ
เชคเชฎเซ เชธเชฟเชธเซเชเชฎเชจเซ เชฎเซเชจเซเชฏเซเช เชฒเซ เช เชฅเชตเชพ เชเซเชฐเชพเชซเซเชฐเซเชฎ เชเซเชก เชฆเซเชตเชพเชฐเชพ เชเซเชตเซ เชฐเซเชคเซ เชเชฎเชพเชตเซเชฏเซเช เชเซ เชคเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชงเชพ เชตเชฟเชจเชพ, เชคเซ เชคเซ เช เชเชพเชฐเซเชฏ เชเชฐเชถเซ.
เช เชฎเซ SSH เชฎเชพเชฐเชซเชคเซ EC2 เชตเชฐเซเชเซเชฏเซเช เชฒ เชฎเชถเซเชจเชฎเชพเช เชฒเซเช เชเชจ เชเชฐเซเช เชเซเช เชเซเชฏเชพเช เชเชพเชเชจเซเชธเชฟเชธ เชเชเชจเซเช เชเชจเซเชธเซเชเซเชฒ เชเชฐเซเชฒเซเช เชเซ เช เชจเซ api_caller.py เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซเช เชเซเช
sudo ./api_caller.py TOKEN
เชคเชฎเชพเชฐเซ เชซเชเซเชค เชคเชฎเชพเชฐเชพ เชจเชเชฌเชฐ เชชเชฐ เชเช SMSเชจเซ เชฐเชพเชน เชเซเชตเชพเชจเซ เชเซ:
SMS - เชฒเชเชญเช 1 เชฎเชฟเชจเชฟเชเชฎเชพเช เชคเชฎเชพเชฐเชพ เชซเซเชจ เชชเชฐ เชเช เชธเชเชฆเซเชถ เชเชตเซ เชเซ:
เชคเซ เชชเชเซเชจเชพ, เชตเชงเซ เชตเชฟเชเชคเชตเชพเชฐ เชตเชฟเชถเซเชฒเซเชทเชฃ เชฎเชพเชเซ เชกเชพเชฏเชจเชพเชฎเซเชกเซเชฌเซ เชกเซเชเชพเชฌเซเชเชฎเชพเช เชฐเซเชเซเชฐเซเชกเซเชธ เชธเชพเชเชตเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ เชเซ เชเซเชฎ เชคเซ เชเซเชตเชพเชจเซเช เชฌเชพเชเซ เชเซ. เชเชฐเชฒเชพเชเชจ_เชเชฟเชเชฟเช เชเซเชทเซเชเชเชฎเชพเช เชฒเชเชญเช เชจเซเชเซเชจเซ เชกเซเชเชพ เชเซ:
เชจเชฟเชทเซเชเชฐเซเชท
เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฒ เชเชพเชฐเซเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชเชฎเซเชเซเชจ เชเชฟเชจเซเชธเชฟเชธ เชชเชฐ เชเชงเชพเชฐเชฟเชค เชเชจเชฒเชพเชเชจ เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช เชธเชฟเชธเซเชเชฎ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ. เชเชฟเชจเซเชธเชฟเชธ เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเซเชธ เช เชจเซ เชเชธเชเซเชฏเซเชเชฒ เชเชฆเซเชถเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฐเซเช เชฒ-เชเชพเชเชฎ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชเชฟเชจเซเชธเชฟเชธ เชเชจเชพเชฒเชฟเชเชฟเชเซเชธ เชธเชพเชฅเซ เชเซเชกเชพเชฃเชฎเชพเช เชเชพเชเชจเซเชธเชฟเชธ เชเชเชจเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชตเชฟเชเชฒเซเชชเซ เชคเซเชฎเช เช เชจเซเชฏ AWS เชธเซเชตเชพเช เชธเชพเชฅเซ เชเชฎเซเชเซเชจ เชเชฟเชจเซเชธเชฟเชธเชจเซ เชเซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเชเซเชฐเชฟเชฏเชพเชจเซ เชงเซเชฏเชพเชจเชฎเชพเช เชฒเซเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ.
เช เชฎเซ เชเชชเชฐเซเชเซเชค เชธเชฟเชธเซเชเชฎเชจเซ เชฌเซ เชฐเซเชคเซ เชคเซเชจเชพเชค เชเชฐเซ เชเซ: เชเช เชคเซเชจเชพ เชฌเชฆเชฒเซ เชฒเชพเชเชฌเซ เชฎเซเชจเซเชฏเซเช เชฒ เช เชจเซ เชเซเชฐเชพเชซเซเชฐเซเชฎ เชเซเชกเชฎเชพเชเชฅเซ เชเชกเชชเซ.
เชฌเชงเชพ เชชเซเชฐเซเชเซเชเซเช เชธเซเชคเซเชฐเซเชค เชเซเชก เชเชชเชฒเชฌเซเชง เชเซ
เชนเซเช เชฒเซเชเชจเซ เชเชฐเซเชเชพ เชเชฐเชตเชพเชฎเชพเช เชเซเชถ เชเซเช, เชนเซเช เชคเชฎเชพเชฐเซ เชเชฟเชชเซเชชเชฃเซเชเชจเซ เชฐเชพเชน เชเซเชเช เชเซเช. เชนเซเช เชฐเชเชจเชพเชคเซเชฎเช เชเซเชเชพเชจเซ เชเชถเชพ เชฐเชพเชเซเช เชเซเช.
เชนเซเช เชคเชฎเชจเซ เชธเชซเชณเชคเชพเชจเซ เชเชเซเชเชพ เชเชฐเซเช เชเซเช!
เชธเซเชฐเซเชธ: www.habr.com