рд╣рдо Yandex.Cloud рдореЗрдВ 10 рдЗрд╡реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛

рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░ рджреЛрд╕реНрддреЛрдВ!

* рдпрд╣ рд▓реЗрдЦ REBRAIN & Yandex.Cloud рдУрдкрди рд╡рд░реНрдХрд╢реЙрдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдпрджрд┐ рдЖрдк рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕ рд▓рд┐рдВрдХ рдкрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ - https://youtu.be/cZLezUm0ekE

рд╣рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ Yandex.Cloud рдХреЛ рд▓рд╛рдЗрд╡ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ред рдЪреВрдВрдХрд┐ рд╣рдо рд▓рдВрдмреА рдФрд░ рдХрдбрд╝реА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдХреНрд▓рд╛рдЙрдб рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╡рд░реНрдбрдкреНрд░реЗрд╕ рдмреНрд▓реЙрдЧ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рддреБрд░рдВрдд рддреНрдпрд╛рдЧ рджрд┐рдпрд╛ - рдпрд╣ рдмрд╣реБрдд рдЙрдмрд╛рдК рдерд╛ред рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдХреЗ рдмрд╛рдж, рд╣рдордиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЛрдб рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрд╛рджрди рд╕реЗрд╡рд╛ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдСрдирд▓рд╛рдЗрди (рдФрд░ рди рдХреЗрд╡рд▓) рд╡реНрдпрд╡рд╕рд╛рдп рдХрд┐рд╕реА рддрд░рд╣ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдПрдХ рдкрд╣рд╛рдбрд╝ рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдХрдо рд╕реЗ рдХрдо, рдХреБрдЫ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕ рд╕реНрддрд░ рдкрд░ рдЕрдХреНрд╕рд░ рдлрдВрд╕ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдирд╛ рдЦрд┐рд▓реМрдирд╛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдкрдХреА рд╕рд╛рдЗрдЯ рдХреЛ рдмрд┐рдирд╛ рдХреБрдЫ рдЦрд░реАрджреЗ рдХреНрдпреЛрдВ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ (рд╣реИрд▓реЛ, Yandex.Metrica)ред

рддреЛ, рд╣рдорд╛рд░реА рдХрд╣рд╛рдиреА: рдХреИрд╕реЗ рд╣рдордиреЗ рдЧреЛрд▓рд╛рдВрдЧ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛, рдХрд╛рдлреНрдХрд╛ рдмрдирд╛рдо рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ рдмрдирд╛рдо рд╡рд╛рдИрдХреНрдпреВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рдПрдХ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд▓рд┐рдЦреА рдФрд░ рдпрд╛рдВрдбреЗрдХреНрд╕ рдбреЗрдЯрд╛рд▓реЗрдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдХреА рдХрд▓реНрдкрдирд╛ рдХреАред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдпрд╣ рд╕рдм рдбреЙрдХрд░, рдЯреЗрд░рд╛рдлреЙрд░реНрдо, рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреА рдкреНрд░рд╕рдиреНрдирддрд╛ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рдерд╛ред рдЪрд▓ рджрд░!

рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рд╣рдо рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реЛрдВрдЧреЗ - рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдХрдИ рд▓реЗрдЦреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛:

рднрд╛рдЧ 1 (рдЖрдк рдЗрд╕реЗ рдкрдврд╝ рд░рд╣реЗ рд╣реИрдВ)ред рд╣рдо рд╕рдорд╛рдзрд╛рди рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдФрд░ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВрдЧреЗ, рдФрд░ рдЧреЛрд▓рд╛рдВрдЧ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рд▓рд┐рдЦреЗрдВрдЧреЗред
рднрд╛рдЧ 2ред рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╕реНрдХреЗрд▓реЗрдмрд▓ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд▓реЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред
рднрд╛рдЧ 3. рдЖрдЗрдП рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдмрдлрд░ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ, рдФрд░ рдХрд╛рдлреНрдХрд╛, рд░реИрдмрд┐рдЯрдПрдордХреНрдпреВ рдФрд░ рдпрд╛рдВрдбреЗрдХреНрд╕ рдХрддрд╛рд░ рд╕реЗрд╡рд╛ рдХреА рддреБрд▓рдирд╛ рднреА рдХрд░реЗрдВред
рднрд╛рдЧ 4 рд╣рдо рдПрдХ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдХреНрд▓рд╕реНрдЯрд░ рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗ, рд╡рд╣рд╛рдВ рдмрдлрд░ рд╕реЗ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рд╕реЗрд╡рд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ, рдФрд░ рдбреЗрдЯрд╛рд▓реЗрдВрд╕ рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗред
рднрд╛рдЧ 5 рдЖрдЗрдП рдкреВрд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдЙрдЪрд┐рдд рдЖрдХрд╛рд░ рдореЗрдВ рд▓рд╛рдПрдВ - рдЧрд┐рдЯрд▓реИрдм рд╕реАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдЖрдИ/рд╕реАрдбреА рд╕реЗрдЯ рдХрд░реЗрдВ, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдХреЙрдиреНрд╕рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рдЧрд░рд╛рдиреА рдФрд░ рд╕реЗрд╡рд╛ рдЦреЛрдЬ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред

рдЯреА

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рд╕рдВрджрд░реНрдн рдХреА рд╢рд░реНрддреЗрдВ рддреИрдпрд╛рд░ рдХрд░реЗрдВ - рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

  1. рд╣рдо рдЗрд╡реЗрдВрдЯреНрд╕.рдХрд┐рд╕.рдЖрдИрдПрдо (рдХрд┐рд╕.рдЖрдИрдПрдо рдПрдХ рдкрд░реАрдХреНрд╖рдг рдбреЛрдореЗрди рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рднреА рд▓реЗрдЦреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ) рдЬреИрд╕рд╛ рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЬрд┐рд╕реЗ HTTPS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╡реЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
  2. рдИрд╡реЗрдВрдЯ рдПрдХ рд╕рд░рд▓ json рд╣реИрдВ рдЬреИрд╕реЗ: {"рдЗрд╡реЗрдВрдЯ": "рд╡реНрдпреВ", "рдУрдПрд╕": "рд▓рд┐рдирдХреНрд╕", "рдмреНрд░рд╛рдЙрдЬрд╝рд░": "рдХреНрд░реЛрдо"}ред рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ рд╣рдо рдХреБрдЫ рдФрд░ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрдИ рдмрдбрд╝реА рднреВрдорд┐рдХрд╛ рдирд╣реАрдВ рдирд┐рднрд╛рдПрдЧрд╛ред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдкреНрд░реЛрдЯреЛрдмрдл рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  3. рд╕реЗрд╡рд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 10 рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
  4. рд╣рдорд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдореЗрдВ рдХреЗрд╡рд▓ рдирдП рдЙрджрд╛рд╣рд░рдг рдЬреЛрдбрд╝рдХрд░ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдордиреЗ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдкрд░ рд▓реЗ рдЬрд╛ рд╕рдХреЗрдВред
  5. рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ред рд╕рдорд╛рдзрд╛рди рдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рд╕реНрдерд┐рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдХрд┐рд╕реА рднреА рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рдЧрд┐рд░рдиреЗ (рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рддрдХ) рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╢рд╛рд╕реНрддреНрд░реАрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХреБрд╢рд▓ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рд╣рдорд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рд╣рдо Yandex.Cloud рдореЗрдВ 10 рдЗрд╡реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛

рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ:

1. рдмрд╛рдИрдВ рдУрд░ рд╣рдорд╛рд░реЗ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ, рдЪрд╛рд╣реЗ рд╡рд╣ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдкрд░ рдЦрд┐рд▓реМрдиреЗ рдореЗрдВ рдПрдХ рд╕реНрддрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рд╣реЛрдВ рдпрд╛ рдирд┐рдпрдорд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдСрдирд▓рд╛рдЗрди рд╕реНрдЯреЛрд░ рдореЗрдВ рдСрд░реНрдбрд░ рдмрдирд╛рдирд╛ рд╣реЛред рдПрдХ рдШрдЯрдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рдПрдХ рд╕рд░рд▓ json рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ -events.kis.im рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

2. рдкрд╣рд▓реЗ рджреЛ рд╕рд░реНрд╡рд░ рд╕рд░рд▓ рдмреИрд▓реЗрдВрд╕рд░ рд╣реИрдВ, рдЙрдирдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рд╣реИрдВ:

  • рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрд▓рдмреНрдз рд░рд╣реЗрдВ. рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреАрдкрд▓рд┐рд╡реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдЖрдИрдкреА рдХреЛ рдиреЛрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░ рджреЗрдЧрд╛ред
  • рдЯреАрдПрд▓рдПрд╕ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ. рд╣рд╛рдВ, рд╣рдо рдЙрди рдкрд░ рдЯреАрдПрд▓рдПрд╕ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдВрдЧреЗред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рддрд╛рдХрд┐ рд╣рдорд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░реЗ, рдФрд░ рджреВрд╕рд░рд╛, рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рд╕реЗ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмреЛрдЭ рд╕реЗ рд░рд╛рд╣рдд рджреЗ рд╕рдХреЗред
  • рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЙрдкрд▓рдмреНрдз рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрддреБрд▓рд┐рдд рдХрд░реЗрдВред рдпрд╣рд╛рдВ рдореБрдЦреНрдп рд╢рдмреНрдж рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИред рдЗрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рдЗрд╕ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдХреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдФрд░ рд╡рд┐рдлрд▓ рдиреЛрдбреНрд╕ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдВрддреБрд▓рд┐рдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

3. рдмреИрд▓реЗрдВрд╕рд░реНрд╕ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд╛рдлреА рд╕рд░рд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рд╣реИрдВред рдпрд╣ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ, рднреЗрдЬреЗ рдЧрдП рдЬреЗрд╕рди рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд░ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

4. рдЖрд░реЗрдЦ рдХрд╛рдлреНрдХрд╛ рдХреЛ рдПрдХ рдмрдлрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдЕрдиреНрдп рд╕рдорд╛рди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рддреАрд╕рд░реЗ рд▓реЗрдЦ рдореЗрдВ рдХрд╛рдлреНрдХрд╛, RabbitMQ рдФрд░ yqs рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВрдЧреЗред

5. рд╣рдорд╛рд░реЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЕрдВрддрд┐рдо рдмрд┐рдВрджреБ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рд╣реИ - рдПрдХ рд╕реНрддрдВрдн рдбреЗрдЯрд╛рдмреЗрд╕ рдЬреЛ рдЖрдкрдХреЛ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдмрдлрд╝рд░ рд╕реЗ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╣реА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЗрд╕ рдкрд░ рд▓реЗрдЦ 4 рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рджреА рдЧрдИ рд╣реИ)ред

рдпрд╣ рдбрд┐рдЬрд╝рд╛рдЗрди рд╣рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдкрд░рдд рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмреИрдХрдПрдВрдб рд╕рд░реНрд╡рд░ рдЗрд╕рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ - рдЪрд▓рд┐рдП рдПрдХ рдФрд░ рдмрд╛рдд рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рдЖрдЦрд┐рд░рдХрд╛рд░, рд╡реЗ рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИрдВ, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд╛рдлреНрдХрд╛-рд╢реИрд▓реА рдмрдлрд╝рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЖрдЗрдП рдЕрдзрд┐рдХ рд╕рд░реНрд╡рд░ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд╡рд┐рд╖рдп рдХреЗ рдХреБрдЫ рд╡рд┐рднрд╛рдЬрдиреЛрдВ рдХреЛ рдЙрдирдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВред рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддрд╛ - рдпрд╣ рдЕрд╕рдВрднрд╡ рд╣реИ :) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рд╕рд░реНрд╡рд░ рднреА рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдбреЗрдЯрд╛ рдХреЛ рд╢рд╛рд░реНрдк рдХрд░реЗрдВрдЧреЗред

рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реА рддрдХрдиреАрдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдФрд░ рдкреИрдорд╛рдиреЗ рдХреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рднрд╛рдЧ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рд╕реЗ рдЖрд╕рд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ:

рд╣рдо Yandex.Cloud рдореЗрдВ 10 рдЗрд╡реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛

рдкреНрд░рддреНрдпреЗрдХ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рдореЗрдВ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдХрд╛рдлреНрдХрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, 2 рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░, 3 рдХрд╛рдлреНрдХрд╛ рдиреЛрдбреНрд╕ рдФрд░ рдПрдХ рдХреНрд▓рд╛рдЙрдб рдмреИрд▓реЗрдВрд╕рд░, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░, рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕реНрд░реЛрдд рдЖрдИрдкреА рдкрддреЗ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЬрд┐рдпреЛрд▓реЛрдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЛрдбреНрд╕ рдФрд░ рдмреИрд▓реЗрдВрд╕ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЕрдореЗрд░рд┐рдХреА рдЧреНрд░рд╛рд╣рдХ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдЕрдореЗрд░рд┐рдХреА рд╕рд░реНрд╡рд░ рдкрд░ рдЖ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЕрдлрд╝реНрд░реАрдХрд╛ рдХрд╛ рдбреЗрдЯрд╛ рдЕрдлрд╝реНрд░реАрдХреА рдореЗрдВ рд╣реИ.

рдлрд┐рд░ рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ - рд╣рдо рдХрд╛рдлреНрдХрд╛ рд╕реЗрдЯ рд╕реЗ рдорд┐рд░рд░ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд░реВрд╕ рдореЗрдВ рд╕реНрдерд┐рдд рд╣рдорд╛рд░реЗ рдХреЗрдВрджреНрд░реАрдп рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВред рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ, рд╣рдо рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдж рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреЗ рд╣реИрдВред

рддреЛ, рд╣рдордиреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рд╕реБрд▓рдЭрд╛ рд▓рд┐рдпрд╛ рд╣реИ - рдЖрдЗрдП Yandex.Cloud рдХреЛ рд╣рд┐рд▓рд╛рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ!

рдПрдХ рдЖрд╡реЗрджрди рдкрддреНрд░ рд▓рд┐рдЦрдирд╛

рдХреНрд▓рд╛рдЙрдб рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдереЛрдбрд╝рд╛ рдзреИрд░реНрдп рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдлреА рд╕рд░рд▓ рд╕реЗрд╡рд╛ рд▓рд┐рдЦрдиреА рд╣реЛрдЧреАред рд╣рдо рдЧреЛрд▓рд╛рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреБрдж рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕рд╛рдмрд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдПрдХ рдШрдВрдЯрд╛ (рд╢рд╛рдпрдж рдХреБрдЫ рдШрдВрдЯреЗ) рдмрд┐рддрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдорд┐рд▓рддрд╛ рд╣реИ: https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/main.go.

рд╡реЗ рдХреМрди рд╕реЗ рдореБрдЦреНрдп рдмрд┐рдВрджреБ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ рдпрд╣рд╛рдВ рдиреЛрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛:

1. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп, рдЖрдк рджреЛ рдЭрдВрдбреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрд╕ рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ http рдЕрдиреБрд░реЛрдзреЛрдВ (-addr) рдХреЛ рд╕реБрдиреЗрдВрдЧреЗред рджреВрд╕рд░рд╛ рдХрд╛рдлреНрдХрд╛ рд╕рд░реНрд╡рд░ рдкрддреЗ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░реЗрдВрдЧреЗ (-рдХрд╛рдлреНрдХрд╛):

addr     = flag.String("addr", ":8080", "TCP address to listen to")
kafka    = flag.String("kafka", "127.0.0.1:9092", "Kafka endpointsтАЭ)

2. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд╛рд░рд╛рдорд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ([] github.com/Shopify/sarama) рдХрд╛рдлреНрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдПред рд╣рдордиреЗ рддреБрд░рдВрдд рдЕрдзрд┐рдХрддрдо рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЧрддрд┐ рдХреЗ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╕реЗрдЯ рдХреАрдВ:

config := sarama.NewConfig()
config.Producer.RequiredAcks = sarama.WaitForLocal
config.Producer.Compression = sarama.CompressionSnappy
config.Producer.Return.Successes = true

3. рд╣рдорд╛рд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рднреА рд╣реИ, рдЬреЛ рд╡рд┐рднрд┐рдиреНрди рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ:

  • рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛;
  • рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ (рдкреЛрд╕реНрдЯ рдЕрдиреБрд░реЛрдз рдХреЛ рдкрдврд╝рдирд╛ рдЕрд╕рдВрднрд╡, рдЯреВрдЯрд╛ рд╣реБрдЖ рдЬреЗрд╕рди, рдХрд╛рдлреНрдХрд╛ рдХреЛ рд▓рд┐рдЦрдирд╛ рдЕрд╕рдВрднрд╡);
  • рдЧреНрд░рд╛рд╣рдХ рд╕реЗ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп, рдЬрд┐рд╕рдореЗрдВ рдХрд╛рдлреНрдХрд╛ рдХреЛ рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╕рдордп рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред

4. рддреАрди рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЬрд┐рди рдкрд░ рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ:

  • /рд╕реНрдерд┐рддрд┐ - рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдо рдЬреАрд╡рд┐рдд рд╣реИрдВ, рдмрд╕ 'рдУрдХреЗ' рд▓реМрдЯреЗрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдХреБрдЫ рдЬрд╛рдБрдЪреЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд╛рдлреНрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ред
  • /рдореЗрдЯреНрд░рд┐рдХреНрд╕ - рдЗрд╕ рдпреВрдЖрд░рдПрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдП рдЧрдП рдореЗрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛ред
  • /рдкреЛрд╕реНрдЯ рдореБрдЦреНрдп рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реИ рдЬрд╣рд╛рдВ json рдХреЗ рд╕рд╛рде POST рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рдЬрд╛рдПрдВрдЧреЗред рд╣рдорд╛рд░рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реИрдзрддрд╛ рдХреЗ рд▓рд┐рдП json рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдпрд╣ рдбреЗрдЯрд╛ рдХреЛ рдХрд╛рдлреНрдХрд╛ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрддрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░ рджреВрдБрдЧрд╛ рдХрд┐ рдХреЛрдб рд╕рд╣реА рдирд╣реАрдВ рд╣реИ - рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдФрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП!)ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдиреЗрдЯ/http рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рддреЗрдЬрд╝ fasthttp рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЖрдк json рд╡реИрдзрддрд╛ рдЬрд╛рдВрдЪ рдХреЛ рдмрд╛рдж рдХреЗ рдЪрд░рдг рдореЗрдВ рд▓реЗ рдЬрд╛рдХрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдФрд░ рд╕реАрдкреАрдпреВ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрдм рдбреЗрдЯрд╛ рдмрдлрд░ рд╕реЗ рдХреНрд▓рд┐рдХрд╣рд╛рдЙрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрджреНрджреЗ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрдХреНрд╖ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдордиреЗ рддреБрд░рдВрдд рдЕрдкрдиреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдФрд░ рдбреЙрдХрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо Dockerfile рд╣реИ https://github.com/RebrainMe/yandex-cloud-events/blob/master/app/Dockerfile. рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ, рдПрдХрдорд╛рддреНрд░ рдмрд┐рдВрджреБ рдЬрд┐рд╕ рдкрд░ рдореИрдВ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рд╡рд╣ рд╣реИ рдорд▓реНрдЯреАрд╕реНрдЯреЗрдЬ рдЕрд╕реЗрдВрдмрд▓реА, рдЬреЛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░ рдХреА рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред

рдмрд╛рджрд▓ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдк рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ Cloud.yandex.ru. рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╝реАрд▓реНрдб рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдорд╛рд░рд╛ рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд░рд╛рд╢рд┐ рдХрд╛ рдЕрдиреБрджрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╛рдЙрдб рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд╣рдорд╛рд░реЗ рд▓реЗрдЦ рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЕрдиреБрджрд╛рди рдЖрдкрдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдкрдВрдЬреАрдХрд░рдг рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдХреНрд▓рд╛рдЙрдб рдФрд░ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, Yandex.Cloud рдореЗрдВ, рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╕рдВрдмрдВрдз рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╣рдо Yandex.Cloud рдореЗрдВ 10 рдЗрд╡реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛

рдЖрдк рдПрдХ рдЦрд╛рддреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдХреНрд▓рд╛рдЙрдб рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ. рдФрд░ рдХреНрд▓рд╛рдЙрдб рдХреЗ рдЕрдВрджрд░, рд╡рд┐рднрд┐рдиреНрди рдХрдВрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдПрдБ рдмрдирд╛рдПрдВред рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ - https://cloud.yandex.ru/docs/resource-manager/concepts/resources-hierarchy. рд╡реИрд╕реЗ, рдореИрдВ рдЕрдХреНрд╕рд░ рдиреАрдЪреЗ рдкрд╛рда рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ред рдЬрдм рдореИрдВрдиреЗ рдкреВрд░реЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЛ рдирдП рд╕рд┐рд░реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдиреЗ рдореБрдЭреЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдорджрдж рдХреА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдХреНрд▓рд╛рдЙрдб рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдФрд░ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ - yc рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдПрдХ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓рд┐рдирдХреНрд╕ рдФрд░ рдореИрдХ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП):

curl https://storage.yandexcloud.net/yandexcloud-yc/install.sh | bash

рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрдВрддрд░рд┐рдХ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд░реЛрдзрд┐рдд рд╣реИ, рддреЛ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рддрд╣рдд рдЪрд▓рд╛рддреЗ рд╣реИрдВ - рдмрд┐рдирд╛ рд░реВрдЯ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗред

рдпрджрд┐ рдЖрдк рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣рд╛рдВ рдФрд░ рдлрд┐рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ yc initрдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

vozerov@mba:~ $ yc init
Welcome! This command will take you through the configuration process.
Please go to https://oauth.yandex.ru/authorize?response_type=token&client_id= in order to obtain OAuth token.

Please enter OAuth token:
Please select cloud to use:
 [1] cloud-b1gv67ihgfu3bp (id = b1gv67ihgfu3bpt24o0q)
 [2] fevlake-cloud (id = b1g6bvup3toribomnh30)
Please enter your numeric choice: 2
Your current cloud has been set to 'fevlake-cloud' (id = b1g6bvup3toribomnh30).
Please choose folder to use:
 [1] default (id = b1g5r6h11knotfr8vjp7)
 [2] Create a new folder
Please enter your numeric choice: 1
Your current folder has been set to 'default' (id = b1g5r6h11knotfr8vjp7).
Do you want to configure a default Compute zone? [Y/n]
Which zone do you want to use as a profile default?
 [1] ru-central1-a
 [2] ru-central1-b
 [3] ru-central1-c
 [4] Don't set default zone
Please enter your numeric choice: 1
Your profile default Compute zone has been set to 'ru-central1-a'.
vozerov@mba:~ $

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рд░рд▓ рд╣реИ - рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЙрдб рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ OAuth рдЯреЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрд▓рд╛рдЙрдб рдФрд░ рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдХрдИ рдЦрд╛рддреЗ рдпрд╛ рдлрд╝реЛрд▓реНрдбрд░ рд╣реИрдВ, рддреЛ рдЖрдк yc config рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, Yandex.Cloud рдЯреАрдо рдиреЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рд┐рдЦрд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдПред рдЕрдкрдиреА рдУрд░ рд╕реЗ, рдореИрдВрдиреЗ рдПрдХ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рддреИрдпрд╛рд░ рдХреА, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ рдЙрди рд╕рднреА рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬреЛ рд▓реЗрдЦ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ - https://github.com/rebrainme/yandex-cloud-events/. рд╣рдо рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЖрдЗрдП рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреНрд▓реЛрди рдХрд░реЗрдВ:


vozerov@mba:~ $ git clone https://github.com/rebrainme/yandex-cloud-events/ events
Cloning into 'events'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 100 (delta 37), reused 89 (delta 26), pack-reused 0
Receiving objects: 100% (100/100), 25.65 KiB | 168.00 KiB/s, done.
Resolving deltas: 100% (37/37), done.
vozerov@mba:~ $ cd events/terraform/

рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдореБрдЦреНрдп рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ main.tf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ Private.auto.tfvars рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:

# Yandex Cloud Oauth token
yc_token = ""
# Yandex Cloud ID
yc_cloud_id = ""
# Yandex Cloud folder ID
yc_folder_id = ""
# Default Yandex Cloud Region
yc_region = "ru-central1-a"
# Cloudflare email
cf_email = ""
# Cloudflare token
cf_token = ""
# Cloudflare zone id
cf_zone_id = ""

рд╕рднреА рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ yc рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реВрдЪреА рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдордиреЗ рдХрдВрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рддреБрд░рдВрдд Private.auto.tfvars рдХреЛ .gitignore рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ, рддрд╛рдХрд┐ рдЧрд▓рддреА рд╕реЗ рдирд┐рдЬреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рди рд╣реЛред

Private.auto.tfvars рдореЗрдВ рд╣рдордиреЗ Cloudflare рд╕реЗ рдбреЗрдЯрд╛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ - DNS рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдФрд░ рдореБрдЦреНрдп рдбреЛрдореЗрди рдЗрд╡реЗрдВрдЯреНрд╕.kis.im рдХреЛ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рдЙрдбрдлрд╝реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ main.tf рдФрд░ dns.tf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрд▓рд╛рдЙрдбрдлрд╝реЗрдпрд░ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдЖрд░рдВрднреАрдХрд░рдг рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдЬреЛ рдЖрд╡рд╢реНрдпрдХ рдбреАрдПрдирдПрд╕ рд░рд┐рдХреЙрд░реНрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рдЕрдкрдиреЗ рдХрд╛рдо рдореЗрдВ рд╣рдо рддреАрдиреЛрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВрдЧреЗ - рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕, рдХрдВрд╕реЛрд▓ рдпреВрдЯрд┐рд▓рд┐рдЯреА рдФрд░ рдЯреЗрд░рд╛рдлреЙрд░реНрдоред

рдЖрднрд╛рд╕реА рдиреЗрдЯрд╡рд░реНрдХ

рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд╣реЗрдВ рддреЛ, рдЖрдк рдЗрд╕ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдЖрдк рдПрдХ рдирдпрд╛ рдХреНрд▓рд╛рдЙрдб рдмрдирд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ 3 рд╕рдмрдиреЗрдЯ рдмрдирд╛рдП рдЬрд╛рдПрдВрдЧреЗ - рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдПрдХред рд▓реЗрдХрд┐рди рд╣рдо рдлрд┐рд░ рднреА рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрд▓рдЧ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред Yandex.Cloud рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рдЖрд░реЗрдЦ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред https://cloud.yandex.ru/docs/vpc/concepts/)

рд╣рдо Yandex.Cloud рдореЗрдВ 10 рдЗрд╡реЗрдВрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рднрд╛рдЧ ---- рдкрд╣рд▓рд╛

рддреЛ, рдЖрдк рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рднреАрддрд░ рд╕рдВрд╕рд╛рдзрди рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдмрдиреЗрдЯ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж рд╕рднреА рдХреНрд▓рд╛рдЙрдб рд╕рдВрд╕рд╛рдзрди рд╕рдВрдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рднрд▓реЗ рд╣реА рд╡реЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╣реЛрдВред рд╡рд┐рднрд┐рдиреНрди рдХреНрд▓рд╛рдЙрдб рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд╕рдВрд╕рд╛рдзрди рдХреЗрд╡рд▓ рдмрд╛рд╣рд░реА рдкрддреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╡реИрд╕реЗ рдпреЗ рдЬрд╛рджреВ рдЕрдВрджрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣реЗрдмреНрд░реЗ рдкрд░ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛.

рдиреЗрдЯрд╡рд░реНрдХ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╡рд░реНрдгрди рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ.tf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╣рд╛рдВ рд╣рдо рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдЬреА рдиреЗрдЯрд╡рд░реНрдХ рдЖрдВрддрд░рд┐рдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рддреАрди рд╕рдмрдиреЗрдЯ рдХреЛ рдЗрд╕рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ - рдЖрдВрддрд░рд┐рдХ-рдП (172.16.1.0/24), рдЖрдВрддрд░рд┐рдХ-рдмреА (172.16.2.0/24), рдЖрдВрддрд░рд┐рдХ-рд╕реА (172.16.3.0/24) ).

рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛рдПрдВ:

vozerov@mba:~/events/terraform (master) $ terraform init
... skipped ..

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_vpc_subnet.internal-a -target yandex_vpc_subnet.internal-b -target yandex_vpc_subnet.internal-c

... skipped ...

Plan: 4 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

yandex_vpc_network.internal: Creating...
yandex_vpc_network.internal: Creation complete after 3s [id=enp2g2rhile7gbqlbrkr]
yandex_vpc_subnet.internal-a: Creating...
yandex_vpc_subnet.internal-b: Creating...
yandex_vpc_subnet.internal-c: Creating...
yandex_vpc_subnet.internal-a: Creation complete after 6s [id=e9b1dad6mgoj2v4funog]
yandex_vpc_subnet.internal-b: Creation complete after 7s [id=e2liv5i4amu52p64ac9p]
yandex_vpc_subnet.internal-c: Still creating... [10s elapsed]
yandex_vpc_subnet.internal-c: Creation complete after 10s [id=b0c2qhsj2vranoc9vhcq]

Apply complete! Resources: 4 added, 0 changed, 0 destroyed.

рдорд╣рд╛рди! рд╣рдордиреЗ рдЕрдкрдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрдирд╛ рд▓рд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдЕрдкрдиреА рдЖрдВрддрд░рд┐рдХ рд╕реЗрд╡рд╛рдПрдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рдмрдирд╛рдирд╛

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА - рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдХрд╛рдлреНрдХрд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдХреА, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо рдЖрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред рдФрд░ рд╣рдо рдПрдХ рдФрд░ рдорд╢реАрди рдмрдирд╛рдПрдВрдЧреЗ рдЬрд╣рд╛рдВ рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВрдЧреЗред

рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЛ ansible рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ ansible рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдФрд░ ansible Galaxy рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рднреВрдорд┐рдХрд╛рдПрдБ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

vozerov@mba:~/events/terraform (master) $ cd ../ansible/
vozerov@mba:~/events/ansible (master) $ ansible-galaxy install -r requirements.yml
- cloudalchemy-prometheus (master) is already installed, skipping.
- cloudalchemy-grafana (master) is already installed, skipping.
- sansible.kafka (master) is already installed, skipping.
- sansible.zookeeper (master) is already installed, skipping.
- geerlingguy.docker (master) is already installed, skipping.
vozerov@mba:~/events/ansible (master) $

Ansible рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг .ansible.cfg рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдБред рдпрд╣ рдХрд╛рдо рдЖ рд╕рдХрддрд╛ рд╣реИ.

рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ ssh-рдПрдЬреЗрдВрдЯ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдХ ssh рдХреБрдВрдЬреА рдЬреЛрдбрд╝реА рдЧрдИ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдмрдирд╛рдИ рдЧрдИ рдорд╢реАрдиреЛрдВ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реЛ рдкрд╛рдПрдЧрд╛ред рдирд┐рдГрд╕рдВрджреЗрд╣, рдореБрдЭреЗ рдУрдПрд╕ рдПрдХреНрд╕ рдореЗрдВ рдПрдХ рдмрдЧ рдХрд╛ рдкрддрд╛ рдЪрд▓рд╛: https://github.com/ansible/ansible/issues/32499#issuecomment-341578864. рдЗрд╕реЗ рджреЛрдмрд╛рд░рд╛ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЗрд░рд╛рдлреЙрд░реНрдо рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ env рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд╝реЗрдВ:

vozerov@mba:~/events/terraform (master) $ export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рд╡рд╛рд▓реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣рдо рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рддреЗ рд╣реИрдВ:

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_compute_instance.build -target yandex_compute_instance.monitoring -target yandex_compute_instance.kafka
yandex_vpc_network.internal: Refreshing state... [id=enp2g2rhile7gbqlbrkr]
data.yandex_compute_image.ubuntu_image: Refreshing state...
yandex_vpc_subnet.internal-a: Refreshing state... [id=e9b1dad6mgoj2v4funog]

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
  + create

... skipped ...

Plan: 3 to add, 0 to change, 0 to destroy.

... skipped ...

рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ (рдФрд░ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рддреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддреАрди рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЗрдВ рд╣реЛрдВрдЧреА:

  1. рдмрд┐рд▓реНрдб - рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╢реАрдиред рдбреЙрдХрд░ рдХреЛ Ansible рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  2. рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ - рдПрдХ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдорд╢реАрди - рдкреНрд░реЛрдореЗрдерд┐рдпрд╕ рдФрд░ рдЧреНрд░рд╛рдлрд╛рдирд╛ рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рд▓реЙрдЧрд┐рди / рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдирдХ: рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ / рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ
  3. рдХрд╛рдлреНрдХрд╛ рдПрдХ рдЫреЛрдЯреА рдорд╢реАрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХрд╛рдлреНрдХрд╛ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЬреЛ рдкреЛрд░реНрдЯ 9092 рдкрд░ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реИред

рдЖрдЗрдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╡реЗ рд╕рднреА рдЕрдкрдиреА рдЬрдЧрд╣ рдкрд░ рд╣реИрдВ:

vozerov@mba:~/events (master) $ yc compute instance list
+----------------------+------------+---------------+---------+---------------+-------------+
|          ID          |    NAME    |    ZONE ID    | STATUS  |  EXTERNAL IP  | INTERNAL IP |
+----------------------+------------+---------------+---------+---------------+-------------+
| fhm081u8bkbqf1pa5kgj | monitoring | ru-central1-a | RUNNING | 84.201.159.71 | 172.16.1.35 |
| fhmf37k03oobgu9jmd7p | kafka      | ru-central1-a | RUNNING | 84.201.173.41 | 172.16.1.31 |
| fhmt9pl1i8sf7ga6flgp | build      | ru-central1-a | RUNNING | 84.201.132.3  | 172.16.1.26 |
+----------------------+------------+---------------+---------+---------------+-------------+

рд╕рдВрд╕рд╛рдзрди рдореМрдЬреВрдж рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рд╕реЗ рд╣рдо рдЙрдирдХреЗ рдЖрдИрдкреА рдкрддреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рджреМрд░рд╛рди рдореИрдВ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдкрддреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреЗрд░рд╛рдлрд╝реЙрд░реНрдо рд╕реЗ рдЬреБрдбрд╝рд╛ рдХреНрд▓рд╛рдЙрдбрдлрд╝реЗрдпрд░ рдЦрд╛рддрд╛ рд╣реИ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдирдП рдмрдирд╛рдП рдЧрдП DNS рдирд╛рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рд╡реИрд╕реЗ, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдмрдирд╛рддреЗ рд╕рдордп, рдПрдХ рдЖрдВрддрд░рд┐рдХ рдЖрдИрдкреА рдФрд░ рдПрдХ рдЖрдВрддрд░рд┐рдХ рдбреАрдПрдирдПрд╕ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рдирд╛рдо рд╕реЗ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рднреАрддрд░ рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВ:

ubuntu@build:~$ ping kafka.ru-central1.internal
PING kafka.ru-central1.internal (172.16.1.31) 56(84) bytes of data.
64 bytes from kafka.ru-central1.internal (172.16.1.31): icmp_seq=1 ttl=63 time=1.23 ms
64 bytes from kafka.ru-central1.internal (172.16.1.31): icmp_seq=2 ttl=63 time=0.625 ms
^C
--- kafka.ru-central1.internal ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.625/0.931/1.238/0.308 ms

рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ kafk рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛

рдмрдврд╝рд┐рдпрд╛, рд╕рд░реНрд╡рд░ рд╣реИрдВ, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ - рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рдЙрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдирд╛ рд╣реИред рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдбреЙрдХрд░ рдмрд┐рд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЫрд╡рд┐ рднрдВрдбрд╛рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рдпрд╛рдВрдбреЗрдХреНрд╕ - рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдХреА рдПрдХ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЪреАрдЬрд╝реЗрдВ.

рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд┐рд▓реНрдб рдорд╢реАрди рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ:

vozerov@mba:~/events/terraform (master) $ cd ..
vozerov@mba:~/events (master) $ rsync -av app/ [email protected]:app/

... skipped ...

sent 3849 bytes  received 70 bytes  7838.00 bytes/sec
total size is 3644  speedup is 0.93

vozerov@mba:~/events (master) $ ssh 84.201.132.3 -l ubuntu
ubuntu@build:~$ cd app
ubuntu@build:~/app$ sudo docker build -t app .
Sending build context to Docker daemon  6.144kB
Step 1/9 : FROM golang:latest AS build
... skipped ...

Successfully built 9760afd8ef65
Successfully tagged app:latest

рдЖрдзреА рд▓рдбрд╝рд╛рдИ рд╣реЛ рдЪреБрдХреА рд╣реИ - рдЕрдм рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдХреЗ рдФрд░ рдХрд╛рдлреНрдХрд╛ рдХреЛ рднреЗрдЬрдХрд░ рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

ubuntu@build:~/app$ sudo docker run --name app -d -p 8080:8080 app /app/app -kafka=kafka.ru-central1.internal:9092</code>

╨б ╨╗╨╛╨║╨░╨╗╤М╨╜╨╛╨╣ ╨╝╨░╤И╨╕╨╜╨║╨╕ ╨╝╨╛╨╢╨╜╨╛ ╨╛╤В╨┐╤А╨░╨▓╨╕╤В╤М ╤В╨╡╤Б╤В╨╛╨▓╤Л╨╣ event ╨╕ ╨┐╨╛╤Б╨╝╨╛╤В╤А╨╡╤В╤М ╨╜╨░ ╨╛╤В╨▓╨╡╤В:

<code>vozerov@mba:~/events (master) $ curl -D - -s -X POST -d '{"key1":"data1"}' http://84.201.132.3:8080/post
HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 13 Apr 2020 13:53:54 GMT
Content-Length: 41

{"status":"ok","partition":0,"Offset":0}
vozerov@mba:~/events (master) $

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреА рд╕рдлрд▓рддрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреА рдФрд░ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдСрдлрд╕реЗрдЯ рдХреА рдЖрдИрдбреА рдХрд╛ рд╕рдВрдХреЗрдд рджрд┐рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрджреЗрд╢ рд╢рд╛рдорд┐рд▓ рдерд╛ред рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИ рдХрд┐ Yandex.Cloud рдореЗрдВ рдПрдХ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдмрдирд╛рдПрдВ рдФрд░ рд╡рд╣рд╛рдВ рдЕрдкрдиреА рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ (рддреАрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рд░рдЬрд┐рд╕реНрдЯреНрд░реА.tf рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред рдПрдХ рднрдВрдбрд╛рд░рдг рдмрдирд╛рдПрдБ:

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_container_registry.events

... skipped ...

Plan: 1 to add, 0 to change, 0 to destroy.

... skipped ...

Apply complete! Resources: 1 added, 0 changed, 0 destroyed.

рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ - рдПрдХ рдУрде рдЯреЛрдХрди, рдПрдХ рдЖрдИрдПрдПрдо рдЯреЛрдХрди, рдпрд╛ рдПрдХ рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдЗрди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред https://cloud.yandex.ru/docs/container-registry/operations/authentication. рд╣рдо рд╕реЗрд╡рд╛ рдЦрд╛рддрд╛ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рдЦрд╛рддрд╛ рдмрдирд╛рдПрдВрдЧреЗ:

vozerov@mba:~/events/terraform (master) $ terraform apply -target yandex_iam_service_account.docker -target yandex_resourcemanager_folder_iam_binding.puller -target yandex_resourcemanager_folder_iam_binding.pusher

... skipped ...

Apply complete! Resources: 3 added, 0 changed, 0 destroyed.

рдЕрдм рдЬреЛ рдХреБрдЫ рдмрдЪрд╛ рд╣реИ рд╡рд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рдмрдирд╛рдирд╛ рд╣реИ:

vozerov@mba:~/events/terraform (master) $ yc iam key create --service-account-name docker -o key.json
id: ajej8a06kdfbehbrh91p
service_account_id: ajep6d38k895srp9osij
created_at: "2020-04-13T14:00:30Z"
key_algorithm: RSA_2048

рд╣рдо рдЕрдкрдиреЗ рднрдВрдбрд╛рд░рдг рдХреА рдЖрдИрдбреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдВрдЬреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ:

vozerov@mba:~/events/terraform (master) $ scp key.json [email protected]:
key.json                                                                                                                    100% 2392   215.1KB/s   00:00

vozerov@mba:~/events/terraform (master) $ ssh 84.201.132.3 -l ubuntu

ubuntu@build:~$ cat key.json | sudo docker login --username json_key --password-stdin cr.yandex
WARNING! Your password will be stored unencrypted in /home/ubuntu/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
ubuntu@build:~$

рдЫрд╡рд┐ рдХреЛ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдЖрдИрдбреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЗрд╕реЗ yc рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реЗ рд▓реЗрддреЗ рд╣реИрдВ:

vozerov@mba:~ $ yc container registry get events
id: crpdgj6c9umdhgaqjfmm
folder_id:
name: events
status: ACTIVE
created_at: "2020-04-13T13:56:41.914Z"

рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреА рдЫрд╡рд┐ рдХреЛ рдПрдХ рдирдП рдирд╛рдо рдХреЗ рд╕рд╛рде рдЯреИрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ:

ubuntu@build:~$ sudo docker tag app cr.yandex/crpdgj6c9umdhgaqjfmm/events:v1
ubuntu@build:~$ sudo docker push cr.yandex/crpdgj6c9umdhgaqjfmm/events:v1
The push refers to repository [cr.yandex/crpdgj6c9umdhgaqjfmm/events]
8c286e154c6e: Pushed
477c318b05cb: Pushed
beee9f30bc1f: Pushed
v1: digest: sha256:1dd5aaa9dbdde2f60d833be0bed1c352724be3ea3158bcac3cdee41d47c5e380 size: 946

рд╣рдо рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЫрд╡рд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдб рд╣реБрдИ рд╣реИ:

vozerov@mba:~/events/terraform (master) $ yc container repository list
+----------------------+-----------------------------+
|          ID          |            NAME             |
+----------------------+-----------------------------+
| crpe8mqtrgmuq07accvn | crpdgj6c9umdhgaqjfmm/events |
+----------------------+-----------------------------+

рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдк рд▓рд┐рдирдХреНрд╕ рдорд╢реАрди рдкрд░ yc рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

yc container registry configure-docker

рдбреЙрдХрд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.

рдирд┐рд╖реНрдХрд░реНрд╖

рд╣рдордиреЗ рдмрд╣реБрдд рдореЗрд╣рдирдд рдХреА рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

  1. рд╣рдо рдЕрдкрдиреА рднрд╛рд╡реА рд╕реЗрд╡рд╛ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рд▓реЗрдХрд░ рдЖрдП рд╣реИрдВред
  2. рд╣рдордиреЗ рдЧреЛрд▓рд╛рдВрдЧ рдореЗрдВ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
  3. рд╣рдордиреЗ рдЗрд╕реЗ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдирд┐рдЬреА рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред

рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ, рд╣рдо рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬрд╝реЛрдВ рдХреА рдУрд░ рдмрдврд╝реЗрдВрдЧреЗ - рд╣рдо рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЕрдВрдд рдореЗрдВ рдЙрд╕ рдкрд░ рд▓реЛрдб рд▓реЙрдиреНрдЪ рдХрд░реЗрдВрдЧреЗред рд╕реНрд╡рд┐рдЪ рдордд рдХрд░реЛ!

рдпрд╣ рд╕рд╛рдордЧреНрд░реА рдУрдкрди рд╡рд░реНрдХрд╢реЙрдк REBRAIN & Yandex.Cloud рдХреА рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдореЗрдВ рд╣реИ: рд╣рдо Yandex рдХреНрд▓рд╛рдЙрдб рдкрд░ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб 10 рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ - https://youtu.be/cZLezUm0ekE

рдпрджрд┐ рдЖрдк рдРрд╕реЗ рдЖрдпреЛрдЬрдиреЛрдВ рдореЗрдВ рдСрдирд▓рд╛рдЗрди рднрд╛рдЧ рд▓реЗрдиреЗ рдФрд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдкреНрд░рд╢реНрди рдкреВрдЫрдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдорд╕реЗ рдЬреБрдбрд╝реЗрдВ рд░реЗрдмреНрд░реЗрди рдЪреИрдирд▓ рджреНрд╡рд╛рд░рд╛ DevOps.

рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдЖрдпреЛрдЬрди рдХреА рдореЗрдЬрдмрд╛рдиреА рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП Yandex.Cloud рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрдирд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ - https://cloud.yandex.ru/prices

рдпрджрд┐ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЙрдб рдкрд░ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдЖрдкрдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдврд╛рдВрдЪреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рд╢реНрди рд╣реИрдВ, рдПрдХ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ.

рдкреАрдПрд╕ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддрд┐ рдорд╛рд╣ 2 рдореБрдлреНрдд рдСрдбрд┐рдЯ рд╣реИрдВ, рд╢рд╛рдпрдж рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╣реЛрдЧреАред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ