เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฐ - เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชŸเซ เช•เซ‹เชก

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฐ - เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชŸเซ เช•เซ‹เชก
เชนเซเช‚ เชคเชฎเชจเซ‡ เชจเชตเชพ CLI เชŸเซ‚เชฒ เชตเชฟเชถเซ‡ เชœเชฃเชพเชตเชตเชพ เชฎเชพเช‚เช—เซ เช›เซเช‚ เชœเซ‡ เชฎเซ‡เช‚ เชœเซ‚เชจเซ€ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชฒเช–เซเชฏเซเช‚ เชนเชคเซเช‚.

เชธเชฎเชธเซเชฏเชพ

เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ Devops/Cloud/IT เชธเชฎเซเชฆเชพเชฏเชฎเชพเช‚ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค เช›เซ‡. เช•เซ‹เชก เชคเชฐเซ€เช•เซ‡ เช‡เชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชธเซเชคเซ เช–เซ‚เชฌ เชœ เช…เชจเซเช•เซ‚เชณ เช…เชจเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช˜เชฃเชพ เช†เชจเช‚เชฆ เชคเซ‡เชฎเชœ เช˜เชฃเชพ เช•เชพเช‚เชŸเชพ, เชคเซ€เช•เซเชทเซเชฃ เช›เชฐเซ€เช“ เช…เชจเซ‡ เชฐเซ‡เช•เซเชธ เช›เซ‡.
เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เชจเชตเซ€ เชตเชธเซเชคเซเช“ เชฌเชจเชพเชตเชตเซ€ เช…เชจเซ‡ เชชเช›เซ€ เชคเซ‡เชจเซ‡ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเซ€, เชฌเชฆเชฒเชตเซ€ เช…เชฅเชตเชพ เช•เชพเชขเซ€ เชจเชพเช–เชตเซ€ เช เช–เซ‚เชฌ เชœ เช…เชจเซเช•เซ‚เชณ เช›เซ‡. เชœเซ‡เชฎเชจเซ€ เชชเชพเชธเซ‡ เช•เซเชฒเชพเช‰เชกเชฎเชพเช‚ เชตเชฟเชถเชพเชณ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เช›เซ‡ เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชจเชฅเซ€ เชคเซ‡เช“เช เชถเซเช‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช? เชธเช‚เชชเซ‚เชฐเซเชฃ เช•เซเชฒเชพเช‰เชกเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเซเช‚ เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฌเชจเชพเชตเชตเซเช‚ เช เช•เซ‹เชˆเช• เชฐเซ€เชคเซ‡ เช–เชฐเซเชšเชพเชณ เช…เชจเซ‡ เช…เชธเซเชฐเช•เซเชทเชฟเชค เช›เซ‡.
เชฎเชจเซ‡ เช† เชธเชฎเชธเซเชฏเชพ 2 เชœเซ‹เชฌ เชชเชฐ เช†เชตเซ€, เชธเซŒเชฅเซ€ เชธเชฐเชณ เช‰เชฆเชพเชนเชฐเชฃ เช เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชซเชพเช‡เชฒเซ‹เชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เช—เชฟเชŸเชฎเชพเช‚ เชฌเชงเซเช‚ เชœ เชนเซ‹เชฏ โ€‹โ€‹เชคเซ‡เชตเซเช‚ เช‡เชšเซเช›เซ‹ เช›เซ‹, เชชเชฐเช‚เชคเซ เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ 250+ เชฌเช•เซ‡เชŸเซเชธ เช›เซ‡ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชนเชพเชฅเชฅเซ€ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชฒเช–เชตเชพเชจเซเช‚ เช˜เชฃเซเช‚ เช›เซ‡.
เช›เซ‡ เชฎเซเชฆเซเชฆเซ‹ เชŸเซ‡เชฐเชพเชซเซ‹เชฎเชฎเชพเช‚ 2014 เชฅเซ€ เชœเซ‡ เช†เชฏเชพเชค เชฅเชถเซ‡ เชคเซ‡เชตเซ€ เช†เชถเชพ เชธเชพเชฅเซ‡ 2016 เชฎเชพเช‚ เชฌเช‚เชง เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€.

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชฌเชงเซเช‚ เชซเช•เซเชค เชœเชฎเชฃเซ‡เชฅเซ€ เชกเชพเชฌเซ‡ เชšเชฟเชคเซเชฐเชฎเชพเช‚ เชœเซ‡เชตเซเช‚ เช›เซ‡

เชšเซ‡เชคเชตเชฃเซ€เช“: เชฒเซ‡เช–เช• เชคเซ‡เชจเชพ เช…เชกเชงเชพ เชœเซ€เชตเชจ เชฎเชพเชŸเซ‡ เชฐเชถเชฟเชฏเชพเชฎเชพเช‚ เชฐเชนเซ‡เชคเชพ เชจเชฅเซ€ เช…เชจเซ‡ เชฐเชถเชฟเชฏเชจเชฎเชพเช‚ เชฅเซ‹เชกเซเช‚ เชฒเช–เซ‡ เช›เซ‡. เชœเซ‹เชกเชฃเซ€เชจเซ€ เชญเซ‚เชฒเซ‹เชฅเซ€ เชธเชพเชตเชง เชฐเชนเซ‹.

เช‰เช•เซ‡เชฒเซ‹

1. AWS เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช…เชจเซ‡ เชœเซ‚เชจเชพ เช‰เช•เซ‡เชฒเซ‹ เช›เซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฟเช‚เช—. เชœเซเชฏเชพเชฐเซ‡ เชฎเซ‡เช‚ เชคเซ‡เชจเชพ เชฆเซเชตเชพเชฐเชพ เชฎเชพเชฐเซ€ 250+ เชกเซ‹เชฒ เชฎเซ‡เชณเชตเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹, เชคเซเชฏเชพเชฐเซ‡ เชฎเชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชคเซเชฏเชพเช‚ เชฌเชงเซเช‚ เชœ เช–เชฐเชพเชฌ เชนเชคเซเช‚. AWS เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏเชฅเซ€ เช˜เชฃเชพ เชจเชตเชพ เชตเชฟเช•เชฒเซเชชเซ‹ เชฐเชœเซ‚ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡, เชชเชฐเช‚เชคเซ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฟเช‚เช— เชคเซ‡เชฎเชจเชพ เชตเชฟเชถเซ‡ เชœเชพเชฃเชคเซเช‚ เชจเชฅเซ€ เช…เชจเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชคเซ‡ เชฐเซ‚เชฌเซ€ เช›เซ‡ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เช›เซ‚เชŸเชพเช›เชตเชพเชฏเชพ เชฆเซ‡เช–เชพเชฏ เช›เซ‡. เชธเชพเช‚เชœเซ‡ 2 เชตเชพเช—เซเชฏเชพ เชชเช›เซ€ เชฎเซ‡เช‚ เชฎเซ‹เช•เชฒเซเชฏเซเช‚ เชตเชฟเชจเช‚เชคเซ€ เช–เซ‡เช‚เชšเซ‹ เชคเซเชฏเชพเช‚ เชตเชงเซ เชธเซเชตเชฟเชงเชพเช“ เช‰เชฎเซ‡เชฐเชตเชพ เช…เชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เช†เชตเชพ เช‰เช•เซ‡เชฒ เชฌเชฟเชฒเช•เซเชฒ เชฏเซ‹เช—เซเชฏ เชจเชฅเซ€.
เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฟเช‚เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡: เชคเซ‡ AWS SDK เชฎเชพเช‚เชฅเซ€ เชกเซ‡เชŸเชพ เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชฆเซเชตเชพเชฐเชพ tf เช…เชจเซ‡ tfstate เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡ เช›เซ‡.
เช…เชนเซ€เช‚ 3 เชธเชฎเชธเซเชฏเชพเช“ เช›เซ‡:
1. เช…เชชเชกเซ‡เชŸเซเชธเชฎเชพเช‚ เชนเช‚เชฎเซ‡เชถเชพ เช…เช‚เชคเชฐ เชฐเชนเซ‡เชถเซ‡
2. tf เชซเชพเช‡เชฒเซ‹ เช•เซเชฏเชพเชฐเซ‡เช• เชคเซ‚เชŸเซ‡เชฒเซ€ เชฌเชนเชพเชฐ เช†เชตเซ‡ เช›เซ‡
3. tfstate tf เชฅเซ€ เช…เชฒเช— เชญเซ‡เช—เซ€ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชนเช‚เชฎเซ‡เชถเชพ เชเช•เซ€เช•เซƒเชค เชฅเชคเซเช‚ เชจเชฅเซ€
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชชเชฐเชฟเชฃเชพเชฎ เชฎเซ‡เชณเชตเชตเซเช‚ เชฎเซเชถเซเช•เซ‡เชฒ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ `เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเชพเชจ` เช•เชนเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชจเชฅเซ€

2. `เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช†เชฏเชพเชค` เช เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ-เช‡เชจ เช•เชฎเชพเชจเซเชก เช›เซ‡. เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡?
เชคเชฎเซ‡ เชจเชพเชฎ เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจเชจเชพ เชชเซเชฐเช•เชพเชฐ เชธเชพเชฅเซ‡ เช–เชพเชฒเซ€ TF เชซเชพเช‡เชฒ เชฒเช–เซ‹, เชชเช›เซ€ `เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช†เชฏเชพเชค` เชšเชฒเชพเชตเซ‹ เช…เชจเซ‡ เชธเช‚เชธเชพเชงเชจ ID เชชเชพเชธ เช•เชฐเซ‹. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฆเชพเชคเชพเชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเซ‡ เช›เซ‡, เชกเซ‡เชŸเชพ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ tfstate เชซเชพเช‡เชฒ เชฌเชจเชพเชตเซ‡ เช›เซ‡.
เช…เชนเซ€เช‚ 3 เชธเชฎเชธเซเชฏเชพเช“ เช›เซ‡:
1. เช…เชฎเชจเซ‡ เชซเช•เซเชค tfstate เชซเชพเช‡เชฒ เชฎเชณเซ‡ เช›เซ‡, เช…เชจเซ‡ tf เช–เชพเชฒเซ€ เช›เซ‡, เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เชฎเซ‡เชจเซเชฏเซเช…เชฒเซ€ เชฒเช–เชตเชพเชจเซ€ เช…เชฅเชตเชพ เชคเซ‡เชจเซ‡ tfstate เชฅเซ€ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
2. เชเช• เชธเชฎเชฏเซ‡ เชฎเชพเชคเซเชฐ เชเช• เชธเช‚เชธเชพเชงเชจ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ‡ เชธเชฎเชฐเซเชฅเชจ เช†เชชเชคเซเช‚ เชจเชฅเซ€. เช…เชจเซ‡ เชฎเชพเชฐเซ‡ 250+ เชกเซ‹เชฒ เชธเชพเชฅเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชœเซ‹เชˆเช?
3. เชคเชฎเชพเชฐเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ ID เชœเชพเชฃเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ - เชเชŸเชฒเซ‡ เช•เซ‡, เชคเชฎเชพเชฐเซ‡ เชคเซ‡เชจเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เชฒเชชเซ‡เชŸเซ€ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹เชจเซ€ เชธเซ‚เชšเชฟ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชชเชฐเชฟเชฃเชพเชฎ เช†เช‚เชถเชฟเช• เช›เซ‡ เช…เชจเซ‡ เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชฎเชพเชชเชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชจเชฅเซ€

เชฎเชพเชฐเซ‹ เชจเชฟเชฐเซเชฃเชฏ

เชœเชฐเซ‚เชฐเซ€เชฏเชพเชคเซ‹:
1. เชธเช‚เชธเชพเชงเชจเซ‹ เชฎเชพเชŸเซ‡ tf เช…เชจเซ‡ tfstate เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเชตเชพเชจเซ€ เช•เซเชทเชฎเชคเชพ. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชคเชฎเชพเชฎ เชฌเช•เซ‡เชŸเซเชธ/เชธเชฟเช•เซเชฏเซ‹เชฐเชฟเชŸเซ€ เช—เซเชฐเซ‚เชช/เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‹ เช…เชจเซ‡ เชคเซ‡ `เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฒเชพเชจ` เชชเชฐเชค เช†เชตเซเชฏเซ‹ เช•เซ‡ เชคเซ‡เชฎเชพเช‚ เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เชจเชฅเซ€.
2. เชคเชฎเชพเชฐเซ‡ 2 GCP + AWS เชตเชพเชฆเชณเซ‹เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡
3. เชตเซˆเชถเซเชตเชฟเช• เชธเซ‹เชฒเซเชฏเซเชถเชจ เชœเซ‡ เชฆเชฐ เชตเช–เชคเซ‡ เช…เชชเชกเซ‡เชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเชฐเชณ เช›เซ‡ เช…เชจเซ‡ 3 เชฆเชฟเชตเชธเชจเชพ เช•เชพเชฎ เชฎเชพเชŸเซ‡ เชฆเชฐเซ‡เช• เชธเช‚เชธเชพเชงเชจ เชชเชฐ เชธเชฎเชฏ เชฌเช—เชพเชกเชคเซ‹ เชจเชฅเซ€
4. เชคเซ‡เชจเซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชฌเชจเชพเชตเซ‹ - เชฆเชฐเซ‡เช•เชจเซ‡ เชธเชฎเชพเชจ เชธเชฎเชธเซเชฏเชพ เช›เซ‡

เช—เซ‹ เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชเชŸเชฒเซ‡ เชœ เชฎเชจเซ‡ เชคเซ‡ เช—เชฎเซ‡ เช›เซ‡, เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ HCL เชซเชพเช‡เชฒเซ‹ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€ เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เชฅเชพเชฏ เช›เซ‡ + เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฎเชพเช‚ เช˜เชฃเซ‹ เช•เซ‹เชก เชœเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.

เชชเชพเชฅ

เชชเซเชฐเชฅเชฎ เชชเซเชฐเชฏเชพเชธ
เชฎเซ‡เช‚ เชเช• เชธเชฐเชณ เชธเช‚เชธเซเช•เชฐเชฃเชฅเซ€ เชถเชฐเซ‚เช†เชค เช•เชฐเซ€. เชœเชฐเซ‚เชฐเซ€ เชธเช‚เชธเชพเชงเชจ เชฎเชพเชŸเซ‡ SDK เชฆเซเชตเชพเชฐเชพ เช•เซเชฒเชพเช‰เชกเชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเชตเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฎเชพเชŸเซ‡ เชซเซ€เชฒเซเชกเชฎเชพเช‚ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเซเช‚. เชธเซเชฐเช•เซเชทเชพ เชœเซ‚เชฅ เชชเชฐ เชชเซเชฐเชฏเชพเชธ เชคเชฐเชค เชœ เชฎเซƒเชคเซเชฏเซ เชชเชพเชฎเซเชฏเซ‹ เช•เชพเชฐเชฃ เช•เซ‡ เชฎเชจเซ‡ เชซเช•เซเชค เชธเซเชฐเช•เซเชทเชพ เชœเซ‚เชฅเชจเซ‡ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ 1.5 เชฆเชฟเชตเชธ เชชเชธเช‚เชฆ เชจ เชนเชคเชพ (เช…เชจเซ‡ เชคเซเชฏเชพเช‚ เช˜เชฃเชพ เชฌเชงเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เช›เซ‡). เชฒเชพเช‚เชฌเชพ เชธเชฎเชฏ เชธเซเชงเซ€ เช…เชจเซ‡ เชชเช›เซ€ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เชฌเชฆเชฒเซ€/เช‰เชฎเซ‡เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡

เชฌเซ€เชœเซ‹ เชชเซเชฐเชฏเชพเชธ
เชตเชฐเซเชฃเชตเซ‡เชฒ เชตเชฟเชšเชพเชฐเชจเชพ เช†เชงเชพเชฐเซ‡ เช…เชนเซ€เช‚. เชฎเชพเชคเซเชฐ เชฒเซ‹ เช…เชจเซ‡ tfstate เชจเซ‡ tf เชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเซ‹. เชฌเชงเชพ เชกเซ‡เชŸเชพ เชคเซเชฏเชพเช‚ เช›เซ‡ เช…เชจเซ‡ เช•เซเชทเซ‡เชคเซเชฐเซ‹ เชธเชฎเชพเชจ เช›เซ‡. เช˜เชฃเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เชฎเชพเชŸเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ tfstate เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฎเซ‡เชณเชตเชตเซเช‚?? เช† เชคเซ‡ เช›เซ‡ เชœเซเชฏเชพเช‚ `เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฐเชฟเชซเซเชฐเซ‡เชถ` เช†เชฆเซ‡เชถ เชฌเชšเชพเชตเชฎเชพเช‚ เช†เชตเซเชฏเซ‹. เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชคเชฎเชพเชฎ เชธเช‚เชธเชพเชงเชจเซ‹ tfstate เชฎเชพเช‚ เชฒเซ‡ เช›เซ‡ เช…เชจเซ‡ ID เชฆเซเชตเชพเชฐเชพ, เชคเซ‡เชฎเชจเชพ เชชเชฐเชจเซ‹ เชกเซ‡เชŸเชพ เช–เซ‡เช‚เชšเซ‡ เช›เซ‡ เช…เชจเซ‡ tfstate เชชเชฐ เชฌเชงเซเช‚ เชฒเช–เซ‡ เช›เซ‡. เชเชŸเชฒเซ‡ เช•เซ‡, เชซเช•เซเชค เชจเชพเชฎ เช…เชจเซ‡ ID เชธเชพเชฅเซ‡ เช–เชพเชฒเซ€ tfstate เชฌเชจเชพเชตเซ‹, `terraform refresh` เชšเชฒเชพเชตเซ‹ เช…เชจเซ‡ เชชเช›เซ€ เช…เชฎเชจเซ‡ เชธเช‚เชชเซ‚เชฐเซเชฃ tfstate เชฎเชณเซ‡ เช›เซ‡. เชนเซเชฐเซ‡!
เชนเชตเซ‡ เชšเชพเชฒเซ‹ tfstate to tf เชฎเชพเชŸเซ‡ เช•เชจเซเชตเชฐเซเชŸเชฐ เชฒเช–เชตเชพเชจเซ€ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชชเซ‹เชฐเซเชจเซ‹เช—เซเชฐเชพเชซเซ€ เช•เชฐเซ€เช. เชœเซ‡เชฎเชฃเซ‡ เช•เซเชฏเชพเชฐเซ‡เชฏ tfstate เชตเชพเช‚เชšเซเชฏเซเช‚ เชจเชฅเซ€ เชคเซ‡เชฎเชจเชพ เชฎเชพเชŸเซ‡ เชคเซ‡ JSON เช›เซ‡, เชชเชฐเช‚เชคเซ เช–เชพเชธ.
เช…เชนเซ€เช‚ เชคเซ‡เชจเชพ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชญเชพเช— เชฒเช•เซเชทเชฃเซ‹ เช›เซ‡

 "attributes": {
                            "id": "default/backend-logging-load-deployment",
                            "metadata.#": "1",
                            "metadata.0.annotations.%": "0",
                            "metadata.0.generate_name": "",
                            "metadata.0.generation": "24",
                            "metadata.0.labels.%": "1",
                            "metadata.0.labels.app": "backend-logging",
                            "metadata.0.name": "backend-logging-load-deployment",
                            "metadata.0.namespace": "default",
                            "metadata.0.resource_version": "109317427",
                            "metadata.0.self_link": "/apis/apps/v1/namespaces/default/deployments/backend-logging-load-deployment",
                            "metadata.0.uid": "300ecda1-4138-11e9-9d5d-42010a8400b5",
                            "spec.#": "1",
                            "spec.0.min_ready_seconds": "0",
                            "spec.0.paused": "false",
                            "spec.0.progress_deadline_seconds": "600",
                            "spec.0.replicas": "1",
                            "spec.0.revision_history_limit": "10",
                            "spec.0.selector.#": "1",

เชคเซเชฏเชพเช‚ เช›เซ‡:
1. เช†เชˆเชกเซ€ - เชถเชฌเซเชฆเชฎเชพเชณเชพ
2. เชฎเซ‡เชŸเชพเชกเซ‡เชŸเชพ - เช•เชฆ 1 เชจเซ€ เชเชฐเซ‡ เช…เชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชซเซ€เชฒเซเชกเซเชธ เชธเชพเชฅเซ‡เชจเซเช‚ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชœเซ‡ เชจเซ€เชšเซ‡ เชตเชฐเซเชฃเชตเซ‡เชฒ เช›เซ‡
3. เชธเซเชชเซ‡เช• - เช•เชฆ 1 เชจเซเช‚ เชนเซ‡เชถ เช…เชจเซ‡ เช•เซ€, เชคเซ‡เชฎเชพเช‚ เชฎเซ‚เชฒเซเชฏ
เชŸเซ‚เช‚เช•เชฎเชพเช‚, เชเช• เชฎเชจเซ‹เชฐเช‚เชœเช• เชซเซ‹เชฐเซเชฎเซ‡เชŸ, เชฌเชงเซเช‚ เช˜เชฃเชพ เชธเซเชคเชฐเซ‹ เชŠเช‚เชกเชพ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡

                   "spec.#": "1",
                            "spec.0.min_ready_seconds": "0",
                            "spec.0.paused": "false",
                            "spec.0.progress_deadline_seconds": "600",
                            "spec.0.replicas": "1",
                            "spec.0.revision_history_limit": "10",
                            "spec.0.selector.#": "1",
                            "spec.0.selector.0.match_expressions.#": "0",
                            "spec.0.selector.0.match_labels.%": "1",
                            "spec.0.selector.0.match_labels.app": "backend-logging-load",
                            "spec.0.strategy.#": "0",
                            "spec.0.template.#": "1",
                            "spec.0.template.0.metadata.#": "1",
                            "spec.0.template.0.metadata.0.annotations.%": "0",
                            "spec.0.template.0.metadata.0.generate_name": "",
                            "spec.0.template.0.metadata.0.generation": "0",
                            "spec.0.template.0.metadata.0.labels.%": "1",
                            "spec.0.template.0.metadata.0.labels.app": "backend-logging-load",
                            "spec.0.template.0.metadata.0.name": "",
                            "spec.0.template.0.metadata.0.namespace": "",
                            "spec.0.template.0.metadata.0.resource_version": "",
                            "spec.0.template.0.metadata.0.self_link": "",
                            "spec.0.template.0.metadata.0.uid": "",
                            "spec.0.template.0.spec.#": "1",
                            "spec.0.template.0.spec.0.active_deadline_seconds": "0",
                            "spec.0.template.0.spec.0.container.#": "1",
                            "spec.0.template.0.spec.0.container.0.args.#": "3",

เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชœเซ‹ เช•เซ‹เชˆเชจเซ‡ เช‡เชจเซเชŸเชฐเชตเซเชฏเซ‚ เชฎเชพเชŸเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฟเช‚เช— เชธเชฎเชธเซเชฏเชพ เชœเซ‹เชˆเชคเซ€ เชนเซ‹เชฏ, เชคเซ‹ เชคเซ‡เชฎเชจเซ‡ เช† เช•เชพเชฐเซเชฏ เชฎเชพเชŸเซ‡ เชชเชพเชฐเซเชธเชฐ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เช•เชนเซ‹ :)
เชญเซ‚เชฒเซ‹ เชตเชฟเชจเชพ เชชเชพเชฐเซเชธเชฐ เชฒเช–เชตเชพเชจเชพ เช˜เชฃเชพ เชชเซเชฐเชฏเชคเซเชจเซ‹ เชชเช›เซ€, เชฎเชจเซ‡ เชคเซ‡เชจเซ‹ เชญเชพเช— เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เช•เซ‹เชกเชฎเชพเช‚ เชฎเชณเซเชฏเซ‹, เช…เชจเซ‡ เชธเซŒเชฅเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชญเชพเช—. เช…เชจเซ‡ เชฌเชงเซเช‚ เชฌเชฐเชพเชฌเชฐ เช•เชพเชฎ เช•เชฐเชคเซเช‚ เชฒเชพเช—เชคเซเช‚ เชนเชคเซเช‚

เชคเซเชฐเชฃ เชชเซเชฐเชฏเชพเชธ
เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฆเชพเชคเชพเช“ เชฆเซเชตเชฟเชธเช‚เช—เซ€ เช›เซ‡ เชœเซ‡เชฎเชพเช‚ เช•เซเชฒเชพเช‰เชก API เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชคเชฎเชพเชฎ เชธเช‚เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ เชคเชฐเซเช• เชธเชพเชฅเซ‡เชจเซ‹ เช•เซ‹เชก เชนเซ‹เชฏ เช›เซ‡. เชฆเชฐเซ‡เช• เช•เซเชฒเชพเช‰เชกเชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชชเซเชฐเชฆเชพเชคเชพ เชนเซ‹เชฏ เช›เซ‡ เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซ‹เชคเซ‡ เชœ เชคเซ‡เชจเซ‡ เชคเซ‡เชจเชพ RPC เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชฆเซเชตเชพเชฐเชพ เชฌเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช“ เชตเชšเซเชšเซ‡ เชฌเซ‹เชฒเชพเชตเซ‡ เช›เซ‡.
เชนเชตเซ‡ เชฎเซ‡เช‚ RPC เช•เซ‰เชฒเซเชธ เชฆเซเชตเชพเชฐเชพ เชธเซ€เชงเซ‹ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฆเชพเชคเชพเช“เชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชคเซ‡ เชธเซเช‚เชฆเชฐ เชฐเซ€เชคเซ‡ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช…เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฆเชพเชคเชพเช“เชจเซ‡ เชจเชตเชพเชฎเชพเช‚ เชฌเชฆเชฒเชตเชพ เช…เชจเซ‡ เช•เซ‹เชก เชฌเชฆเชฒเซเชฏเชพ เชตเชฟเชจเชพ เชจเชตเซ€ เชธเซเชตเชฟเชงเชพเช“ เชฎเซ‡เชณเชตเชตเชพเชจเซเช‚ เชถเช•เซเชฏ เชฌเชจเชพเชตเซเชฏเซเช‚. เชคเซ‡ เชชเชฃ เชคเชพเชฐเชฃ เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ tfstate เชฎเชพเช‚ เชคเชฎเชพเชฎ เช•เซเชทเซ‡เชคเซเชฐเซ‹ tf เชฎเชพเช‚ เชจ เชนเซ‹เชตเชพ เชœเซ‹เชˆเช, เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชถเซ‹เชงเซ€ เชถเช•เซ‹ เช›เซ‹? เชซเช•เซเชค เชคเชฎเชพเชฐเชพ เชชเซเชฐเชฆเชพเชคเชพเชจเซ‡ เช† เชตเชฟเชถเซ‡ เชชเซ‚เช›เซ‹. เชชเช›เซ€ เชจเชฟเชฏเชฎเชฟเชค เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“เชจเซ‡ เชเชธเซ‡เชฎเซเชฌเชฒ เช•เชฐเชตเชพเชจเซ€ เชฌเซ€เชœเซ€ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชชเซ‹เชฐเซเชจเซ‹เช—เซเชฐเชพเชซเซ€ เชถเชฐเซ‚ เชฅเชˆ, tfstate เชจเซ€ เช…เช‚เชฆเชฐ เชคเชฎเชพเชฎ เชธเซเชคเชฐเซ‡ เชŠเช‚เชกเชพเชฃเชชเซ‚เชฐเซเชตเช• เช•เซเชทเซ‡เชคเซเชฐเซ‹ เชถเซ‹เชงเชตเชพ.

เช…เช‚เชคเซ‡, เช…เชฎเชจเซ‡ เชเช• เช‰เชชเชฏเซ‹เช—เซ€ CLI เชŸเซ‚เชฒ เชฎเชณเซเชฏเซเช‚ เชœเซ‡ เชคเชฎเชพเชฎ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชชเซเชฐเชฆเชพเชคเชพเช“ เชฎเชพเชŸเซ‡ เชธเชพเชฎเชพเชจเซเชฏ เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชงเชฐเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชคเชฎเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เชเช• เชจเชตเซเช‚ เช‰เชฎเซ‡เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เช‰เชชเชฐเชพเช‚เชค, เชธเช‚เชธเชพเชงเชจเซ‹ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เชฅเซ‹เชกเซ‹ เช•เซ‹เชก เชฒเชพเช—เซ‡ เช›เซ‡. เช‰เชชเชฐเชพเช‚เชค เชคเชฎเชพเชฎ เชชเซเชฐเช•เชพเชฐเชจเซ€ เช—เซเชกเซ€เช เชœเซ‡เชฎ เช•เซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชตเชšเซเชšเซ‡เชจเชพ เชœเซ‹เชกเชพเชฃเซ‹. เช…เชฒเชฌเชคเซเชค, เชคเซเชฏเชพเช‚ เช˜เชฃเซ€ เชœเซเชฆเซ€ เชœเซเชฆเซ€ เชธเชฎเชธเซเชฏเชพเช“ เชนเชคเซ€ เชœเซ‡เชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€ เชถเช•เชพเชคเซเช‚ เชจเชฅเซ€.
เชฎเซ‡เช‚ เชชเซเชฐเชพเชฃเซ€เชจเซเช‚ เชจเชพเชฎ เชŸเซ‡เชฐเชพเชซเซ‹เชฎเชฐ เชฐเชพเช–เซเชฏเซเช‚ เช›เซ‡.

เช…เช‚เชคเชฟเชฎ

เชŸเซ‡เชฐเชพเชซเซ‹เชฎเชฐเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡, เช…เชฎเซ‡ เชฌเซ‡ เชตเชพเชฆเชณเซ‹เชฎเชพเช‚เชฅเซ€ tf + tfstate เช•เซ‹เชกเชจเซ€ 500-700 เชนเชœเชพเชฐ เชฐเซ‡เช–เชพเช“ เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€. เช•เซ‹เชก เช†เชˆเชกเชฟเชฏเชพเช เชคเชฐเซ€เช•เซ‡ เชถเซเชฐเซ‡เชทเซเช  เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐเชจเซ€ เชœเซ‡เชฎ เช…เชฎเซ‡ เชฒเซ‡เช—เชธเซ€ เชตเชธเซเชคเซเช“ เชฒเชˆ เชถเช•เซเชฏเชพ เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชฆเซเชตเชพเชฐเชพ เชคเซ‡เชฎเชจเซ‡ เชธเซเชชเชฐเซเชถ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชตเชฟเชถเชพเชณ เช•เซเชฒเชพเช‰เชก เชฒเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชตเชฐเซเช•เชฐ เชซเชพเช‡เชฒเซ‹เชจเชพ เชฐเซ‚เชชเชฎเชพเช‚ เชŸเซ€เชฎ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‹ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฎเชพเชคเซเชฐ เชœเชพเชฆเซ เช›เซ‡. เช…เชจเซ‡ เชชเช›เซ€ grep/replace/git เชตเช—เซ‡เชฐเซ‡.

เชฎเซ‡เช‚ เชคเซ‡เชจเซ‡ เช•เชพเช‚เชธเช•เซ‹ เช•เชฐเซเชฏเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เซเชฐเชฎเชฎเชพเช‚ เชฎเซ‚เช•เซเชฏเซ‹, เชชเชฐเชตเชพเชจเช—เซ€ เชฎเชณเซ€. เช—เซเชฐเซเชตเชพเชฐเซ‡ (02.05.19/XNUMX/XNUMX) เชฆเชฐเซ‡เช• เชฎเชพเชŸเซ‡ GitHub เชชเชฐ เชฐเชฟเชฒเซ€เช. github.com/GoogleCloudPlatform/terraformer
เช“เชชเชจเชธเซเชŸเซ…เช• เช…เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเชพเชŸเซ‡ เชธเชชเซ‹เชฐเซเชŸ เช‰เชฎเซ‡เชฐเชตเชพ เชฎเชพเชŸเซ‡ 600 เชธเซเชŸเชพเชฐเซเชธ, 2 เชชเซเชฒ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเซเชฐเชพเชชเซเชค เชฅเชˆ เช›เซ‡. เชธเชพเชฐเซ‹ เชชเซเชฐเชคเชฟเชญเชพเชต. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฒเซ‹เช•เซ‹ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡
เชนเซเช‚ เชฆเชฐเซ‡เช•เชจเซ‡ เชธเชฒเชพเชน เช†เชชเซเช‚ เช›เซเช‚ เช•เซ‡ เชœเซ‡เช“ เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเช‚เช—เซ‡ เช›เซ‡ เช…เชจเซ‡ เช† เชฎเชพเชŸเซ‡ เชฌเชงเซเช‚ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพเชจเซเช‚ เชจเชฅเซ€.
เชฎเชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“, เชฎเซเชฆเซเชฆเชพเช“, เชคเชพเชฐเชพเช“ เช–เซ‡เช‚เชšเชตเชพเชฎเชพเช‚ เช†เชจเช‚เชฆ เชฅเชถเซ‡.

เชกเซ‡เชฎเซ‹
เชŸเซ‡เชฐเชพเชซเซ‹เชฐเซเชฎเชฐ - เชˆเชจเซเชซเซเชฐเชพเชธเซเชŸเซเชฐเช•เซเชšเชฐ เชŸเซ เช•เซ‹เชก

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹