Yandex.Cloud, Python เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดธเต†เตผเดตเตผเดฒเต†เดธเต เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเดฟเตฝ เด†เดฒเต€เดธเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดธเตโ€Œเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพ เดธเตโ€Œเด•เดฟเตฝ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เดตเดพเตผเดคเตเดคเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเตเดŸเด™เตเด™เดพเด‚. เด‡เดจเตเดจเดฒเต† Yandex.Cloud เด’เดฐเต เดธเต†เตผเดตเตผเดฒเต†เดธเต เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเดฟเด‚เด—เต เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เดธเดฎเดพเดฐเด‚เดญเด‚ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต Yandex เด•เตเดฒเต—เดกเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ. เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚: เดจเดฟเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเต‡เดตเดจเดคเตเดคเดฟเดจเตเดฑเต† เด•เต‹เดกเต เดฎเดพเดคเตเดฐเดฎเต‡ เดŽเดดเตเดคเตเด•เดฏเตเดณเตเดณเต‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดตเต†เดฌเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดšเดพเดฑเตเดฑเตเดฌเต‹เดŸเตเดŸเต), เด•เต‚เดŸเดพเดคเต† เด•เตเดฒเต—เดกเต เดคเดจเตเดจเต† เด…เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดŸเดคเตเดคเต เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต, เด•เต‚เดŸเดพเดคเต† เดฒเต‹เดกเต เดตเตผเดฆเตเดงเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ เด…เดต เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดจเดฟเด™เตเด™เตพ เด’เดŸเตเดŸเตเด‚ เดšเดฟเดจเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ, เด‡เดคเต เดตเดณเดฐเต† เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต. เด•เต‚เดŸเดพเดคเต† เดชเต‡เดฏเตโ€Œเดฎเต†เดจเตเดฑเต เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเตเด•เดณเตเดŸเต† เดธเดฎเดฏเดคเตเดคเต‡เด•เตเด•เต เดฎเดพเดคเตเดฐเด‚ เดชเต‹เด•เตเดจเตเดจเต.

เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดšเดฟเดฒเตผเด•เตเด•เต เดชเดฃเด‚ เดจเตฝเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ. เด‡เดตเดฐเดพเดฃเต เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เด†เดฒเต€เดธเดฟเดจเตเดฑเต† เดฌเดพเดนเตเดฏ เด•เดดเดฟเดตเตเด•เตพ, เด…เดคเดพเดฏเดคเต, เด…เดคเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เดšเดพเดฑเตเดฑเตเดฌเต‹เดŸเตเดŸเตเด•เตพ. เดเดคเตŠเดฐเต เดกเดตเดฒเดชเตเดชเตผเด•เตเด•เตเด‚ เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดตเตˆเดฆเด—เตเดฆเตเดงเตเดฏเด‚ เดŽเดดเตเดคเดพเดจเตเด‚ เดนเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดฐเดœเดฟเดธเตเดฑเตเดฑเตผ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚, เด‡เดจเตเดจเต เดฎเตเดคเตฝ เด•เดดเดฟเดตเตเด•เตพ เดนเต‹เดธเตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ - เดซเต‹เดฎเดฟเตฝ เด…เดตเดฐเตเดŸเต† เด•เต‹เดกเต เด•เตเดฒเต—เดกเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• เด…เดคเต‡ เดธเต†เตผเดตเตผเดฒเต†เดธเต เดซเด‚เด—เตโ€Œเดทเตป.

เดŽเดจเตเดจเดพเตฝ เด•เตเดฑเดšเตเดšเต เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเตเดฃเตเดŸเต. เด’เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเดณเตผเดคเตเดคเตเดฎเตƒเด—เด™เตเด™เดณเตเดŸเต† เด•เต‹เดกเดฟเดจเต เดšเดฟเดฒ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฏเดฟ เดตเดจเตเดจเต‡เด•เตเด•เดพเด‚, เด…เดตเดฏเต† เด•เตเดฒเต—เดกเดฟเดฒเต‡เด•เตเด•เต เดตเดฒเดฟเดšเตเดšเดฟเดŸเตเดจเตเดจเดคเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดฒเตเดฒ. เดฐเดฃเตเดŸเดพเดฎเดคเดพเดฏเดฟ, เดเดคเตŠเดฐเต เดธเดพเดงเดพเดฐเดฃ เดšเดพเดฑเตเดฑเตโ€Œเดฌเต‹เดŸเตเดŸเดฟเดจเตเด‚ เดกเดฏเดฒเต‹เด—เดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เดธเต‚เด•เตเดทเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต (เด…เดคเดฟเดจเดพเตฝ เดตเตเดฏเดตเดธเตเดฅเดพเดชเดฟเดคเดฎเดพเดฃเต); เดธเต†เตผเดตเตผเดฒเต†เดธเต เดซเด‚เด—เตโ€Œเดทเดจเดฟเตฝ เดเดฑเตเดฑเดตเตเด‚ เดŽเดณเตเดชเตเดชเดฎเตเดณเตเดณ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด‡เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดฏเดพเด‚? เดฎเต‚เดจเตเดจเดพเดฎเดคเดพเดฏเดฟ, เดชเต‚เดœเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดชเตเดฒเต‹เดŸเตเดŸเตเดณเตเดณ เด†เดฒเต€เดธเดฟเดจเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฌเต‹เดŸเตเดŸเดฟเดจเต‹ เดตเต‡เดฃเตเดŸเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเด™เตเด™เดจเต† เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณเดคเตเด‚ เดตเตƒเดคเตเดคเดฟเด•เต†เดŸเตเดŸเดคเตเดฎเดพเดฏ เด•เดดเดฟเดตเต เดŽเดดเตเดคเดพเดจเดพเด•เตเด‚? เดˆ เดธเต‚เด•เตเดทเตเดฎเดคเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดฒเต‡เด–เดจเด‚.

Yandex.Cloud, Python เดŽเดจเตเดจเดฟเดตเดฏเตเดŸเต† เดธเต†เตผเดตเตผเดฒเต†เดธเต เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเดฟเตฝ เด†เดฒเต€เดธเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดธเตโ€Œเดฑเตเดฑเต‡เดฑเตเดฑเตโ€Œเดซเตเตพ เดธเตโ€Œเด•เดฟเตฝ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต

เดงเดพเตผเดฎเตเดฎเดฟเด• เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเดชเตเดชเต

เด…เด•เตเดทเดฎเดฐเดพเดฏเดตเตผเด•เตเด•เดพเดฏเดฟ: เดซเด‚เด—เตโ€Œเดทเตป เด•เตเดฒเต—เดกเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดžเดพเตป เด’เดฐเต เดฎเต‡เด•เตเด•เตโ€Œเดซเตˆเตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดกเดฏเดฒเต‹เด—เดฟเดจเตเดฑเต† เด…เดตเดธเตเดฅ เดžเดพเตป Yandex Object Storage-เตฝ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต (เด‡เดคเต S3 API-เดฏเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต), เดกเดฏเดฒเต‹เด—เต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเด•เตเด•เดพเตป เดžเดพเตป เดŽเดจเตเดฑเต† เดธเตเดตเดจเตเดคเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต tgalice. เดคเดคเตเดซเดฒเดฎเดพเดฏเดฟ, เด…เดคเต เดฎเดพเดฑเตเดจเตเดจเต เด…เดคเตเดคเดฐเดฎเต†เดพเดฐเต เดกเต†เดฎเต‹ เดตเตˆเดฆเด—เตเดฆเตเดงเตเดฏเด‚. เด‡เดจเดฟ เด‡เดคเต†เดฒเตเดฒเดพเด‚ เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดถเด•เดฒเดจเด‚ เดšเต†เดฏเตเดฏเดพเด‚.

เด…เตฝเดชเตเดชเด‚ เด…เด•เตเดทเดฎเดฏเตเดณเตเดณเดตเตผเด•เตเด•เต, เดธเด™เตเด•เต€เตผเดฃเตเดฃเดคเดฏเตเดŸเต† เดŽเดจเตเดฑเต† เด•เดฅเดฏเดฟเดฒเต‡เด•เตเด•เต เด•เดŸเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต, เดฒเดณเดฟเดคเดฎเดพเดฏเดฟ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดžเดพเตป เดตเดณเดฐเต† เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด…เดคเดพเดฏเดคเต, เด’เดฐเต เดธเดฟเด‚เด—เดฟเตพ-เดซเดฏเตฝ เดŽเด•เตเด•เต‹เดฌเต‹เดŸเตเดŸเต เดซเด‚เด—เตโ€Œเดทเตป เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเด•, เดกเดฏเดฒเต‹เด—เต เดกเต†เดตเดฒเดชเตเดชเตผ เด•เตบเดธเต‹เดณเดฟเตฝ เดฐเดœเดฟเดธเตโ€Œเดฑเตเดฑเตผ เดšเต†เดฏเตโ€Œเดคเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•; เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เตพ - เด‡เตป เดฌเตเดฒเต‹เด—เต เดกเดฏเดฒเต‹เด—เตเด•เตพ ะธ เด•เตเดฒเต—เดกเต เดกเต‹เด•เตเดฏเตเดฎเต†เดจเตเดฑเต‡เดทเตป. เดŽเดจเตเดจเดฟเดŸเตเดŸเต เดฎเดพเดคเตเดฐเดฎเต‡ เดคเตเดŸเด™เตเด™เต‚.

เดžเด™เตเด™เตพ เดŽเดจเตเดคเดฟเดจเดพเดฃเต เดชเต‹เดฐเดพเดŸเตเดจเตเดจเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดŸเดจเดŸเดฟ เด…เดจเตเดญเดตเดชเตเดชเต†เดŸเดฃเดฎเต†เด™เตเด•เดฟเตฝ, เด†เดฒเต€เดธเดฟเดจเต‹เดŸเต เดšเต‹เดฆเดฟเด•เตเด•เตเด•."เดเดŸเดฟ เดœเดพเดคเด•เด‚" เดŽเดจเตเดจ เดตเตˆเดฆเด—เตเดฆเตเดงเตเดฏเด‚ เด“เดฃเดพเด•เตเด•เตเด•'. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดธเด‚เดญเดพเดทเดฃเด‚ เดจเดŸเด•เตเด•เดฃเด‚:

เด†เดฒเต€เดธเต: เดนเดฒเต‹! เดจเดฟเด™เตเด™เตพ "เดเดŸเดฟ เดœเดพเดคเด•เด‚" เด•เดดเดฟเดตเดฟเดฒเดพเดฃเต. เดจเด•เตเดทเดคเตเดฐเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดจเตเดคเดพเดฃเต เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต†เดจเตเดจเต เด•เดฃเตเดŸเต†เดคเตเดคเดพเตป "เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•" เดŽเดจเตเดจเต เดชเดฑเดฏเตเด•.
เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเต: เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•
เด‰เดคเตเดคเดฐเด‚: เดฆเดฏเดตเดพเดฏเดฟ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเต‡เดฐเต เดชเดฑเดฏเตเด•.
เดฏเต: เดตเดธเดฟเดทเตเดตเดฒเดฟ
เด‰เดคเตเดคเดฐเด‚: เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเดจเดจ เดตเตผเดทเด‚ เดชเดฑเดฏเต‚. เดจเดพเดฒเต เด…เด•เตเด•เด™เตเด™เตพ เดฎเดพเดคเตเดฐเด‚, เด•เต‚เดŸเตเดคเดฒเตŠเดจเตเดจเตเดฎเดฟเดฒเตเดฒ.
เดฏเต: เดฐเดฃเตเดŸเดพเดฎเดคเต
A: เดฆเดฏเดตเดพเดฏเดฟ เดตเต€เดฃเตเดŸเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•. เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเดจเดจ เดตเตผเดทเด‚ เดชเตเดฐเดธเตเดคเดพเดตเดฟเด•เตเด•เตเด• - เดจเดพเดฒเต เด…เด•เตเด•เด™เตเด™เตพ.
เดฏเต: 2002
เด’เดฐเต เดตเดฒเดฟเดฏ! เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพ เดœเดจเดฟเดšเตเดš เดฎเดพเดธเดคเตเดคเดฟเดจเต เดชเต‡เดฐเต เดจเตฝเด•เตเด•.
เดฏเต: เดซเต†เดฌเตเดฐเตเดตเดฐเดฟ
เดŽ: เดฎเดฟเด•เดšเตเดšเดคเต! เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดœเดจเดจเดคเตเดคเต€เดฏเดคเดฟ เดŽเดจเตเดจเต‹เดŸเต เดชเดฑเดฏเต‚ - เด’เดฐเต เดธเด‚เด–เตเดฏ, เด’เดจเตเดจเต‹ เดฐเดฃเตเดŸเต‹ เด…เด•เตเด•เด™เตเด™เตพ เดฎเดพเดคเตเดฐเด‚.
เดฏเต: 18
เดŽ: เดจเดจเตเดฆเดฟ, เดตเดธเดฟเดทเตเดตเตฝ! เด‡เดชเตเดชเต‹เตพ เดžเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚: เดจเดฟเด™เตเด™เตพเด•เตเด•เต 17 เดตเดฏเดธเตเดธเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพ เด’เดฐเต เด…เด•เตเดตเต‡เดฑเดฟเดฏเดธเต เด†เดฃเต. เด‡เดตเดฟเดŸเต† เดจเดฟเด™เตเด™เตพ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดญเดพเด—เตเดฏเดตเดพเดจเดพเดฃเต! เดจเด•เตเดทเดคเตเดฐเด™เตเด™เตพ เดจเดฟเด™เตเด™เดณเต‹เดŸเต เดชเดฑเดฏเตเดจเตเดจเต ะฐ ั‡ั‚ะพ ะณะพะฒะพั€ัั‚ ะทะฒั‘ะทะดั‹, ะฒั‹ ัƒะทะฝะฐะตั‚ะต, ะทะฐะฟัƒัั‚ะธะฒ ะฝะฐะฒั‹ะบ.

เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดกเดฏเดฒเต‹เด—เต เดชเต‹เดฒเตเด‚ เดจเดฟเดฒเดจเดฟเตผเดคเตเดคเดพเตป, เด‰เดชเดฏเต‹เด•เตเดคเดพเดตเดฟเดจเตเดฑเต† เดชเต‡เดฐเตเด‚ เดœเดจเดจเดคเตเดคเต€เดฏเดคเดฟเดฏเตเด‚ เดจเดฟเด™เตเด™เตพ เด“เตผเดฎเตเดฎเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต เดŽเดจเตเดจเดคเดพเดฃเต เดชเตเดฐเดถเตเดจเด‚, เด•เต‚เดŸเดพเดคเต† เดธเต†เตผเดตเตผ เด‡เดฒเตเดฒเดพเดคเตเดค เด…เดจเตเดคเดฐเต€เด•เตเดทเดคเตเดคเดฟเตฝ เด‡เดคเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดฒเตเดฒ. เดธเดจเตเดฆเตผเดญเด‚ เดฑเดพเดฎเดฟเดฒเต‹ เดกเดฟเดธเตเด•เดฟเตฝ เด’เดฐเต เดซเดฏเดฒเดพเดฏเต‹ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ Yandex.Cloud-เดจเต เด’เดฐเต‡ เดธเดฎเดฏเด‚ เดจเดฟเดฐเดตเดงเดฟ เดตเต†เตผเดšเตเดตเตฝ เดฎเต†เดทเต€เดจเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดตเดฏเตเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดเด•เดชเด•เตเดทเต€เดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดจเดฟเด™เตเด™เตพ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฌเดพเดนเตเดฏ เดธเด‚เดญเดฐเดฃเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต Yandex.Cloud-เตฝ เดจเต‡เดฐเดฟเดŸเตเดŸเต เดตเดณเดฐเต† เดšเต†เดฒเดตเตเด•เตเดฑเดžเตเดžเดคเตเด‚ เดฒเดณเดฟเดคเดตเตเดฎเดพเดฏ เดธเด‚เดญเดฐเดฃเดฎเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเต (เด…เดคเดพเดฏเดคเต, เดตเต‡เด—เดคเดฏเต‡เดฑเดฟเดฏเดคเดพเดฃเต). เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เดฌเดฆเดฒเดพเดฏเดฟ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดธเตเดตเดคเดจเตเดคเตเดฐ เด•เดทเดฃเด‚ เดฎเต‡เด˜เดพเดตเตƒเดคเดฎเดพเดฏ เดฎเต‹เด‚เด—เดฟ เดฆเต‚เดฐเต† เดŽเดตเดฟเดŸเต†เดฏเต‹. เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเดฟเดจเดพเดฏเดฟ (เด‡เดคเต เดŽเดธเต 3 เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดจเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต), เดฎเต‹เด‚เด—เต‹เดฏเตเด•เตเด•เต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดชเตˆเดคเตเดคเตบ เดฑเดพเดชเตเดชเดฑเตเด•เตพ เด‰เดฃเตเดŸเต.

เดฎเดฑเตเดฑเตŠเดฐเต เดชเตเดฐเดถเตเดจเด‚, เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต, เดฎเต‹เด‚เด—เต‹เดกเดฟเดฌเดฟ, เดฎเดฑเตเดฑเต‡เดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดกเดพเดฑเตเดฑ เดธเตเดฑเตเดฑเต‹เตผ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดซเด‚เด—เตเดทเตป เด•เต‹เดกเดฟเดจเตŠเดชเตเดชเด‚ Yandex เดซเด‚เด—เตเดทเดจเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸ เดšเดฟเดฒ เดฌเดพเดนเตเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด’เดชเตเดชเด‚ เด…เดคเต เดธเตเด–เด•เดฐเดฎเดพเดฏเดฟ เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต. เด‡เดคเต เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต (เดนเต€เดฑเต‹เด•เตเดตเดฟเตฝ เดชเต‹เดฒเต†), เด…เดฏเตเดฏเต‹, เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดจเดฟเตผเดฎเตเดฎเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต (เดซเดฏเตฝ เด‰เดฃเตเดŸเดพเด•เตเด•เตเด•) เด’เดฐเต เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เดŽเดดเตเดคเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดฒ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚.

เดœเดพเดคเด• เดตเตˆเดฆเด—เตเดฆเตเดงเตเดฏเด‚ เดŽเด™เตเด™เดจเต† เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚

  1. เดคเดฏเตเดฏเดพเดฑเดพเด•เต‚: Linux เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเต เดฎเต†เดทเต€เดจเดฟเดฒเต‡เด•เตเด•เต เดชเต‹เด•เตเด•. เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดฟเตปเดกเต‹เดธเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚, เดŽเดจเตเดจเดพเตฝ เดจเดฟเด™เตเด™เตพ เดฎเต‡เด•เตเด•เตเดซเดฏเดฒเดฟเดจเตเดฑเต† เดธเดฎเดพเดฐเด‚เดญเดตเตเดฎเดพเดฏเดฟ เด†เดฒเต‹เดšเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดเดคเต เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดฒเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เตเดฑเดžเตเดžเดคเต 3.6 เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดค เดชเตˆเดคเตเดคเตบ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.
  2. เด—เดฟเดคเตเดคเดฌเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เด•เตเดฒเต‹เตบ เด’เดฐเต เดœเดพเดคเด• เดจเตˆเดชเตเดฃเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚.
  3. Ya.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, เด…เดคเดฟเดจเดพเตฝ Yandex เดซเด‚เด—เตเดทเดจเตเด•เดณเดฟเตฝ เด’เดฐเต เดตเตˆเดฆเด—เตเดฆเตเดงเตเดฏเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเต‡เดฐเดฟเดŸเตเดŸเตเดณเตเดณ เดธเตเด•เตเดฐเดฟเดชเตเดฑเตเดฑเต เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

...
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

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดˆ เด•เต‹เดกเดฟเดจเตเดฑเต† เดญเต‚เดฐเดฟเดญเดพเด—เดตเตเด‚ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต เดŽเดธเต 3 เด‡เดจเตเดฑเตผเดซเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เด•เดฃเด•เตเดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต. เดˆ เด•เดฃเด•เตเดทเตป เดŽเด™เตเด™เดจเต†เดฏเดพเดฃเต เดจเต‡เดฐเดฟเดŸเตเดŸเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดตเดพเดฏเดฟเด•เตเด•เดพเด‚ tgalice เด•เต‹เดกเดฟเตฝ.
เด…เดตเดธเดพเดจ เดตเดฐเดฟ เด’เดฐเต เดซเด‚เด—เตเดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต alice_handler - เดžเด™เตเด™เตพ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ Yandex.Cloud เดตเดฒเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพ เด“เตผเดกเตผ เดšเต†เดฏเตเดค เด’เดจเตเดจเต --entrypoint=main.alice_handler.

เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เด…เดคเดพเดฃเต เดŽเดฒเตเดฒเดพเด‚. เดจเดฟเตผเดฎเตเดฎเดพเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เดฎเต‡เด•เตเด•เต เดซเดฏเดฒเตเด•เตพ, เดธเดจเตเดฆเตผเดญ เดธเด‚เดญเดฐเดฃเดคเตเดคเดฟเดจเดพเดฏเดฟ S3 เดชเต‹เดฒเต†เดฏเตเดณเตเดณ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเต, เด’เดฐเต เดชเตˆเดคเตเดคเตบ เดฒเตˆเดฌเตเดฐเดฑเดฟ tgalice. เดชเตˆเดคเตเดคเดฃเดฟเดจเตเดฑเต† เดธเต†เตผเดตเตผเดฒเต†เดธเต เดธเดตเดฟเดถเต‡เดทเดคเด•เดณเตเด‚ เดชเตเดฐเด•เดŸเดจเดถเต‡เดทเดฟเดฏเตเด‚ เด•เต‚เดŸเดฟเดšเตเดšเต‡เตผเดจเตเดจเต, เด†เดฐเต‹เด—เตเดฏเดฎเตเดณเตเดณ เด’เดฐเต เดตเตเดฏเด•เตเดคเดฟเดฏเตเดŸเต† เด•เดดเดฟเดตเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเดพเดฃเต เดจเดฟเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต†เดจเตเดจเต เดจเดฟเด™เตเด™เตพ เดšเต‹เดฆเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚ tgalice? เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดคเดฟเด•เดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เตเด‚ เดธเตเดฑเตเดฑเต‹เดฑเต‡เดœเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เตเด‚ เดชเดฟเดจเตเดจเดฟเดฒเต‡เด•เตเด•เตเด‚ JSON-เด•เดณเต† เด•เตˆเดฎเดพเดฑเตเดจเตเดจ เดŽเดฒเตเดฒเดพ เดฌเต‹เดฑเดฟเด™เต เด•เต‹เดกเตเด‚ เด…เดคเดฟเดฒเดพเดฃเต. เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เด‰เดฃเตเดŸเต, "เดซเต†เดฌเตเดฐเตเดตเดฐเดฟ" เดŽเดจเตเดจเดคเต "เดซเต†เดฌเตเดฐเตเดตเดฐเดฟ" เดŽเดจเตเดจเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฃเต†เดจเตเดจเต เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด’เดฐเต เดซเด‚เด—เตเดทเตป, เด•เต‚เดŸเดพเดคเต† เดชเดพเดตเดชเตเดชเต†เดŸเตเดŸเดตเตผเด•เตเด•เต เดฎเดฑเตเดฑเต NLU. เดŽเดจเตเดฑเต† เด†เดถเดฏเด‚ เด…เดจเตเดธเดฐเดฟเดšเตเดšเต, เดธเดพเด™เตเด•เต‡เดคเดฟเด• เดตเดฟเดถเดฆเดพเด‚เดถเด™เตเด™เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดถเตเดฐเดฆเตเดง เดคเดฟเดฐเดฟเด•เตเด•เดพเดคเต† yaml เดซเดฏเดฒเตเด•เดณเดฟเตฝ เดจเตˆเดชเตเดฃเตเดฏ เดชเตเดฐเต‹เดŸเตเดŸเต‹เดŸเตˆเดชเตเดชเตเด•เตพ เดตเดฐเดฏเตเด•เตเด•เดพเตป เด‡เดคเต เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เดฎเดคเดฟเดฏเดพเด•เตเด‚.

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‚เดŸเตเดคเตฝ เด—เต—เดฐเดตเดฎเต‡เดฑเดฟเดฏ NLU เดตเต‡เดฃเดฎเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดตเตˆเดฆเด—เตเดงเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด…เดคเต เดธเตเด•เตเดฐเต‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚ เดฐเดธเดพ เด…เดฅเดตเดพ เดกเต€เดชเตเดชเดพเดตเตเดฒเต‹เดตเต, เดŽเดจเตเดจเดพเตฝ เด…เดต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดŸเดพเด‚เดฌเต‹เดฑเดฟเดจเต‹เดŸเตŠเดชเตเดชเด‚ เด…เดงเดฟเด• เดจเตƒเดคเตเดคเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต เดธเต†เตผเดตเตผเดฒเต†เดธเต. เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เต‹เดกเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเดพเตป เดคเต‹เดจเตเดจเตเดจเตเดจเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพ เดตเดฟเดทเตเดตเตฝ เดคเดฐเด‚ เด•เตบเดธเตเดŸเตเดฐเด•เตเดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดฃเด‚ เดŽเดฎเดฟเดฒเต‹เดœเดฟเด•เต. Tgalice เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เด’เดฐเตเดคเดฐเด‚ เด‡เดจเตเดฑเตผเดฎเต€เดกเดฟเดฏเดฑเตเดฑเต เดชเดพเดคเดฏเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดžเดพเตป เดšเดฟเดจเตเดคเดฟเดšเตเดšเต. เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚.

เดถเดฐเดฟ, เด‡เดชเตเดชเต‹เตพ เดšเต‡เดฐเตเด• เด…เดฒเดฟเดฏเต เดธเตโ€Œเด•เดฟเตฝ เดกเต†เดตเดฒเดชเตเดชเตผ เดšเดพเดฑเตเดฑเต, เดตเดพเดฏเดฟเด•เตเด•เตเด• เดชเตเดฐเดฎเดพเดฃเต€เด•เดฐเดฃเด‚เด’เดชเตเดชเด‚ เด…เดคเตเดญเตเดคเด•เดฐเดฎเดพเดฏ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚ เด•เดดเดฟเดตเตเด•เตพ!

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•