Aws-cli: рдПрдХ рдкреИрд░рд╛рдорд╛рдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 13 рд╕рд┐рддре░ 2017  ┬╖  55рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: aws/aws-cli

cloudformation deploy рдХрдорд╛рдВрдб рдЪрд▓рд╛рддреЗ рд╕рдордп рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ ( --parameter-override рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ), рдЬреИрд╕рд╛ рдХрд┐ рдХреНрд░рд┐рдПрдЯ-рд╕реНрдЯреИрдХ рдФрд░ рдЕрдкрдбреЗрдЯ-рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рднреА рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛: https://github.com/awslabs/serverless-application-model/issues/111

closed-for-staleness cloudformation packagdeploy customization feature-request

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдордХрд╛рдЬ рдХреА рддрд▓рд╛рд╢ рд╣реИ, рддреЛ рдЖрдк jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
aws cloudformation deploy --parameter-overrides $(jq -r '.[] | [.ParameterKey, .ParameterValue] | join("=")' param.json) ...
рдЖрдкрдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдЧреЗ рднрд╛рдЧрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рд╕рднреА 55 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдмрд╕ рдпрд╣рд╛рдВ рдХреБрдЫ рдЪрд╛рд╣рд┐рдП

https://github.com/aws/aws-cli/blob/develop/awscli/customizations/cloudformation/deploy.py#L178

рдЬреЛ рдПрдХ JSON рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдкрдврд╝рддрд╛ рд╣реИ, рд╢рд╛рдпрдж рдПрдХ рддреНрд╡рд░рд┐рдд рд╡рд┐рд╡реЗрдХ рдЬрд╛рдВрдЪ, рдлрд┐рд░ рдЙрд╕реЗ deploy() ред

рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ред

@sanathkr рд╡рд┐рдЪрд╛рд░?

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЗрдВрддрдЬрд╛рд░

рдореБрдЭреЗ package рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд╣рд┐рдПред рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ

рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд╛рдЗрд▓ рдХреЛ --parameters рдЬреИрд╕реЗ create-stack рдФрд░ update-stack CF рдХрдорд╛рдВрдб (рдФрд░ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рд╕рдорд╛рди рдлрд╝рд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ CF рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдореБрдЭреЗред рдЙрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рджреЗрдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗред

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1ред рдзрдиреНрдпрд╡рд╛рдж!

рд╢реБрдн рдкреНрд░рднрд╛рдд!

AWS CLI рд╕реЗ рдЬреБрдбрд╝реЗ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП UserVoice рдореЗрдВ рд╣рдорд╛рд░реЗ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо GitHub рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдпрд╣рд╛рдБ рдмрдВрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВред

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

рдПрдХ рддреНрд╡рд░рд┐рдд UserVoice рдкреНрд░рд╛рдЗрдорд░ рдХреЗ рд░реВрдк рдореЗрдВ (рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИ): рдПрдХ рд╡рд┐рдЪрд╛рд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд▓реЛрдЧ рд╡рд┐рдЪрд╛рд░реЛрдВ рдкрд░ рд╡реЛрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрддреНрдкрд╛рдж рдЯреАрдо рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реБрдЭрд╛рд╡реЛрдВ рдХрд╛ рд╕реАрдзреЗ рдЬрд╡рд╛рдм рджреЗрдЧреАред

рд╣рдордиреЗ рдЧрд┐рдЯрд╣рдм рд╕реЗ рдореМрдЬреВрджрд╛ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдЖрдпрд╛рдд рдХрд┐рдП рд╣реИрдВ - рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╡рд╣рд╛рдВ рдЦреЛрдЬреЗрдВ!

рдФрд░ рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдкреЛрд╕реНрдЯреАрд░рд┐рдЯреА рдХреЗ рд▓рд┐рдП GitHub рдкрд░ рдореМрдЬреВрдж рд░рд╣реЗрдЧреАред рдЪреВрдВрдХрд┐ рдпрд╣ UserVoice рдореЗрдВ рдореВрд▓ рдкреЛрд╕реНрдЯ рдХрд╛ рдХреЗрд╡рд▓-рдкрд╛рда рдЖрдпрд╛рдд рд╣реИ, рд╣рдо рдЕрднреА рднреА рдЙрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдФрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВрдЧреЗ рдЬреЛ рдпрд╣рд╛рдВ GitHub рдореБрджреНрджреЗ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВред

рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GitHub рдЪреИрдирд▓ рдмрдирд╛ рд░рд╣реЗрдЧрд╛ред

рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЕрдм рдЗрд╕ рд╢реАрд░реНрд╖рдХ рдкрд░ рдЦреЛрдЬ рдХрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: https://aws.uservoice.com/forums/598381-aws-command-line-interface

-рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдПрд╕рдбреАрдХреЗ рдФрд░ рдЯреВрд▓реНрд╕ рдЯреАрдо

рдпрд╣ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ UserVoice рдкрд░ рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ: https://aws.uservoice.com/forums/598381-aws-command-line-interface/suggestions/33168409-allow-cloudformation-deploy-to-accept-a-paramater

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1ред рдзрдиреНрдпрд╡рд╛рдж!

рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдордиреЗ рдЧрд┐рдЯрд╣рдм рдореБрджреНрджреЛрдВ рдкрд░ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдХрд╛рдордХрд╛рдЬ рдХреА рддрд▓рд╛рд╢ рд╣реИ, рддреЛ рдЖрдк jq рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ:
aws cloudformation deploy --parameter-overrides $(jq -r '.[] | [.ParameterKey, .ParameterValue] | join("=")' param.json) ...
рдЖрдкрдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рдиреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдЧреЗ рднрд╛рдЧрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рднреА +1 рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

рдореИрдВ рдЬрд╣рд╛рдВ рднреА рд╕рдВрднрд╡ рд╣реЛ jq рдХреЛ jp рдмрджрд▓ рд░рд╣рд╛ рд╣реВрдВред рдЬреЗрдПрдордИрдПрд╕рдкрд╛рде рд╕реАрдЦрдиреЗ рд▓рд╛рдпрдХ рд╣реИред

$ jp \
  --unquoted \
  --filename example-app-params-staging.json  \
  "join(' ', @[].join('=', [ParameterKey, ParameterValue])[])"
HostedZone=example.com KeyName=example-ap-southeast-2 TargetPort=8080 VpcStackName=vpc-example

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

рдЗрд╕рдХреЗ рд▓рд┐рдП +1ред рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ "рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди" рдХреЛ рд╕рд░рд▓ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХрдорд╛рдВрдб рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд╖рдорддрд╛рдУрдВ, рдЯреИрдЧ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЭрдВрдбреЗ рд╣реИрдВ (рдЬреИрд╕реЗ рдЕрдиреНрдп рд╕рднреА рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди рдХрдорд╛рдВрдб), рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рд╣реИ (рдХреЗрд╡рд▓ рд╕реВрдЪреА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реБрдП) string=string рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ JSON рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрдЬрд╛рдп рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░)ред рдЖрдкрдХреЛ рд╕рднреА "рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди" рдХрдорд╛рдВрдб рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдХреНрд▓реА-рдЗрдирдкреБрдЯ-рдЬреЗрд╕рди рдХреЗ рдЙрдкрдпреЛрдЧ рд╕рд╣рд┐рдд рд▓рдЧрднрдЧ рд╕рднреА рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд╕реАрдПрд▓рдЖрдИ рдХрдорд╛рдВрдб)ред рдпрджрд┐ рдЖрдк "aws рдХреНрд▓рд╛рдЙрдбрдлреЙрд░реНрдореЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди" рдХреЗ рд▓рд┐рдП рдЯреИрдЧ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рд╕рд░рд▓реАрдХрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдзреНрд╡рдЬ рдкреЗрд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ --tags-overrides рдпрд╛ --parameters-overridesред

рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдкрд░, рдпрд╣ рд╕рдорд░реНрдерд┐рдд рд╣реЛрдиреЗ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдЧреА! рдХреНрд▓реА . рдХреЗ рд╕рд╛рде cf рд╕реНрдЯреИрдХ рдмрдирд╛рддреЗ рд╕рдордп рдпрд╣ Idempotency рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдХрд░реЗрдЧрд╛

+1

+1

+1

@ ColdFire87 @ dan-lind @mnwk рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдХреЗрд╡рд▓ рдкрд╣рд▓рд╛ рдЕрдВрдХ, рдФрд░ рдЬрд┐рд╕рдиреЗ рднреА рдЗрд╕ рдореБрджреНрджреЗ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИ, рдЙрд╕реЗ рд╕реНрдкреИрдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? ЁЯСН рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдЯрд┐рдкреНрдкрдгреА 20 рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЛ рдкрд┐рдВрдЧ рдХрд░ рд░рд╣реА рд╣реИ....
(рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЙрд╕рд╕реЗ рд▓рдбрд╝рдирд╛ рд╣реЛрдЧрд╛...)

@pierreozoux рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореЗрд░рд╛ рдорддрд▓рдм рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХрд╛ рдирд╣реАрдВ рдерд╛ :)

@cervantek рдиреЗ рдХреНрдпрд╛ рдХрд╣рд╛ред рдореИрдВ рдХреЗрд╡рд▓ рдпрд╣ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдХрдЯ create-stack рд╕рд╛рде рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ:

          [--template-body <value>]
          [--template-url <value>]
          [--parameters <value>]
          [--capabilities <value>]
          [--tags <value>]

рдореЗрд░реЗ рдЬреИрд╕реЗ рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рд▓реАрдЧреЗрд╕реА рдХреЛрдб рд╣реЛрдЧрд╛ рдЬреЛ create-stack рдФрд░ update-stack рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд╡реЗ deploy рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдпрд╣ рдЗрддрдирд╛ рдХрдард┐рди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

+1 рд╕реЗ --рдкреИрд░рд╛рдореАрдЯрд░ JSON рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

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

рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП +1

+1

+1

+1

+1

@ olivier-schmitt-sonarsource @ anshul0915 @lmunro @MiMo42 @markusbecker @benjammin12 рдФрд░ рдЕрдиреНрдп рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдХреГрдкрдпрд╛ рдХреЗрд╡рд▓ ЁЯСН рдореВрд▓ рдореБрджреНрджреЗ рдХреЛ рд╕реНрдкреИрдо рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╣рдо рдореЗрдВ рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдереНрд░реЗрдб рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИ рдпрджрд┐ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ +1 рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВ

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди key=value рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ .ini рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реИ:
aws cloudformation deploy --parameter-overrides $(cat parameters.ini)
рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреНрдп рд╕рдорд╛рдзрд╛рди key=value рдкреИрд░рд╛рдореАрдЯрд░ рдЬреЛрдбрд╝реЗ рдХреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдПрдХ .ini рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реИ:
aws cloudformation deploy --parameter-overrides $(cat parameters.ini)
рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рд░реВрдкрд╛рдВрддрд░рдг рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

cat parameters.json | jq -r '.[] | .ParameterKey + "=" + .ParameterValue'

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

aws cloudformation deploy --template-file ./sample-template.yaml --stack-name sample-stack --parameter-overrides $(cat parameters.json | jq -r '.[] | .ParameterKey + "=" + .ParameterValue')

рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓реЗрдЧреА!

рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рд╕реАрдбреАрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЗрд╕ рдкреВрд░реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдЖрдЧреЗ рдмрдврд╝ рдЧрдпрд╛ рд╣реВрдВред

рдореИрдВ рдХреНрд░рд┐рдПрдЯ-рд╕реНрдЯреИрдХ/рдЕрдкрдбреЗрдЯ-рд╕реНрдЯреИрдХ рд╕реЗ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╡рд┐рдзрд┐ рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдЕрдиреНрдп рдореБрджреНрджреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИ - рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ 3 рд╕рд╛рд▓ рдмрд╛рдж рднреА рдЙрди рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдЯреИрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рджрд┐рдП рдЧрдП рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ рдЬрд╣рд╛рдВ рдХреБрдЫ рдЯреИрдЧреНрд╕ рдХреЗ рдорд╛рдиреЛрдВ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╣рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдЕрдиреНрдп рдореБрджреНрджрд╛ рдЕрдзрд┐рдХ рдореМрд▓рд┐рдХ рд╣реИ - рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЕрд╕рдВрд░рдЪрд┐рдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд░рд┐рд╡рд░реНрддрди рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдПрдХ рдЕрд╕рдВрд░рдЪрд┐рдд рдЯреЗрдХреНрд╕реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рд╣реА рдбреЛрдбреА (!) рдорд╛рдирддрд╛ рд╣реВрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ create-change-set рдореЗрдердб json рдореЗрдВ id рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рдпреВрдЬрд░рд╡реЙрдпрд╕ рдкрд░ рдореБрджреНрджреЗ рдХрд╛ рд▓рд┐рдВрдХ рдорд░ рдЪреБрдХрд╛ рд╣реИ - рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╣рд╛рдВ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рдпрд╣ рдЕрднреА рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ?

рджреЛрд╕реНрддреЛрдВ, рдХреГрдкрдпрд╛ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред cat рд╕рд╛рде рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдпрд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ SSM рдорд╛рдзреНрдпрдо рд╕реЗ рдкреИрд░рд╛рдо рдкрд╛рд╕ рдХрд░рдирд╛ - рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЬрдЯрд┐рд▓рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ CFN рд╣рд░ рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИред

create-stack рдФрд░ update-stack рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╕рдордп рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣рд╛рдВ рдЕрдкрдирд╛ ЁЯСН рднреА рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдЕрдиреБрд░реЛрдз рдкрд░ рдЬреЛрдбрд╝рдХрд░ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реИ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдЬреЛ JSON рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреА рд╣реИ рдЬрд┐рд╕реЗ CodePipeline CloudFormation рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред

рдпрджрд┐ рдЖрдк CloudFormation рдХреЛ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП CodePipeline рдХреЗ рдПрдХ рднрд╛рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИрдВ, рддреЛ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЖрдкрдХреА CloudFormation рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ CodePipeline рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЖрдкрдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рднреАрддрд░ рдкреНрд░рддрд┐рдмрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИред

рдпрд╣ рддрдм рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдкреВрд░реНрдг рд╕реАрдЖрдИ/рд╕реАрдбреА рдЪрд▓рд╛ рд░рд╣реЗ рд╣реЛрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдХрдард┐рди рд╕реНрдерд╛рдиреАрдп рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдмрдирд╛рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдХреБрдЫ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬреЛ рдХреЛрдбрдкрд┐рдкрд▓рд╛рдЗрди JSON рдХреЛ JSON рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ aws cloudformation create-stack рдФрд░ update-stack рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ --parameters file://params.json , рдФрд░ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рдХреЗ рд╕рд╛рде рд╢рд╛рдпрдж рдХреБрдЫ рд╣реИрдХреНрд╕ рдореЗрдВ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдКрдкрд░ рдХреЗ рд▓реЛрдЧреЛрдВ рдиреЗ jq рдФрд░ рдЗрд╕реА рддрд░рд╣ рдХреЗ рд╕рд╛рде рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╣реИрдХ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ!

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ! рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдкрд░ рдЖрдУ, рдпрд╣ рд▓рдЧрднрдЧ 3 рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдЦреБрд▓рд╛ рд╣реИред

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

рдореИрдВ рдЗрд╕ рд╕рдордп рдПрдХ deploy рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реВрдВ, рдФрд░ рдЕрдм рддрдХ cat - рдпрд╛рдиреА --parameter-overrides $(shell cat configs/${LNMS_ENV}.properties) рд╕рд╛рде рдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрдирд▓рд╛рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рджреВрд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред

рд╕рдорд╕реНрдпрд╛ рддрдм рдЙрддреНрдкрдиреНрди рд╣реБрдИ рдЬрдм рдореИрдВрдиреЗ рд╕реАрдПрдлрдПрди рдХреЗ рдЪреЗрдВрдЬ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреЗрд░рд╛рдлреЙрд░реНрдо рдХреЗ plan рд╕рдорд╛рди рдХреБрдЫ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ aws cloudformation create-change-set рдкреИрд░рд╛рдореАрдЯрд░ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ deploy рд╕реЗ рднрд┐рдиреНрди рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╢рд┐рдк рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛!

deploy рд▓рд┐рдП рдкреНрд░рддрд┐ рд╕реАрдПрд▓рдЖрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдпрд╣ рд╣реИ:

ParameterKey1=ParameterValue1

create-stack , update-stack рдФрд░ create-change-set рд▓рд┐рдП рдкреНрд░рддрд┐ рд╕реАрдПрд▓рдЖрдИ рджрд╕реНрддрд╛рд╡реЗрдЬ рдпрд╣ рд╣реИ:

ParameterKey=string,ParameterValue=string

JSON рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рдеред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╕рдордЭрддрд╛ рдХрд┐ рд╡реЗ рдЕрд▓рдЧ рдХреНрдпреЛрдВ рд╣реИрдВ, рдХреНрдпреЛрдВ deploy рдПрдХ рд╣реА JSON рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдФрд░ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП - рдкреНрд░рддреНрдпреЗрдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рджреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рд╣реА рдкрд░рдо рдлрд╝рд╛рдЗрд▓реЗрдВ рд░рдЦреЗрдВ?

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

PS рдиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ @ pablods90 , рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдХреЛ рд╕рд╛рдмрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд▓реЛрдЧ рдмреБрдирд┐рдпрд╛рджреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдХрдореА рдХреЗ рдХрд╛рд░рдг рдПрдХ рдкрд╣рд┐рдпрд╛ рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ :(

+1

рдХреИрдкреНрдЯрди рдХрдВрд╕рд┐рд╕реНрдЯреЗрдВрд╕реА рдХрд╛ рд░реЛрдорд╛рдВрдЪ рдЬрд╛рд░реА рд╣реИред

рд╣рдо рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рджреВрд░ рд╣реЛрдиреЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ cat рдХреЗ рд▓рд┐рдП рджреБрдХрд╛рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ deploy рдПрдХ рдкреНрд░рд╛рд░реВрдк рднреА рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ рдХрд┐ рдореЗрдВ update-stack :

[
    {
        "ParameterKey": "ParamEnv",
        "ParameterValue": "prod"
    }
]

CodePipeline рд╕рд╛рде Deploy:CloudFormation рдкреНрд░рдХрд╛рд░ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ CFN рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ:

{ 
  "Parameters": {
     "ParamEnv": "prod"
  }
}

рдХреЛрдИ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ... рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдорд╛рд░рддреЗ рд╣реБрдП рдердХ рдЧрдпрд╛ рд╣реВрдВред рдпреЗ рдЧрд▓рдд рд╣реИред

рд╣рдордиреЗ cat рдпрд╛ jq рд╢реЗрдВрдирд┐рдЧрдиреНрд╕ рдХреЗ рдмрдЬрд╛рдп рдХреЛрдбрдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде aws cloudformation deploy рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ-рдкрдВрдХреНрддрд┐ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд┐рдпрд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЙрди рдореБрджреНрджреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬрд┐рд╕реЗ рд╡реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдХрд╛ рдзреНрдпрд╛рди рдЕрдм рд╕реАрдбреАрдХреЗ рдкрд░ рд╣реИ?

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

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

рдЕрд░реЗ, рд╣рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЦреЗрдж рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдореЗрдВ рдЗрддрдирд╛ рд╕рдордп рд▓рдЧрд╛ред

рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдкреАрдЖрд░ рдХреЗ рд╡рд┐рд╡рд░рдг рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВред

рд╕рд╛рде рд╣реА, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ (рдХрдо рд╕реЗ рдХрдо рд╡рд┐рдВрдбреЛрдЬ рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рд╕реАрдПрд▓рдЖрдИ рдкрд░)ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд╛рдЗрд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ред

рдорд╣рд╛рди рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж рджреЛрд╕реНрддреЛрдВ!

рдирдорд╕реНрддреЗ, рдЗрд╕ рдкреАрдЖрд░ рдХреЛ рд╡рд┐рд▓рдп рдХрд░ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд╕реАрдПрд▓рдЖрдИ v.2.0.39 рдореЗрдВ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

@ vz10 рдЕрджреНрдпрддрди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

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

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдзрдиреНрдпрд╡рд╛рдж!

@ рдмреАрдПрд╕-рдереЙрдорд╕ рдореИрдВрдиреЗ рдЗрд╕реЗ рдмрд╣реБ-рдкрдВрдХреНрддрд┐ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд░ JSON рдкреНрд░рд╛рд░реВрдк рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред

рдзрдиреНрдпрд╡рд╛рджред

@ vz10 рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ \n . рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рджрд┐рдЦрддрд╛ рд╣реИ

рдЕрд╕рд▓ рдореЗрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реАрдПрд▓рдЖрдИ рд╕реАрдПрд▓рдЖрдИ рдкреИрд░рд╛рдореАрдЯрд░-рдУрд╡рд░рд░рд╛рдЗрдб рдХреЗ рд▓рд┐рдП рд╡рд╛рдИрдПрдПрдордПрд▓ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реИ ;-)

@ рдмреАрдПрд╕-рдереЙрдорд╕ рдпрд╣ рдПрдХ рдФрд░ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред

рдмрд╕ рдЗрд╕реЗ рдмрдирд╛рдПрдВ рдФрд░ рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░-рдУрд╡рд░рд░рд╛рдЗрдб рдХреЛ YAML рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрдзреА рд▓рдбрд╝рд╛рдИ рд╣реЛрдЧреА;)

@vz10 рдЬрд╝рд░реВрд░, рдореИрдВ рдЗрд╕реЗ рддреБрд░рдВрдд рдХрд░реВрдБрдЧрд╛ред

рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ, рдореИрдВрдиреЗ JSON рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЕрдкреНрд░рд┐рдп рджреЗрдЦрд╛ред рдпрд╣ рдкреВрд░реНрдгрд╛рдВрдХ рдФрд░ рди рд╣реА рдмреВрд▓рд┐рдпрди рдорд╛рди рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рддреЛ рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдореБрдЭреЗ рдпрд╣ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓ рдЬрд╛рдПрдЧреА:

image

рдлрд┐рд░!

@ рдмреАрдПрд╕-рдереЙрдорд╕ рд╣рд╛рдБ, рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрдЬреАрдм рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ рдЬреЛ cloudformation create-stack рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ - рд╕рднреА рдорд╛рди рддрд╛рд░ рд╣реИрдВ рдФрд░ рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдмрд╛рдж рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рдмреВрд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

schams-net picture schams-net  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ronaldpetty picture ronaldpetty  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ypant picture ypant  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ehammond picture ehammond  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

matt-sexton picture matt-sexton  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ