เจเจ เจเจผเจฌเจฐเจพเจ เจจเจพเจฒ เจธเจผเฉเจฐเฉเจเจค เจเจฐเฉเจ. เจเฉฑเจฒเฉเจน Yandex.Cloud เจจเฉ เจเฉฑเจ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจเฉฐเจชเจฟเจเจเจฟเฉฐเจ เจธเฉเจตเจพ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจฆเฉ เจเฉเจธเจผเจฃเจพ เจเฉเจคเฉ
เจนเจพเจฒเจพเจเจเจฟ, เจเฉเจ เจฌเจฟเจฒเจเฉเฉฑเจฒ เจญเฉเจเจคเจพเจจ เจจเจนเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจจเฅค เจเจน เจกเจฟเจตเฉเจฒเจชเจฐ เจนเจจ
เจชเจฐ เจเฉเจ เจธเฉเจเจฎเจคเจพเจตเจพเจ เจนเจจ. เจชเจนเจฟเจฒเจพเจ, เจคเฉเจนเจพเจกเฉ เจชเจฟเจ เจเฉเจก เจจเฉเฉฐ เจเฉเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ เจฒเฉเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจฒเจพเจเจก เจตเจฟเฉฑเจ เจเจฟเฉฑเจเจฃเจพ เจเฉเจฐ-เจฎเจพเจฎเฉเจฒเฉ เจนเฉเฅค เจฆเฉเจเจพ, เจเจฟเจธเฉ เจตเฉ เจธเจพเจงเจพเจฐเจจ เจเฉเจเจฌเฉเจ เจจเฉเฉฐ เจธเฉฐเจตเจพเจฆ เจฆเฉ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจเจฟเจคเฉ เจธเจเฉเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ (เจเจธ เจฒเจ เจธเจเฉเจ); เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจเจธเจผเจจ เจตเจฟเฉฑเจ เจ เจเจฟเจนเจพ เจเจฐเจจ เจฆเจพ เจธเจญ เจคเฉเจ เจเจธเจพเจจ เจคเจฐเฉเจเจพ เจเฉ เจนเฉ? เจคเฉเจเจพ, เจคเฉเจธเฉเจ เจเจฒเจฟเจธ เจฒเจ เจเฉฑเจ เจคเฉเจเจผ เจ เจคเฉ เจเฉฐเจฆเจพ เจนเฉเจจเจฐ เจเจฟเจตเฉเจ เจฒเจฟเจ เจธเจเจฆเฉ เจนเฉ เจเจพเจ เจเฉฑเจ เจเฉเจฐ-เจเจผเฉเจฐเฉ เจชเจฒเจพเจ เจฆเฉ เจจเจพเจฒ เจเจฟเจธเฉ เจเจฟเจธเจฎ เจฆเฉ เจฌเฉเจ เจตเฉ? เจฒเฉเจ, เจ เจธเจฒ เจตเจฟเฉฑเจ, เจเจนเจจเจพเจ เจธเฉเจเจฎเจคเจพเจตเจพเจ เจฌเจพเจฐเฉ เจนเฉ.
เจจเฉเจคเจฟเจ เจคเจฟเจเจฐเฉ
เจฌเฉเจธเจฌเจฐเฉ เจฒเจ: เจฎเฉเจ เจเจฒเจพเจเจก 'เจคเฉ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจ
เจชเจฒเฉเจก เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจฎเฉเจเจซเจพเจเจฒ เจจเจพเจฒ เจฒเฉเฉเฉเจเจฆเฉ เจจเจฟเจฐเจญเจฐเจคเจพ เจเจเฉฑเจ เฉ เจเจฐเจฆเจพ เจนเจพเจ, เจฎเฉเจ เจกเจพเจเจฒเจพเจ เจฆเฉ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจฏเจพเจเจกเฉเจเจธ เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ (เจเจน S3 API เจฆเจพ เจธเจฎเจฐเจฅเจจ เจเจฐเจฆเจพ เจนเฉ) เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเจฐเจฆเจพ เจนเจพเจ, เจ
เจคเฉ เจฎเฉเจ เจกเจพเจเจฒเจพเจ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจเจฐเจจ เจฒเจ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเจพ เจนเจพเจ
เจเจนเจจเจพเจ เจฒเจ เจเฉ เจฅเฉเฉเฉ เจเฉฑเจ เจฌเฉเจธเจฌเจฐเฉ เจนเจจ, เจเจเจฟเจฒเจคเจพ เจฌเจพเจฐเฉ เจฎเฉเจฐเฉ เจเจนเจพเจฃเฉ เจตเจฟเฉฑเจ เจเฉเจคเจพเจเฉเจฐเฉ เจเจฐเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ, เจฎเฉเจ เจเจฟเจธเฉ เจธเจงเจพเจฐเจจ เจเฉเจเจผ เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฆเฉ เจเจผเฉเจฐเจฆเจพเจฐ เจธเจฟเจซเจพเจฐเจธเจผ เจเจฐเจฆเจพ เจนเจพเจ. เจ
เจฐเจฅเจพเจค, เจเฉฑเจ เจธเจฟเฉฐเจเจฒ-เจซเจพเจเจฒ เจเจเฉเจฌเฉเจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจ, เจเจธเจจเฉเฉฐ เจกเจพเจเจฒเจพเจ เจกเจฟเจตเฉเจฒเจชเจฐ เจเฉฐเจธเฉเจฒ เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเจฐ เจเจฐเฉ เจ
เจคเฉ เจเฉเจธเจ เจเจฐเฉ; เจตเฉเจฐเจตเฉ - เจตเจฟเฉฑเจ
เจเฉ เจคเฉเจธเฉเจ เจคเฉเจฐเฉฐเจค เจฎเจนเจฟเจธเฉเจธ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ เจ
เจธเฉเจ เจเฉฑเจฅเฉ เจเจฟเจธ เจฒเจ เจฒเฉ เจฐเจนเฉ เจนเจพเจ, เจคเจพเจ เจเจฒเจฟเจธ เจจเฉเฉฐ เจชเฉเฉฑเจเฉ'
เจเจฒเจฟเจธ: เจนเฉเจฒเฉ! เจคเฉเจธเฉเจ "IT เจเฉเฉฐเจกเจฒเฉ" เจนเฉเจจเจฐ เจตเจฟเฉฑเจ เจนเฉเฅค เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃ เจฒเจ "เจธเจผเฉเจฐเฉ เจเจฐเฉ" เจเจนเฉ เจเจฟ เจคเจพเจฐเฉ เจคเฉเจนเจพเจกเฉ เจจเจพเจฒ เจเฉ เจตเจพเจ
เจฆเจพ เจเจฐเจฆเฉ เจนเจจเฅค
เจเจชเจญเฉเจเจคเจพ: เจธเจผเฉเจฐเฉ เจเจฐเฉ
เจเจตเจพเจฌ: เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจเจชเจฃเจพ เจจเจพเจฎ เจฆเฉฑเจธเฉ
เจฏเฉ: เจตเจธเฉเจธเฉเจ
เจฒเฉ
เจเจตเจพเจฌ: เจนเฉเจฃ เจฎเฉเจจเฉเฉฐ เจเจชเจฃเฉ เจเจจเจฎ เจฆเจพ เจธเจพเจฒ เจฆเฉฑเจธเฉเฅค เจธเจฟเจฐเจซเจผ เจเจพเจฐ เจ
เฉฐเจ, เจตเจพเจงเฉ เจเฉเจ เจจเจนเฉเจเฅค
เจฏเฉ: เจฆเฉเจเจพ
A: เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจฆเฉเจฌเจพเจฐเจพ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเฉเฅค เจเจชเจฃเฉ เจเจจเจฎ เจฆเจพ เจธเจพเจฒ เจฆเจฐเจ เจเจฐเฉ - เจเจพเจฐ เจ
เฉฐเจเฅค
เจฏเฉ: 2002
A: เจฌเจนเฉเจค เจตเจงเฉเจ! เจนเฉเจฃ เจเจชเจฃเฉ เจเจจเจฎ เจฆเฉ เจฎเจนเฉเจจเฉ เจฆเจพ เจจเจพเจฎ เจฐเฉฑเจเฉเฅค
เจฏเฉ: เจซเจฐเจตเจฐเฉ
A: เจฌเจนเฉเจค เจตเจงเฉเจ! เจ
เฉฐเจค เจตเจฟเฉฑเจ, เจฎเฉเจจเฉเฉฐ เจเจชเจฃเฉ เจเจจเจฎ เจฎเจฟเจคเฉ เจฆเฉฑเจธเฉ - เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจจเฉฐเจฌเจฐ, เจธเจฟเจฐเจซเจผ เจเฉฑเจ เจเจพเจ เจฆเฉ เจ
เฉฐเจเฅค
เจฏเฉ: 18
A: เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ, เจตเจธเฉเจธเฉเจ
เจฒเฉ! เจนเฉเจฃ เจ
เจธเฉเจ เจเจพเจฃเจฆเฉ เจนเจพเจ: เจคเฉเจนเจพเจกเฉ เจเจฎเจฐ 17 เจธเจพเจฒ เจนเฉ เจ
เจคเฉ เจเฉฑเจ เจเฉเฉฐเจญ เจนเฉเฅค เจเฉเจฐ, เจฌเฉเจธเจผเจ, เจคเฉเจธเฉเจ เจเฉเจธเจผเจเจฟเจธเจฎเจค เจนเฉ! เจคเจพเจฐเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเฉฑเจธเจฆเฉ เจนเจจ: ะฐ ััะพ ะณะพะฒะพััั ะทะฒัะทะดั, ะฒั ัะทะฝะฐะตัะต, ะทะฐะฟัััะธะฒ ะฝะฐะฒัะบ.
เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ เจ
เจเจฟเจนเฉ เจธเจงเจพเจฐเจจ เจธเฉฐเจตเจพเจฆ เจจเฉเฉฐ เจเจพเจเจฎ เจฐเฉฑเจเจฃ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเจชเจญเฉเจเจคเจพ เจฆเจพ เจจเจพเจฎ เจ
เจคเฉ เจเจจเจฎ เจฎเจฟเจคเฉ เจฏเจพเจฆ เจฐเฉฑเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจ
เจคเฉ เจเฉฑเจ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจเจธเจผเจจ เจตเจพเจคเจพเจตเจฐเจจ เจตเจฟเฉฑเจ เจเจน เจเฉเจฐ-เจฎเจพเจฎเฉเจฒเฉ เจนเฉเฅค เจธเฉฐเจฆเจฐเจญ เจจเฉเฉฐ RAM เจตเจฟเฉฑเจ เจเจพเจ เจกเจฟเจธเจ เจเฉฑเจคเฉ เจเฉฑเจ เจซเจพเจเจฒ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉเจ เจนเฉเจตเฉเจเจพ, เจเจฟเจเจเจเจฟ Yandex.Cloud เจเฉฑเจเฉ เจธเจฎเฉเจ เจเจ เจตเจฐเจเฉเจ
เจฒ เจฎเจธเจผเฉเจจเจพเจ 'เจคเฉ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจเจฒเจพ เจธเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจนเจจเจพเจ เจตเจฟเจเจเจพเจฐ เจเจชเจฃเฉ เจฎเจฐเจเจผเฉ เจจเจพเจฒ เจฌเจฆเจฒ เจธเจเจฆเจพ เจนเฉเฅค เจคเฉเจนเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจเจฟเจธเจฎ เจฆเฉ เจฌเจพเจนเจฐเฉ เจธเจเฉเจฐเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเฉ เจชเจตเฉเจเฉเฅค เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ เจจเฉเฉฐ เจธเจฟเฉฑเจงเฉ Yandex.Cloud เจตเจฟเฉฑเจ เจเฉฑเจ เจเจพเจซเจผเฉ เจธเจธเจคเฉ เจ
เจคเฉ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจธเจเฉเจฐเฉเจ เจตเจเฉเจ เจเฉเจฃเจฟเจ เจเจฟเจ เจธเฉ (เจ
เจฐเจฅเจพเจค, เจธเจผเจพเจเจฆ เจคเฉเจเจผ)เฅค เจเฉฑเจ เจฎเฉเจซเจค เจตเจฟเจเจฒเจช เจตเจเฉเจ, เจคเฉเจธเฉเจ เจเฉเจธเจผเจฟเจธเจผ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจฃ เจฒเจ, เจเฉฑเจ เจฎเฉเจซเจค เจเฉเจเฉเจพ
เจเจ เจนเฉเจฐ เจธเจฎเฉฑเจธเจฟเจ เจเจน เจนเฉ เจเจฟ เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจเจผ, เจฎเฉเจเจเฉเจกเฉเจฌเฉ, เจ เจคเฉ เจเจฟเจธเฉ เจนเฉเจฐ เจกเฉเจเจพเจฌเฉเจธ เจเจพเจ เจกเฉเจเจพ เจธเจเฉเจฐ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจ เจฌเจพเจนเจฐเฉ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเฉ เจคเฉเจนเจพเจกเฉ เจซเฉฐเจเจธเจผเจจ เจเฉเจก เจฆเฉ เจจเจพเจฒ เจฏเจพเจเจกเฉเจเจธ เจซเฉฐเจเจธเจผเจจเจพเจ 'เจคเฉ เจ เจชเจฒเฉเจก เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเฅค เจ เจคเฉ เจฎเฉเจ เจเจธเจจเฉเฉฐ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจขเฉฐเจ เจจเจพเจฒ เจเจฐเจจเจพ เจเจพเจนเจพเจเจเจพเฅค เจฌเจฆเจเจฟเจธเจฎเจคเฉ เจจเจพเจฒ, เจเจน เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจธเฉเจตเจฟเจงเจพเจเจจเจ เจจเจนเฉเจ เจนเฉเจตเฉเจเจพ (เจเจฟเจตเฉเจ เจนเฉเจฐเฉเจเฉ 'เจคเฉ), เจชเจฐ เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฒเจ เจธเจเฉเจฐเจฟเจชเจ เจฒเจฟเจ เจเฉ เจเฉเจ เจฌเฉเจจเจฟเจเจฆเฉ เจเจฐเจพเจฎ เจฌเจฃเจพเจเจ เจเจพ เจธเจเจฆเจพ เจนเฉ (เจซเจพเจเจฒ เจฌเจฃเจพเจ)เฅค
เจเฉเฉฐเจกเจฒเฉ เจฆเฉ เจนเฉเจจเจฐ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจธเจผเฉเจฐเฉ เจเจฐเจจเจพ เจนเฉ
- เจคเจฟเจเจฐ เจเจฐเฉ: เจฒเฉเจจเจเจธ เจจเจพเจฒ เจเจฟเจธเฉ เจฎเจธเจผเฉเจจ 'เจคเฉ เจเจพเจเฅค เจธเจฟเจงเจพเจเจค เจตเจฟเฉฑเจ, เจคเฉเจธเฉเจ เจธเจผเจพเจเจฆ เจตเจฟเฉฐเจกเฉเจเจผ เจฆเฉ เจจเจพเจฒ เจตเฉ เจเฉฐเจฎ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉเฉฐ เจฎเฉเจเจซเจพเจเจฒ เจจเฉเฉฐ เจฒเจพเจเจ เจเจฐเจจ เจฆเฉ เจจเจพเจฒ เจเฉเจ เจเจพเจฆเฉ เจเจฐเจจเจพ เจชเจตเฉเจเจพเฅค เจ เจคเฉ เจเจฟเจธเฉ เจตเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ, เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจเฉ เจเฉฑเจ เจชเจพเจเจฅเจจ 3.6 เจธเจฅเจพเจชเจค เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเจเจเฉ.
- เจเจธ เจจเฉเฉฐ เจเจฟเจฅเจฌ เจคเฉเจ เจเจฒเฉเจจ เจเจฐเฉ
เจเฉเฉฐเจกเจฒเฉ เจนเฉเจจเจฐ เจฆเฉ เจเจฆเจพเจนเจฐเจจ . - Y.Cloud เจตเจฟเฉฑเจ เจฐเจเจฟเจธเจเจฐ เจเจฐเฉ:
https://cloud.yandex.ru - เจเจชเจฃเฉ เจเจช เจตเจฟเฉฑเจ เจฆเฉ เจฌเจพเจฒเจเฉเจเจ เจฌเจฃเจพเจ
เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ , เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจฟเจธเฉ เจตเฉ เจจเจพเจฎ เจจเจพเจฒ เจฌเฉเจฒเจพเจ{BUCKET NAME}
ะธtgalice-test-cold-storage
(เจเจน เจฆเฉเจเจพ เจจเจพเจฎ เจนเฉเจฃ เจนเจพเจฐเจกเจเฉเจก เจตเจฟเฉฑเจ เจนเฉmain.py
เจฎเฉเจฐเฉ เจเจฆเจพเจนเจฐเจจ). เจชเจนเจฟเจฒเฉ เจฌเจพเจฒเจเฉ เจฆเฉ เจฒเฉเฉ เจธเจฟเจฐเจซเจผ เจคเฉเจจเจพเจคเฉ เจฒเจ เจนเฉเจตเฉเจเฉ, เจฆเฉเจเฉ - เจกเจพเจเจฒเจพเจ เจธเจฅเจฟเจคเฉเจเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจเฅค - เจฌเจฃเจพเจเจฃ
เจธเฉเจตเจพ เจเจพเจคเจพ , เจเจธเจจเฉเฉฐ เจเฉฑเจ เจฐเฉเจฒ เจฆเจฟเจeditor
, เจ เจคเฉ เจเจธเจฆเฉ เจฒเจ เจธเจฅเจฟเจฐ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจชเฉเจฐเจพเจชเจค เจเจฐเฉ{KEY ID}
ะธ{KEY VALUE}
- เจ เจธเฉเจ เจเจนเจจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจตเจพเจฐเจคเจพเจฒเจพเจช เจฆเฉ เจธเจฅเจฟเจคเฉ เจจเฉเฉฐ เจฐเจฟเจเจพเจฐเจก เจเจฐเจจ เจฒเจ เจเจฐเจพเจเจเฉเฅค เจเจธ เจธเจญ เจฆเฉ เจฒเฉเฉ เจนเฉ เจคเจพเจ เจเจฟ Ya.Cloud เจคเฉเจ เจเฉเจ เจซเฉฐเจเจธเจผเจจ Ya.Cloud เจคเฉเจ เจธเจเฉเจฐเฉเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐ เจธเจเฉเฅค เจเจฟเจธเฉ เจฆเจฟเจจ, เจฎเฉเจจเฉเฉฐ เจเจฎเฉเจฆ เจนเฉ, เจ เจงเจฟเจเจพเจฐ เจเจเฉเจฎเฉเจเจฟเจ เจฌเจฃ เจเจพเจตเฉเจเจพ, เจชเจฐ เจนเฉเจฃ เจฒเจ เจเจน เจเจธ เจคเจฐเฉเจนเจพเจ เจนเฉเฅค - (เจตเจฟเจเจฒเจชเจฟเจ) เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ
เจเจฎเจพเจเจก เจฒเจพเจเจจ เจเฉฐเจเจฐเจซเฉเจธ yc
. เจคเฉเจธเฉเจ เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ เจฐเจพเจนเฉเจ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจตเฉ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ, เจชเจฐ CLI เจตเจงเฉเจ เจนเฉ เจเจฟเจเจเจเจฟ เจเจธ เจตเจฟเฉฑเจ เจนเจฐ เจคเจฐเฉเจนเจพเจ เจฆเฉเจเจ เจเจพเจขเจพเจ เจคเฉเจเจผเฉ เจจเจพเจฒ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉเจเจ เจนเจจเฅค - เจนเฉเจฃ เจคเฉเจธเฉเจ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจ
เจธเฉเจเจฌเจฒเฉ เจคเจฟเจเจฐ เจเจฐ เจธเจเจฆเฉ เจนเฉ: เจเจธเจจเฉเฉฐ เจนเฉเจจเจฐ เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจจเจพเจฒ เจซเฉเจฒเจกเจฐ เจคเฉเจ เจเจฎเจพเจเจก เจฒเจพเจเจจ 'เจคเฉ เจเจฒเจพเจ
make all
. เจซเฉเจฒเจกเจฐ เจตเจฟเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉเจเจ เจฆเจพ เจเฉฑเจ เจธเจฎเฉเจน (เจเจผเจฟเจเจฆเจพเจคเจฐ, เจเจฎ เจตเจพเจเจ, เจฌเฉเจฒเฉเฉเฉ) เจธเจฅเจพเจชเจค เจเฉเจคเจพ เจเจพเจตเฉเจเจพdist
. - เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ เจตเจฟเฉฑเจ เจนเฉฑเจฅ เจจเจพเจฒ เจกเฉเจฒเฉเจน เจฆเจฟเจ (เจฌเจพเจฒเจเฉ เจตเจฟเฉฑเจ
{BUCKET NAME}
) เจชเฉเจฐเจพเจฒเฉเจ เจชเจฟเจเจฒเฉ เจชเฉเจพเจ เจตเจฟเฉฑเจ เจชเฉเจฐเจพเจชเจค เจเฉเจคเจพdist.zip
. เจเฉ เจฒเฉเฉเฉเจฆเจพ เจนเฉเจตเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจน เจเจฎเจพเจเจก เจฒเจพเจเจจ เจคเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเฉ, เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจตเจฐเจค เจเฉAWS CLI . - เจตเฉเฉฑเจฌ เจเฉฐเจเจฐเจซเฉเจธ เจฆเฉเจเจฐเจพ เจเจพเจ เจเจชเจฏเฉเจเจคเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเฉฑเจ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจ
yc
. เจธเจนเฉเจฒเจค เจฒเจ, เจเจฎเจพเจเจก เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเฉเจตเฉเจเฉ:
yc serverless function version create
--function-name=horoscope
--environment=AWS_ACCESS_KEY_ID={KEY ID},AWS_SECRET_ACCESS_KEY={KEY VALUE}
--runtime=python37
--package-bucket-name={BUCKET NAME}
--package-object-name=dist.zip
--entrypoint=main.alice_handler
--memory=128M
--execution-timeout=3s
เจนเฉฑเจฅเฉเจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ, เจธเจพเจฐเฉ เจฎเจพเจชเจฆเฉฐเจก เจเฉฑเจเฉ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจญเจฐเฉ เจเจพเจเจฆเฉ เจนเจจเฅค
เจนเฉเจฃ เจคเฉเจนเจพเจกเฉ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจเจ เจซเฉฐเจเจธเจผเจจ เจจเฉเฉฐ เจกเจฟเจตเฉเจฒเจชเจฐ เจเฉฐเจธเฉเจฒ เจฆเฉเจเจฐเจพ เจเฉเจธเจ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉ, เจ เจคเฉ เจซเจฟเจฐ เจนเฉเจจเจฐ เจจเฉเฉฐ เจธเฉเจงเจพเจฐเจฟเจ เจ เจคเฉ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค
เจนเฉเฉฑเจก เจฆเฉ เจ เจงเฉเจจ เจเฉ เจนเฉ
เจฎเฉเจเจซเจพเจเจฒ เจตเจฟเฉฑเจ เจ
เจธเจฒ เจตเจฟเฉฑเจ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจค เจเจฐเจจ เจ
เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉฑเจ เจชเฉเจฐเจพเจฒเฉเจ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฃ เจฒเจ เจเฉฑเจ เจเจพเจซเจผเฉ เจธเจงเจพเจฐเจจ เจธเจเฉเจฐเจฟเจชเจ เจนเฉ dist.zip
, เจฒเจเจญเจ เจเจธ เจคเจฐเฉเจนเจพเจ:
mkdir -p dist/
pip3 install -r requirements.txt --target dist/
cp main.py dist/main.py
cp form.yaml dist/form.yaml
cd dist && zip --exclude '*.pyc' -r ../dist.zip ./*
เจฌเจพเจเฉ เจเฉฑเจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ เจตเจฟเฉฑเจ เจฒเจชเฉเจเจฟเจ เจเฉเจ เจธเจงเจพเจฐเจจ เจธเจพเจงเจจ เจนเจจ tgalice
. เจเจชเจญเฉเจเจคเจพ เจกเฉเจเจพ เจจเฉเฉฐ เจญเจฐเจจ เจฆเฉ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจจเฉเฉฐ เจธเฉฐเจฐเจเจจเจพ เจฆเฉเจเจฐเจพ เจฆเจฐเจธเจพเจเจ เจเจฟเจ เจนเฉ form.yaml
:
form_name: 'horoscope_form'
start:
regexp: 'ััะฐัั|ะฝะฐั(ะฐัั|ะฝะธ)'
suggests:
- ะกัะฐัั
fields:
- name: 'name'
question: ะะพะถะฐะปัะนััะฐ, ะฝะฐะทะพะฒะธัะต ัะฒะพั ะธะผั.
- name: 'year'
question: ะขะตะฟะตัั ัะบะฐะถะธัะต ะผะฝะต ะณะพะด ะฒะฐัะตะณะพ ัะพะถะดะตะฝะธั. ะขะพะปัะบะพ ัะตัััะต ัะธััั, ะฝะธัะตะณะพ ะปะธัะฝะตะณะพ.
validate_regexp: '^[0-9]{4}$'
validate_message: ะะพะถะฐะปัะนััะฐ, ะฟะพะฟัะพะฑัะนัะต ะตัั ัะฐะท. ะะฐะทะพะฒะธัะต ะณะพะด ะฒะฐัะตะณะพ ัะพะถะดะตะฝะธั - ัะตัััะต ัะธััั.
- name: 'month'
question: ะะฐะผะตัะฐัะตะปัะฝะพ! ะขะตะฟะตัั ะฝะฐะทะพะฒะธัะต ะผะตััั ะฒะฐัะตะณะพ ัะพะถะดะตะฝะธั.
options:
- ัะฝะฒะฐัั
...
- ะดะตะบะฐะฑัั
validate_message: ะขะพ, ััะพ ะฒั ะฝะฐะทะฒะฐะปะธ, ะฝะต ะฟะพั
ะพะถะต ะฝะฐ ะผะตััั. ะะพะถะฐะปัะนััะฐ, ะฝะฐะทะพะฒะธัะต ะผะตััั ะฒะฐัะตะณะพ ัะพะถะดะตะฝะธั, ะฑะตะท ะดััะณะธั
ัะปะพะฒ.
- name: 'day'
question: ะัะปะธัะฝะพ! ะะฐะบะพะฝะตั, ะฝะฐะทะพะฒะธัะต ะผะฝะต ะดะฐัั ะฒะฐัะตะณะพ ัะพะถะดะตะฝะธั - ัะพะปัะบะพ ัะธัะปะพ, ะฒัะตะณะพ ะพะดะฝะฐ ะธะปะธ ะดะฒะต ัะธััั.
validate_regexp: '[0123]?d$'
validate_message: ะะพะถะฐะปัะนััะฐ, ะฟะพะฟัะพะฑัะนัะต ะตัั ัะฐะท. ะะฐะผ ะฝัะถะฝะพ ะฝะฐะทะฒะฐัั ัะธัะปะพ ัะฒะพะตะณะพ ัะพะถะดะตะฝะธั (ะฝะฐะฟัะธะผะตั, ะดะฒะฐะดัะฐัะพะต); ััะพ ะพะดะฝะฐ ะธะปะธ ะดะฒะต ัะธััั.
เจเจธ เจธเฉฐเจฐเจเจจเจพ เจจเฉเฉฐ เจชเจพเจฐเจธ เจเจฐเจจ เจ เจคเฉ เจ เฉฐเจคเจฎ เจจเจคเฉเจเฉ เจฆเฉ เจเจฃเจจเจพ เจเจฐเจจ เจฆเจพ เจเฉฐเจฎ เจชเจพเจเจฅเจจ เจเจฒเจพเจธ เจฆเฉเจเจฐเจพ เจฒเจฟเจ เจเจฟเจ เจนเฉ
class CheckableFormFiller(tgalice.dialog_manager.form_filling.FormFillingDialogManager):
SIGNS = {
'ัะฝะฒะฐัั': 'ะะพะทะตัะพะณ',
...
}
def handle_completed_form(self, form, user_object, ctx):
response = tgalice.dialog_manager.base.Response(
text='ะกะฟะฐัะธะฑะพ, {}! ะขะตะฟะตัั ะผั ะทะฝะฐะตะผ: ะฒะฐะผ {} ะปะตั, ะธ ะฒั {}. n'
'ะะพั ััะพ ะฒะฐะผ, ะบะพะฝะตัะฝะพ, ะฟะพะฒะตะทะปะพ! ะะฒัะทะดั ะณะพะฒะพััั ะฒะฐะผ: {}'.format(
form['fields']['name'],
2019 - int(form['fields']['year']),
self.SIGNS[form['fields']['month']],
random.choice(FORECASTS),
),
user_object=user_object,
)
return response
เจนเฉเจฐ เจธเจนเฉ, เจฌเฉเจธ เจเจฒเจพเจธ FormFillingDialogManager
"เจซเจพเจฐเจฎ" เจญเจฐเจจ, เจ
เจคเฉ เจเจพเจเจฒเจก เจเจฒเจพเจธ เจตเจฟเจงเฉ เจจเจพเจฒ เจธเฉฐเจฌเฉฐเจงเจฟเจค เจนเฉ handle_completed_form
เจเจธ เจจเฉเฉฐ เจฆเฉฑเจธเจฆเฉ เจนเฉ เจเจฟ เจเจฆเฉเจ เจเจน เจคเจฟเจเจฐ เจนเฉเจตเฉ เจคเจพเจ เจเฉ เจเจฐเจจเจพ เจนเฉเฅค
เจธเฉฐเจตเจพเจฆ เจฆเฉ เจเจธ เจฎเฉเฉฑเจ เจชเฉเจฐเจตเจพเจน เจคเฉเจ เจเจฒเจพเจตเจพ, เจเจชเจญเฉเจเจคเจพ เจจเฉเฉฐ "เจฎเจฆเจฆ" เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฎเจฆเจฆ เจฆเจฟเฉฑเจคเฉ เจเจพเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉ เจ
เจคเฉ "เจเจเจเจผเจฟเจ" เจเจฎเจพเจเจก เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจนเฉเจจเจฐ เจคเฉเจ เจฎเฉเจเจค เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจธ เจฎเฉฐเจคเจต เจฒเจ เจเจจ tgalice
เจเฉฑเจฅเฉ เจเฉฑเจ เจเฉเจเจชเจฒเฉเจ เจตเฉ เจนเฉ, เจเจธเจฒเจ เจชเฉเจฐเจพ เจกเจพเจเจฒเจพเจ เจฎเฉเจจเฉเจเจฐ เจเฉเจเฉเจฟเจเจ เจฆเจพ เจฌเจฃเจฟเจ เจนเฉเจเจ เจนเฉ:
dm = tgalice.dialog_manager.CascadeDialogManager(
tgalice.dialog_manager.GreetAndHelpDialogManager(
greeting_message=DEFAULT_MESSAGE,
help_message=DEFAULT_MESSAGE,
exit_message='ะะพ ัะฒะธะดะฐะฝะธั, ะฟัะธั
ะพะดะธัะต ะฒ ะฝะฐะฒัะบ "ะะนัะธัะฝัะน ะณะพัะพัะบะพะฟ" ะตัั!'
),
CheckableFormFiller(`form.yaml`, default_message=DEFAULT_MESSAGE)
)
CascadeDialogManager
เจเจน เจธเจงเจพเจฐเจจ เจคเฉเจฐ 'เจคเฉ เจเฉฐเจฎ เจเจฐเจฆเจพ เจนเฉ: เจเจน เจเจธเจฆเฉ เจธเจพเจฐเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจตเจพเจฐเฉ-เจตเจพเจฐเฉ เจธเฉฐเจตเจพเจฆ เจฆเฉ เจฎเฉเจเฉเจฆเจพ เจธเจฅเจฟเจคเฉ 'เจคเฉ เจฒเจพเจเฉ เจเจฐเจจ เจฆเฉ เจเฉเจธเจผเจฟเจธเจผ เจเจฐเจฆเจพ เจนเฉ, เจ
เจคเฉ เจชเจนเจฟเจฒเฉ เจขเฉเจเจตเฉเจ เจจเฉเฉฐ เจเฉเจฃเจฆเจพ เจนเฉเฅค
เจกเจพเจเจฒเจพเจ เจฎเฉเจจเฉเจเจฐ เจนเจฐเฉเจ เจธเฉเจจเฉเจนเฉ เจฆเฉ เจเจตเจพเจฌ เจตเจเฉเจ เจชเจพเจเจฅเจจ เจเจฌเจเฉเจเจ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค Response
, เจเจฟเจธ เจจเฉเฉฐ เจซเจฟเจฐ เจชเจฒเฉเจจ เจเฉเจเจธเจ เจตเจฟเฉฑเจ, เจเจพเจ เจเจฒเจฟเจธ เจเจพเจ เจเฉเจฒเฉเจเฉเจฐเจพเจฎ เจตเจฟเฉฑเจ เจเฉฑเจ เจธเฉฐเจฆเฉเจธเจผ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฟเจ เจเจพ เจธเจเจฆเจพ เจนเฉ - เจเจธ เจเฉฑเจฒ 'เจคเฉ เจจเจฟเจฐเจญเจฐ เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจฌเฉเจ เจเจฟเฉฑเจฅเฉ เจเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉ; เจเจธ เจตเจฟเฉฑเจ เจธเฉฐเจตเจพเจฆ เจฆเฉ เจฌเจฆเจฒเฉ เจนเฉเจ เจธเจฅเจฟเจคเฉ เจตเฉ เจนเฉ เจเจฟเจธเจจเฉเฉฐ เจธเฉฐเจญเจพเจฒเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจเจน เจธเจพเจฐเฉ เจฐเจธเฉเจ เจเจฟเจธเฉ เจนเฉเจฐ เจตเจฐเจ เจฆเฉเจเจฐเจพ เจธเฉฐเจญเจพเจฒเฉ เจเจพเจเจฆเฉ เจนเฉ, DialogConnector
, เจเจธ เจฒเจ เจฏเจพเจเจกเฉเจเจธ เจซเฉฐเจเจธเจผเจจเจพเจ 'เจคเฉ เจเฉฑเจ เจนเฉเจจเจฐ เจธเจผเฉเจฐเฉ เจเจฐเจจ เจฒเจ เจธเจฟเฉฑเจงเฉ เจธเจเฉเจฐเจฟเจชเจ เจเจธ เจคเจฐเฉเจนเจพเจ เจฆเจฟเจเจพเจ เจฆเจฟเฉฐเจฆเฉ เจนเฉ:
...
session = boto3.session.Session()
s3 = session.client(
service_name='s3',
endpoint_url='https://storage.yandexcloud.net',
aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
aws_secret_access_key=os.environ['AWS_SECRET_ACCESS_KEY'],
region_name='ru-central1',
)
storage = tgalice.session_storage.S3BasedStorage(s3_client=s3, bucket_name='tgalice-test-cold-storage')
connector = tgalice.dialog_connector.DialogConnector(dialog_manager=dm, storage=storage)
alice_handler = connector.serverless_alice_handler
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจเจธ เจเฉเจก เจฆเจพ เจเจผเจฟเจเจฆเจพเจคเจฐ เจนเจฟเฉฑเจธเจพ เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ เจฆเฉ S3 เจเฉฐเจเจฐเจซเฉเจธ เจจเจพเจฒ เจเฉฑเจ เจเฉเจจเฉเจเจธเจผเจจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉเฅค เจคเฉเจธเฉเจ เจชเฉเฉเจน เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเจน เจเฉเจจเฉเจเจธเจผเจจ เจธเจฟเฉฑเจงเฉ เจคเฉเจฐ 'เจคเฉ เจเจฟเจตเฉเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉ
เจเจเจฐเฉ เจฒเจพเจเจจ เจซเฉฐเจเจธเจผเจจ เจฌเจฃเจพเจเจเจฆเฉ เจนเฉ alice_handler
โ เจเจนเฉ เจเฉ เจ
เจธเฉเจ Yandex.Cloud เจจเฉเฉฐ เจเจฟเฉฑเจเจฃ เจฒเจ เจเจฟเจนเจพ เจธเฉ เจเจฆเฉเจ เจ
เจธเฉเจ เจชเฉเจฐเจพเจฎเฉเจเจฐ เจธเฉเฉฑเจ เจเจฐเจฆเฉ เจนเจพเจ --entrypoint=main.alice_handler
.
เจเจน เจธเจญ เจนเฉ, เจ
เจธเจฒ เจตเจฟเฉฑเจ. เจ
เจธเฉเจเจฌเจฒเฉ เจฒเจ เจฎเฉเจเจซเจพเจเจฒเจพเจ, เจธเฉฐเจฆเจฐเจญ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ S3 เจตเจฐเจเฉ เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ, เจ
เจคเฉ เจชเจพเจเจฅเจจ เจฒเจพเจเจฌเฉเจฐเฉเจฐเฉ tgalice
. เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจเจธเจผเจจเจพเจ เจ
เจคเฉ เจชเจพเจเจฅเจจ เจฆเฉ เจชเฉเจฐเจเจเจพเจตเฉ เจฆเฉ เจจเจพเจฒ เจฎเจฟเจฒเจพ เจเฉ, เจเจน เจเฉฑเจ เจธเจฟเจนเจคเจฎเฉฐเจฆ เจฎเจจเฉเฉฑเจเฉ เจนเฉเจจเจฐ เจจเฉเฉฐ เจตเจฟเจเจธเจค เจเจฐเจจ เจฒเจ เจเจพเจซเจผเฉ เจนเฉเฅค
เจคเฉเจธเฉเจ เจชเฉเฉฑเจ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเจธเจจเฉเฉฐ เจฌเจฃเจพเจเจฃเจพ เจเจฟเจเจ เจเจผเจฐเฉเจฐเฉ เจธเฉ tgalice
? เจธเจพเจฐเฉ เจฌเฉเจฐเจฟเฉฐเจ เจเฉเจก เจเฉ JSONs เจจเฉเฉฐ เจฌเฉเจจเจคเฉ เจคเฉเจ เจเจตเจพเจฌ เจคเฉฑเจ เจ
เจคเฉ เจธเจเฉเจฐเฉเจ เจคเฉเจ เจฎเฉเจฎเฉเจฐเฉ เจ
เจคเฉ เจฌเฉเจ เจตเจฟเฉฑเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจฆเฉ เจนเจจ เจเจธ เจตเจฟเฉฑเจ เจนเจจเฅค เจเฉฑเจฅเฉ เจเฉฑเจ เจจเจฟเจฏเจฎเจค เจเฉเจก เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเฉ เจนเฉ, เจเจน เจธเจฎเจเจฃ เจฒเจ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ เจเจฟ โเจซเจฐเจตเจฐเฉโ โเจซเจฐเจตเจฐเฉโ เจฆเฉ เจธเจฎเจพเจจ เจนเฉ, เจ
เจคเฉ เจเจฐเฉเจฌเจพเจ เจฒเจ เจนเฉเจฐ NLUเฅค เจฎเฉเจฐเฉ เจตเจฟเจเจพเจฐ เจฆเฉ เจ
เจจเฉเจธเจพเจฐ, เจเจน เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจพเจซเจผเฉ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ เจคเจพเจ เจเฉ เจคเฉเจธเฉเจ เจคเจเจจเฉเจเฉ เจตเฉเจฐเจตเจฟเจเจ เจฆเฉเจเจฐเจพ เจฌเจนเฉเจค เจเจผเจฟเจเจฆเจพ เจงเจฟเจเจจ เจญเจเจเจพเจ เจฌเจฟเจจเจพเจ yaml เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจนเฉเจจเจฐเจพเจ เจฆเฉ เจชเฉเจฐเฉเจเฉเจเจพเจเจชเจพเจ เจจเฉเฉฐ เจธเจเฉเจ เจเจฐ เจธเจเฉ.
เจเฉ เจคเฉเจธเฉเจ เจตเจงเฉเจฐเฉ เจเฉฐเจญเฉเจฐ NLU เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจธเจจเฉเฉฐ เจเจชเจฃเฉ เจนเฉเจจเจฐ เจจเจพเจฒ เจเฉเฉ เจธเจเจฆเฉ เจนเฉ
เจเฉเจฐ, เจนเฉเจฃ เจธเจผเจพเจฎเจฒ เจนเฉเจตเฉ
เจธเจฐเฉเจค: www.habr.com