Yandex.Cloud เจ…เจคเฉ‡ Python เจฆเฉ‡ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจเจฒเจฟเจธ เจฒเจˆ เจ‡เฉฑเจ• เจฐเจพเจœเจ•เฉ€ เจนเฉเจจเจฐ เจฌเจฃเจพเจ‰เจฃเจพ

เจ†เจ“ เจ–เจผเจฌเจฐเจพเจ‚ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚เจ†เจค เจ•เจฐเฉ€เจ. เจ•เฉฑเจฒเฉเจน Yandex.Cloud เจจเฉ‡ เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจ•เฉฐเจชเจฟเจŠเจŸเจฟเฉฐเจ— เจธเฉ‡เจตเจพ เจฆเฉ€ เจธเจผเฉเจฐเฉ‚เจ†เจค เจฆเฉ€ เจ˜เฉ‹เจธเจผเจฃเจพ เจ•เฉ€เจคเฉ€ เจฏเจพเจ‚เจกเฉ‡เจ•เจธ เจ•เจฒเจพเจŠเจก เจซเฉฐเจ•เจธเจผเจจ. เจ‡เจธเจฆเจพ เจ…เจฐเจฅ เจนเฉˆ: เจคเฉเจธเฉ€เจ‚ เจธเจฟเจฐเจซ เจ†เจชเจฃเฉ€ เจธเฉ‡เจตเจพ เจฒเจˆ เจ•เฉ‹เจก เจฒเจฟเจ–เจฆเฉ‡ เจนเฉ‹ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจตเฉˆเจฌ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจœเจพเจ‚ เจ‡เฉฑเจ• เจšเฉˆเจŸเจฌเฉ‹เจŸ), เจ…เจคเฉ‡ เจ•เจฒเจพเจ‰เจก เจ–เฉเจฆ เจนเฉ€ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจธเจพเจ‚เจญ-เจธเฉฐเจญเจพเจฒ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฟเฉฑเจฅเฉ‡ เจ‡เจน เจšเฉฑเจฒเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจฒเฉ‹เจก เจตเจงเจฃ 'เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจตเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฌเจฟเจฒเจ•เฉเจฒ เจธเฉ‹เจšเจฃ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจน เจฌเจนเฉเจค เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆเฅค เจ…เจคเฉ‡ เจญเฉเจ—เจคเจพเจจ เจธเจฟเจฐเจซ เจ—เจฃเจจเจพ เจฆเฉ‡ เจธเจฎเฉ‡เจ‚ เจฒเจˆ เจนเฉˆ.

เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เฉเจ เจฌเจฟเจฒเจ•เฉเฉฑเจฒ เจญเฉเจ—เจคเจพเจจ เจจเจนเฉ€เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจจเฅค เจ‡เจน เจกเจฟเจตเฉˆเจฒเจชเจฐ เจนเจจ เจเจฒเจฟเจธ เจฆเฉ‡ เจฌเจพเจนเจฐเฉ€ เจนเฉเจจเจฐ, เจญเจพเจต, เจ‡เจธ เจตเจฟเฉฑเจš เจฌเจฃเฉ‡ เจšเฉˆเจŸเจฌเฉ‹เจŸเจธเฅค เจ•เฉ‹เจˆ เจตเฉ€ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ…เจœเจฟเจนเฉ‡ เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจฒเจฟเจ– เจธเจ•เจฆเจพ เจนเฉˆ, เจฎเฉ‡เจœเจผเจฌเจพเจจเฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจ…เฉฑเจœ เจคเฉ‹เจ‚ เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจนเฉ‹เจธเจŸ เจ•เจฐเจจ เจฆเฉ€ เจตเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆ - เจฌเจธ เจซเจพเจฐเจฎ เจตเจฟเฉฑเจš เจ•เจฒเจพเจ‰เจก เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ‡ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ…เฉฑเจชเจฒเฉ‹เจก เจ•เจฐเฉ‹ เจ‰เจนเฉ€ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจ.

เจชเจฐ เจ•เฉเจ เจธเฉ‚เจ–เจฎเจคเจพเจตเจพเจ‚ เจนเจจ. เจชเจนเจฟเจฒเจพเจ‚, เจคเฉเจนเจพเจกเฉ‡ เจชเจฟเจŸ เจ•เฉ‹เจก เจจเฉ‚เฉฐ เจ•เฉเจ เจจเจฟเจฐเจญเจฐเจคเจพ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉ‹ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฒเจพเจ‰เจก เจตเจฟเฉฑเจš เจ–เจฟเฉฑเจšเจฃเจพ เจ—เฉˆเจฐ-เจฎเจพเจฎเฉ‚เจฒเฉ€ เจนเฉˆเฅค เจฆเฉ‚เจœเจพ, เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจพเจงเจพเจฐเจจ เจšเฉˆเจŸเจฌเฉ‹เจŸ เจจเฉ‚เฉฐ เจธเฉฐเจตเจพเจฆ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจ•เจฟเจคเฉ‡ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (เจ‡เจธ เจฒเจˆ เจธเจŸเฉ‡เจŸ); เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจ เจตเจฟเฉฑเจš เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฆเจพ เจธเจญ เจคเฉ‹เจ‚ เจ†เจธเจพเจจ เจคเจฐเฉ€เจ•เจพ เจ•เฉ€ เจนเฉˆ? เจคเฉ€เจœเจพ, เจคเฉเจธเฉ€เจ‚ เจเจฒเจฟเจธ เจฒเจˆ เจ‡เฉฑเจ• เจคเฉ‡เจœเจผ เจ…เจคเฉ‡ เจ—เฉฐเจฆเจพ เจนเฉเจจเจฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเจพเจ‚ เจ‡เฉฑเจ• เจ—เฉˆเจฐ-เจœเจผเฉ€เจฐเฉ‹ เจชเจฒเจพเจŸ เจฆเฉ‡ เจจเจพเจฒ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ€ เจฌเฉ‹เจŸ เจตเฉ€? เจฒเฉ‡เจ–, เจ…เจธเจฒ เจตเจฟเฉฑเจš, เจ‡เจนเจจเจพเจ‚ เจธเฉ‚เจ–เจฎเจคเจพเจตเจพเจ‚ เจฌเจพเจฐเฉ‡ เจนเฉˆ.

Yandex.Cloud เจ…เจคเฉ‡ Python เจฆเฉ‡ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจเจฒเจฟเจธ เจฒเจˆ เจ‡เฉฑเจ• เจฐเจพเจœเจ•เฉ€ เจนเฉเจจเจฐ เจฌเจฃเจพเจ‰เจฃเจพ

เจจเฉˆเจคเจฟเจ• เจคเจฟเจ†เจฐเฉ€

เจฌเฉ‡เจธเจฌเจฐเฉ€ เจฒเจˆ: เจฎเฉˆเจ‚ เจ•เจฒเจพเจ‰เจก 'เจคเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจจเจพเจฒ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพ เจ‡เจ•เฉฑเจ เฉ€ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจฎเฉˆเจ‚ เจกเจพเจ‡เจฒเจพเจ— เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจฏเจพเจ‚เจกเฉ‡เจ•เจธ เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ (เจ‡เจน S3 API เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ) เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจฆเจพ เจนเจพเจ‚, เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจกเจพเจ‡เจฒเจพเจ— เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฒเจˆ เจ†เจชเจฃเฉ€ เจ–เฉเจฆ เจฆเฉ€ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเจพ เจนเจพเจ‚ tgalice. เจ…เฉฐเจค เจตเจฟเฉฑเจš เจ‡เจน เจฌเจพเจนเจฐ เจ•เจพเจฎเฉเจ• เจ…เจœเจฟเจนเฉ‡ เจ‡เฉฑเจ• เจกเฉˆเจฎเฉ‹ เจนเฉเจจเจฐ. เจ†เจ“ เจนเฉเจฃ เจ‡เจธ เจธเจญ เจจเฉ‚เฉฐ เจฅเฉ‹เฉœเจพ เจนเฉ‹เจฐ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจš เจตเฉ‡เจ–เฉ€เจ.

เจ‰เจนเจจเจพเจ‚ เจฒเจˆ เจœเฉ‹ เจฅเฉ‹เฉœเฉ‡ เจ˜เฉฑเจŸ เจฌเฉ‡เจธเจฌเจฐเฉ‡ เจนเจจ, เจœเจŸเจฟเจฒเจคเจพ เจฌเจพเจฐเฉ‡ เจฎเฉ‡เจฐเฉ€ เจ•เจนเจพเจฃเฉ€ เจตเจฟเฉฑเจš เจ—เฉ‹เจคเจพเจ–เฉ‹เจฐเฉ€ เจ•เจฐเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจฎเฉˆเจ‚ เจ•เจฟเจธเฉ‡ เจธเจงเจพเจฐเจจ เจšเฉ€เจœเจผ เจจเจพเจฒ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจ เจฆเฉ€ เจœเจผเฉ‹เจฐเจฆเจพเจฐ เจธเจฟเจซเจพเจฐเจธเจผ เจ•เจฐเจฆเจพ เจนเจพเจ‚. เจ…เจฐเจฅเจพเจค, เจ‡เฉฑเจ• เจธเจฟเฉฐเจ—เจฒ-เจซเจพเจˆเจฒ เจˆเจ•เฉ‹เจฌเฉ‹เจŸ เจซเฉฐเจ•เจธเจผเจจ เจฌเจฃเจพเจ“, เจ‡เจธเจจเฉ‚เฉฐ เจกเจพเจ‡เจฒเจพเจ— เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ•เฉฐเจธเฉ‹เจฒ เจตเจฟเฉฑเจš เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจŸเฉˆเจธเจŸ เจ•เจฐเฉ‹; เจตเฉ‡เจฐเจตเฉ‡ - เจตเจฟเฉฑเจš เจธเฉฐเจตเจพเจฆ เจฌเจฒเฉŒเจ— ะธ เจ•เจฒเจพเจ‰เจก เจฆเจธเจคเจพเจตเฉ‡เจœเจผ. เจ…เจคเฉ‡ เจ•เฉ‡เจตเจฒ เจคเจฆ เจนเฉ€ เจธเจผเฉเจฐเฉ‚.

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจฎเจนเจฟเจธเฉ‚เจธ เจ•เจฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจฅเฉ‡ เจ•เจฟเจธ เจฒเจˆ เจฒเฉœ เจฐเจนเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจเจฒเจฟเจธ เจจเฉ‚เฉฐ เจชเฉเฉฑเจ›เฉ‹'"IT เจ•เฉเฉฐเจกเจฒเฉ€" เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจธเจฎเจฐเฉฑเจฅ เจฌเจฃเจพเจ“'เฅค เจนเฉ‡เจ  เจฒเจฟเจ–เฉ‡ เจธเจฎเจพเจจ เจธเฉฐเจตเจพเจฆ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

เจเจฒเจฟเจธ: เจนเฉˆเจฒเฉ‹! เจคเฉเจธเฉ€เจ‚ "IT เจ•เฉเฉฐเจกเจฒเฉ€" เจนเฉเจจเจฐ เจตเจฟเฉฑเจš เจนเฉ‹เฅค เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจฒเจˆ "เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹" เจ•เจนเฉ‹ เจ•เจฟ เจคเจพเจฐเฉ‡ เจคเฉเจนเจพเจกเฉ‡ เจจเจพเจฒ เจ•เฉ€ เจตเจพเจ…เจฆเจพ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค
เจ‰เจชเจญเฉ‹เจ—เจคเจพ: เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‹
เจœเจตเจพเจฌ: เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจ†เจชเจฃเจพ เจจเจพเจฎ เจฆเฉฑเจธเฉ‹
เจฏเฉ‚: เจตเจธเฉ€เจธเฉเจ…เจฒเฉ€
เจœเจตเจพเจฌ: เจนเฉเจฃ เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจœเจจเจฎ เจฆเจพ เจธเจพเจฒ เจฆเฉฑเจธเฉ‹เฅค เจธเจฟเจฐเจซเจผ เจšเจพเจฐ เจ…เฉฐเจ•, เจตเจพเจงเฉ‚ เจ•เฉเจ เจจเจนเฉ€เจ‚เฅค
เจฏเฉ‚: เจฆเฉ‚เจœเจพ
A: เจ•เจฟเจฐเจชเจพ เจ•เจฐเจ•เฉ‡ เจฆเฉเจฌเจพเจฐเจพ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเฉ‹เฅค เจ†เจชเจฃเฉ‡ เจœเจจเจฎ เจฆเจพ เจธเจพเจฒ เจฆเจฐเจœ เจ•เจฐเฉ‹ - เจšเจพเจฐ เจ…เฉฐเจ•เฅค
เจฏเฉ‚: 2002
A: เจฌเจนเฉเจค เจตเจงเฉ€เจ†! เจนเฉเจฃ เจ†เจชเจฃเฉ‡ เจœเจจเจฎ เจฆเฉ‡ เจฎเจนเฉ€เจจเฉ‡ เจฆเจพ เจจเจพเจฎ เจฐเฉฑเจ–เฉ‹เฅค
เจฏเฉ‚: เจซเจฐเจตเจฐเฉ€
A: เจฌเจนเฉเจค เจตเจงเฉ€เจ†! เจ…เฉฐเจค เจตเจฟเฉฑเจš, เจฎเฉˆเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ€ เจœเจจเจฎ เจฎเจฟเจคเฉ€ เจฆเฉฑเจธเฉ‹ - เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจจเฉฐเจฌเจฐ, เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจœเจพเจ‚ เจฆเฉ‹ เจ…เฉฐเจ•เฅค
เจฏเฉ‚: 18
A: เจคเฉเจนเจพเจกเจพ เจงเฉฐเจจเจตเจพเจฆ, เจตเจธเฉ€เจธเฉเจ…เจฒเฉ€! เจนเฉเจฃ เจ…เจธเฉ€เจ‚ เจœเจพเจฃเจฆเฉ‡ เจนเจพเจ‚: เจคเฉเจนเจพเจกเฉ€ เจ‰เจฎเจฐ 17 เจธเจพเจฒ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจ•เฉเฉฐเจญ เจนเฉˆเฅค เจ–เฉˆเจฐ, เจฌเฉ‡เจธเจผเจ•, เจคเฉเจธเฉ€เจ‚ เจ–เฉเจธเจผเจ•เจฟเจธเจฎเจค เจนเฉ‹! เจคเจพเจฐเฉ‡ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฆเฉฑเจธเจฆเฉ‡ เจนเจจ: ะฐ ั‡ั‚ะพ ะณะพะฒะพั€ัั‚ ะทะฒั‘ะทะดั‹, ะฒั‹ ัƒะทะฝะฐะตั‚ะต, ะทะฐะฟัƒัั‚ะธะฒ ะฝะฐะฒั‹ะบ.

เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจนเฉˆ เจ•เจฟ เจ…เจœเจฟเจนเฉ‡ เจธเจงเจพเจฐเจจ เจธเฉฐเจตเจพเจฆ เจจเฉ‚เฉฐ เจ•เจพเจ‡เจฎ เจฐเฉฑเจ–เจฃ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเจพ เจจเจพเจฎ เจ…เจคเฉ‡ เจœเจจเจฎ เจฎเจฟเจคเฉ€ เจฏเจพเจฆ เจฐเฉฑเจ–เจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ, เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจ เจตเจพเจคเจพเจตเจฐเจจ เจตเจฟเฉฑเจš เจ‡เจน เจ—เฉˆเจฐ-เจฎเจพเจฎเฉ‚เจฒเฉ€ เจนเฉˆเฅค เจธเฉฐเจฆเจฐเจญ เจจเฉ‚เฉฐ RAM เจตเจฟเฉฑเจš เจœเจพเจ‚ เจกเจฟเจธเจ• เจ‰เฉฑเจคเฉ‡ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ, เจ•เจฟเจ‰เจ‚เจ•เจฟ Yandex.Cloud เจ‡เฉฑเจ•เฉ‹ เจธเจฎเฉ‡เจ‚ เจ•เจˆ เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ 'เจคเฉ‡ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจšเจฒเจพ เจธเจ•เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจตเจฟเจšเจ•เจพเจฐ เจ†เจชเจฃเฉ€ เจฎเจฐเจœเจผเฉ€ เจจเจพเจฒ เจฌเจฆเจฒ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ€ เจฌเจพเจนเจฐเฉ€ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจชเจตเฉ‡เจ—เฉ€เฅค เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเฉ‡ Yandex.Cloud เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจ•เจพเจซเจผเฉ€ เจธเจธเจคเฉ€ เจ…เจคเฉ‡ เจ—เฉเฉฐเจเจฒเจฆเจพเจฐ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจœเฉ‹เจ‚ เจšเฉเจฃเจฟเจ† เจ—เจฟเจ† เจธเฉ€ (เจ…เจฐเจฅเจพเจค, เจธเจผเจพเจ‡เจฆ เจคเฉ‡เจœเจผ)เฅค เจ‡เฉฑเจ• เจฎเฉเจซเจค เจตเจฟเจ•เจฒเจช เจตเจœเฉ‹เจ‚, เจคเฉเจธเฉ€เจ‚ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจฃ เจฒเจˆ, เจ‡เฉฑเจ• เจฎเฉเจซเจค เจŸเฉเจ•เฉœเจพ เจฌเฉฑเจฆเจฒเจตเจพเจˆ เจฎเฉ‹เจ‚เจ—เจพ เจ•เจฟเจคเฉ‡ เจฆเฉ‚เจฐ. เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ (เจœเฉ‹ S3 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเจพ เจธเจฎเจฐเจฅเจจ เจ•เจฐเจฆเจพ เจนเฉˆ) เจ…เจคเฉ‡ เจฎเฉ‹เจ‚เจ—เฉ‹ เจฆเฉ‹เจตเจพเจ‚ เจฒเจˆ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจชเจพเจˆเจฅเจจ เจฐเฉˆเจชเจฐ เจนเจจเฅค

เจ‡เจ• เจนเฉ‹เจฐ เจธเจฎเฉฑเจธเจฟเจ† เจ‡เจน เจนเฉˆ เจ•เจฟ เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœเจผ, เจฎเฉ‹เจ‚เจ—เฉ‹เจกเฉ€เจฌเฉ€, เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจœเจพเจ‚ เจกเฉ‡เจŸเจพ เจธเจŸเฉ‹เจฐ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจฌเจพเจนเจฐเฉ€ เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆ เจœเฉ‹ เจคเฉเจนเจพเจกเฉ‡ เจซเฉฐเจ•เจธเจผเจจ เจ•เฉ‹เจก เจฆเฉ‡ เจจเจพเจฒ เจฏเจพเจ‚เจกเฉ‡เจ•เจธ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ 'เจคเฉ‡ เจ…เจชเจฒเฉ‹เจก เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉˆเฅค เจ…เจคเฉ‡ เจฎเฉˆเจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจขเฉฐเจ— เจจเจพเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเจพเจ‚เจ—เจพเฅค เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจน เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพ (เจœเจฟเจตเฉ‡เจ‚ เจนเฉ€เจฐเฉ‹เจ•เฉ‚ 'เจคเฉ‡), เจชเจฐ เจตเจพเจคเจพเจตเจฐเจฃ เจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฒเจฟเจ– เจ•เฉ‡ เจ•เฉเจ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจ†เจฐเจพเจฎ เจฌเจฃเจพเจ‡เจ† เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ (เจซเจพเจˆเจฒ เจฌเจฃเจพเจ“)เฅค

เจ•เฉเฉฐเจกเจฒเฉ€ เจฆเฉ‡ เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ เจนเฉˆ

  1. เจคเจฟเจ†เจฐ เจ•เจฐเฉ‹: เจฒเฉ€เจจเจ•เจธ เจจเจพเจฒ เจ•เจฟเจธเฉ‡ เจฎเจธเจผเฉ€เจจ 'เจคเฉ‡ เจœเจพเจ“เฅค เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจธเจผเจพเจ‡เจฆ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฆเฉ‡ เจจเจพเจฒ เจตเฉ€ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ เจซเจฟเจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉเจ เจœเจพเจฆเฉ‚ เจ•เจฐเจจเจพ เจชเจตเฉ‡เจ—เจพเฅค เจ…เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจชเจพเจ‡เจฅเจจ 3.6 เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจœเจผเจฐเฉ‚เจฐเจค เจนเฉ‹เจเจ—เฉ€.
  2. เจ‡เจธ เจจเฉ‚เฉฐ เจ—เจฟเจฅเจฌ เจคเฉ‹เจ‚ เจ•เจฒเฉ‹เจจ เจ•เจฐเฉ‹ เจ•เฉเฉฐเจกเจฒเฉ€ เจนเฉเจจเจฐ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ.
  3. Y.Cloud เจตเจฟเฉฑเจš เจฐเจœเจฟเจธเจŸเจฐ เจ•เจฐเฉ‹: https://cloud.yandex.ru
  4. เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจฆเฉ‹ เจฌเจพเจฒเจŸเฉ€เจ†เจ‚ เจฌเจฃเจพเจ“ เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจจเจพเจฎ เจจเจพเจฒ เจฌเฉเจฒเจพเจ“ {BUCKET NAME} ะธ tgalice-test-cold-storage (เจ‡เจน เจฆเฉ‚เจœเจพ เจจเจพเจฎ เจนเฉเจฃ เจนเจพเจฐเจกเจ•เฉ‹เจก เจตเจฟเฉฑเจš เจนเฉˆ main.py เจฎเฉ‡เจฐเฉ€ เจ‰เจฆเจพเจนเจฐเจจ). เจชเจนเจฟเจฒเฉ€ เจฌเจพเจฒเจŸเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœ เจธเจฟเจฐเจซเจผ เจคเฉˆเจจเจพเจคเฉ€ เจฒเจˆ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจฆเฉ‚เจœเฉ€ - เจกเจพเจ‡เจฒเจพเจ— เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆเฅค
  5. เจฌเจฃเจพเจ‰เจฃ เจธเฉ‡เจตเจพ เจ–เจพเจคเจพ, เจ‰เจธเจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจฐเฉ‹เจฒ เจฆเจฟเจ“ editor, เจ…เจคเฉ‡ เจ‡เจธเจฆเฉ‡ เจฒเจˆ เจธเจฅเจฟเจฐ เจชเฉเจฐเจฎเจพเจฃ เจชเฉฑเจคเจฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเฉ‹ {KEY ID} ะธ {KEY VALUE} - เจ…เจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจตเจพเจฐเจคเจพเจฒเจพเจช เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจจเฉ‚เฉฐ เจฐเจฟเจ•เจพเจฐเจก เจ•เจฐเจจ เจฒเจˆ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค เจ‡เจธ เจธเจญ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจคเจพเจ‚ เจ•เจฟ Ya.Cloud เจคเฉ‹เจ‚ เจ•เฉ‹เจˆ เจซเฉฐเจ•เจธเจผเจจ Ya.Cloud เจคเฉ‹เจ‚ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐ เจธเจ•เฉ‡เฅค เจ•เจฟเจธเฉ‡ เจฆเจฟเจจ, เจฎเฉˆเจจเฉ‚เฉฐ เจ‰เจฎเฉ€เจฆ เจนเฉˆ, เจ…เจงเจฟเจ•เจพเจฐ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจฌเจฃ เจœเจพเจตเฉ‡เจ—เจพ, เจชเจฐ เจนเฉเจฃ เจฒเจˆ เจ‡เจน เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเฉˆเฅค
  6. (เจตเจฟเจ•เจฒเจชเจฟเจ•) เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ yc. เจคเฉเจธเฉ€เจ‚ เจตเฉˆเฉฑเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฐเจพเจนเฉ€เจ‚ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจตเฉ€ เจฌเจฃเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเจฐ CLI เจตเจงเฉ€เจ† เจนเฉˆ เจ•เจฟเจ‰เจ‚เจ•เจฟ เจ‡เจธ เจตเจฟเฉฑเจš เจนเจฐ เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจ•เจพเจขเจพเจ‚ เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฆเจฟเจ–เจพเจˆ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค
  7. เจนเฉเจฃ เจคเฉเจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพ เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจคเจฟเจ†เจฐ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹: เจ‡เจธเจจเฉ‚เฉฐ เจนเฉเจจเจฐ เจฆเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจฆเฉ‡ เจจเจพเจฒ เจซเฉ‹เจฒเจกเจฐ เจคเฉ‹เจ‚ เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ 'เจคเฉ‡ เจšเจฒเจพเจ“ make all. เจซเฉ‹เจฒเจกเจฐ เจตเจฟเฉฑเจš เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€เจ†เจ‚ เจฆเจพ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน (เจœเจผเจฟเจ†เจฆเจพเจคเจฐ, เจ†เจฎ เจตเจพเจ‚เจ—, เจฌเฉ‡เจฒเฉ‹เฉœเฉ€) เจธเจฅเจพเจชเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ dist.
  8. เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจตเจฟเฉฑเจš เจนเฉฑเจฅ เจจเจพเจฒ เจกเฉ‹เจฒเฉเจน เจฆเจฟเจ“ (เจฌเจพเจฒเจŸเฉ€ เจตเจฟเฉฑเจš {BUCKET NAME}) เจชเฉเจฐเจพเจฒเฉ‡เจ– เจชเจฟเจ›เจฒเฉ‡ เจชเฉœเจพเจ… เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจชเจค เจ•เฉ€เจคเจพ dist.zip. เจœเฉ‡ เจฒเฉ‹เฉœเฉ€เจฆเจพ เจนเฉ‹เจตเฉ‡, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจน เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจตเจฐเจค เจ•เฉ‡ AWS CLI.
  9. เจตเฉˆเฉฑเจฌ เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจฆเฉเจ†เจฐเจพ เจœเจพเจ‚ เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เฉฑเจ• เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจ เจฌเจฃเจพเจ“ 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

เจนเฉฑเจฅเฉ€เจ‚ เจซเฉฐเจ•เจธเจผเจจ เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡, เจธเจพเจฐเฉ‡ เจฎเจพเจชเจฆเฉฐเจก เจ‡เฉฑเจ•เฉ‹ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจญเจฐเฉ‡ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค

เจนเฉเจฃ เจคเฉเจนเจพเจกเฉ‡ เจฆเฉเจ†เจฐเจพ เจฌเจฃเจพเจ เจ—เจ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจ•เฉฐเจธเฉ‹เจฒ เจฆเฉเจ†เจฐเจพ เจŸเฉˆเจธเจŸ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจธเฉเจงเจพเจฐเจฟเจ† เจ…เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค

Yandex.Cloud เจ…เจคเฉ‡ Python เจฆเฉ‡ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจเจฒเจฟเจธ เจฒเจˆ เจ‡เฉฑเจ• เจฐเจพเจœเจ•เฉ€ เจนเฉเจจเจฐ เจฌเจฃเจพเจ‰เจฃเจพ

เจนเฉเฉฑเจก เจฆเฉ‡ เจ…เจงเฉ€เจจ เจ•เฉ€ เจนเฉˆ

เจฎเฉ‡เจ•เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ…เจธเจฒ เจตเจฟเฉฑเจš เจจเจฟเจฐเจญเจฐเจคเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฃ เจฒเจˆ เจ‡เฉฑเจ• เจ•เจพเจซเจผเฉ€ เจธเจงเจพเจฐเจจ เจธเจ•เฉเจฐเจฟเจชเจŸ เจนเฉˆ 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 เจ‡เฉฐเจŸเจฐเจซเฉ‡เจธ เจจเจพเจฒ เจ‡เฉฑเจ• เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจชเฉœเฉเจน เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจน เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจฟเฉฑเจงเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจ•เจฟเจตเฉ‡เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ tgalice เจ•เฉ‹เจก เจตเจฟเฉฑเจš.
เจ†เจ–เจฐเฉ€ เจฒเจพเจˆเจจ เจซเฉฐเจ•เจธเจผเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ€ เจนเฉˆ alice_handler โ€” เจ‰เจนเฉ€ เจœเฉ‹ เจ…เจธเฉ€เจ‚ Yandex.Cloud เจจเฉ‚เฉฐ เจ–เจฟเฉฑเจšเจฃ เจฒเจˆ เจ•เจฟเจนเจพ เจธเฉ€ เจœเจฆเฉ‹เจ‚ เจ…เจธเฉ€เจ‚ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจธเฉˆเฉฑเจŸ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ --entrypoint=main.alice_handler.

เจ‡เจน เจธเจญ เจนเฉˆ, เจ…เจธเจฒ เจตเจฟเฉฑเจš. เจ…เจธเฉˆเจ‚เจฌเจฒเฉ€ เจฒเจˆ เจฎเฉ‡เจ•เจซเจพเจˆเจฒเจพเจ‚, เจธเฉฐเจฆเจฐเจญ เจจเฉ‚เฉฐ เจธเจŸเฉ‹เจฐ เจ•เจฐเจจ เจฒเจˆ S3 เจตเจฐเจ—เฉ€ เจ†เจฌเจœเฉˆเจ•เจŸ เจธเจŸเฉ‹เจฐเฉ‡เจœ, เจ…เจคเฉ‡ เจชเจพเจˆเจฅเจจ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ tgalice. เจธเจฐเจตเจฐ เจฐเจนเจฟเจค เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจ…เจคเฉ‡ เจชเจพเจˆเจฅเจจ เจฆเฉ‡ เจชเฉเจฐเจ—เจŸเจพเจตเฉ‡ เจฆเฉ‡ เจจเจพเจฒ เจฎเจฟเจฒเจพ เจ•เฉ‡, เจ‡เจน เจ‡เฉฑเจ• เจธเจฟเจนเจคเจฎเฉฐเจฆ เจฎเจจเฉเฉฑเจ–เฉ€ เจนเฉเจจเจฐ เจจเฉ‚เฉฐ เจตเจฟเจ•เจธเจค เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจซเจผเฉ€ เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจชเฉเฉฑเจ› เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ•เจฟ เจ‡เจธเจจเฉ‚เฉฐ เจฌเจฃเจพเจ‰เจฃเจพ เจ•เจฟเจ‰เจ‚ เจœเจผเจฐเฉ‚เจฐเฉ€ เจธเฉ€ tgalice? เจธเจพเจฐเฉ‡ เจฌเฉ‹เจฐเจฟเฉฐเจ— เจ•เฉ‹เจก เจœเฉ‹ JSONs เจจเฉ‚เฉฐ เจฌเฉ‡เจจเจคเฉ€ เจคเฉ‹เจ‚ เจœเจตเจพเจฌ เจคเฉฑเจ• เจ…เจคเฉ‡ เจธเจŸเฉ‹เจฐเฉ‡เจœ เจคเฉ‹เจ‚ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ…เจคเฉ‡ เจฌเฉˆเจ• เจตเจฟเฉฑเจš เจŸเฉเจฐเจพเจ‚เจธเจซเจฐ เจ•เจฐเจฆเฉ‡ เจนเจจ เจ‡เจธ เจตเจฟเฉฑเจš เจนเจจเฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เฉฑเจ• เจจเจฟเจฏเจฎเจค เจ•เฉ‹เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจตเฉ€ เจนเฉˆ, เจ‡เจน เจธเจฎเจเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจซเฉฐเจ•เจธเจผเจจ เจ•เจฟ โ€œเจซเจฐเจตเจฐเฉ€โ€ โ€œเจซเจฐเจตเจฐเฉ€โ€ เจฆเฉ‡ เจธเจฎเจพเจจ เจนเฉˆ, เจ…เจคเฉ‡ เจ—เจฐเฉ€เจฌเจพเจ‚ เจฒเจˆ เจนเฉ‹เจฐ NLUเฅค เจฎเฉ‡เจฐเฉ‡ เจตเจฟเจšเจพเจฐ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ, เจ‡เจน เจชเจนเจฟเจฒเจพเจ‚ เจนเฉ€ เจ•เจพเจซเจผเฉ€ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจคเจพเจ‚ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจคเจ•เจจเฉ€เจ•เฉ€ เจตเฉ‡เจฐเจตเจฟเจ†เจ‚ เจฆเฉเจ†เจฐเจพ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจงเจฟเจ†เจจ เจญเจŸเจ•เจพเจ เจฌเจฟเจจเจพเจ‚ yaml เจซเจพเจˆเจฒเจพเจ‚ เจตเจฟเฉฑเจš เจนเฉเจจเจฐเจพเจ‚ เจฆเฉ‡ เจชเฉเจฐเฉ‹เจŸเฉ‹เจŸเจพเจˆเจชเจพเจ‚ เจจเฉ‚เฉฐ เจธเจ•เฉˆเจš เจ•เจฐ เจธเจ•เฉ‹.

เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจตเจงเฉ‡เจฐเฉ‡ เจ—เฉฐเจญเฉ€เจฐ NLU เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เจธเจจเฉ‚เฉฐ เจ†เจชเจฃเฉ‡ เจนเฉเจจเจฐ เจจเจพเจฒ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจฐเจธ เจœ เจฆเฉ€เจช เจชเจพเจตเจฒเฉ‹เจต, เจชเจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจธเจฐเจตเจฐ เจฐเจนเจฟเจค 'เจคเฉ‡, เจŸเฉˆเจ‚เจฌเฉ‹เจฐเฉ€เจจ เจจเจพเจฒ เจตเจพเจงเฉ‚ เจกเจพเจ‚เจธ เจฆเฉ€ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€เฅค เจœเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉ€ เจ•เฉ‹เจกเจฟเฉฐเจ— เจชเจธเฉฐเจฆ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ‡, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจตเจฟเจœเจผเฉ‚เจ…เจฒ เจ•เฉฐเจธเจŸเจฐเจ•เจŸเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเฉ€ เจšเจพเจนเฉ€เจฆเฉ€ เจนเฉˆ เจเจฎเฉ€เจฒเฉ‹เจœเจฟเจ•. tgalice เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡, เจฎเฉˆเจ‚ เจ•เจฟเจธเฉ‡ เจ•เจฟเจธเจฎ เจฆเฉ‡ เจตเจฟเจšเจ•เจพเจฐเจฒเฉ‡ เจฎเจพเจฐเจ— เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฟเจ†. เจ†เจ“ เจฆเฉ‡เจ–เฉ€เจ เจ•เจฟ เจ‡เจธ เจคเฉ‹เจ‚ เจ•เฉ€ เจจเจฟเจ•เจฒเจฆเจพ เจนเฉˆเฅค

เจ–เฉˆเจฐ, เจนเฉเจฃ เจธเจผเจพเจฎเจฒ เจนเฉ‹เจตเฉ‹ เจเจฒเจฟเจธ เจธเจ•เจฟเฉฑเจฒ เจกเจฟเจตเฉˆเจฒเจชเจฐ เจšเฉˆเจŸ, เจชเฉœเฉเจนเฉ‹ เจฆเจธเจคเจพเจตเฉ‡เจœเจผ, เจ…เจคเฉ‡ เจธเจผเจพเจจเจฆเจพเจฐ เจฌเจฃเจพเจ“ เจนเฉเจจเจฐ!

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹