เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ 4 เชตเชฐเซเชท เชชเชนเซเชฒเชพ. เชคเซเชฏเชพเชฐเชฅเซ เชฎเซเช เชเชฃเชพ เชฌเชงเชพ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เชคเซเชกเซเชฏเชพ เชเซ, เชคเซ เชชเชฃ เชเซ เชชเชนเซเชฒเชพเชฅเซ เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เชนเชคเชพ. เชชเชฐเชเชคเซ เชเซเชฏเชพเชฐเซ เชชเชฃ เชนเซเช เชเชเชเช เชเชกเชฌเชก เชเชฐเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เชนเซเช เชเชเชเช เชจเชตเซเช เชถเซเชเซเชฏเซ เชเซเช. เช เช เชจเซเชญเชต เชฆเซเชตเชพเชฐเชพ, เชนเซเช เชถเซเชเซเชฒเชพ เชเซเชเชฒเชพเช เชธเซเชฅเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชชเชพเช เชถเซเชฐ เชเชฐเซเชถ.
เชชเชพเช 1: เชคเซเชฎเชจเซ เชเชฎเชพเชตเชคเชพ เชชเชนเซเชฒเชพ เชซเซเชฐเชซเชพเชฐเซเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซ
เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเชพ เชชเชเซ เชคเชฐเชค เช เชฎเซเช เช เชชเชพเช เชถเซเชเซเชฏเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ. เชฎเชจเซ เชฏเชพเชฆ เชจเชฅเซ เชเซ เชฎเซเช เชฌเชฐเชพเชฌเชฐ เชถเซเช เชคเซเชกเซเชฏเซเช เชนเชคเซเช, เชชเชฐเชเชคเซ เชฎเชจเซ เชเซเชเซเชเชธเชชเชฃเซ เชฏเชพเชฆ เชเซ เชเซ เชฎเซเช เชเชฆเซเชถเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเชคเซ aws เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ เช เชชเชกเซเช. เช เชเชฆเซเชถ เชคเซเชจเชพเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเชจเชพเชฐ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชเซเชเชชเชฃ เชฎเชพเชจเซเชฏเชคเชพ เชตเชเชฐ เชเซเชฎเซเชชเชฒเซเชเชจเซ เชธเชฐเชณ เชฐเซเชคเซ เชฐเซเชฒเชเชเช เชเชฐเซ เชเซ. เชฎเชจเซ เชจเชฅเซ เชฒเชพเชเชคเซเช เชเซ เชคเชฎเชพเชฐเซ เชฌเชงเชพ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชเชฎเชพเชตเชคเชพ เชชเชนเซเชฒเชพ เชถเชพ เชฎเชพเชเซ เชชเชฐเซเชเซเชทเชฃ เชเชฐเชตเซเช เชเซเชเช เชคเซ เชฎเชพเชเซ เชเซเช เชธเชฎเชเซเชคเซเชจเซ เชเชฐเซเชฐ เชเซ.
เช เชจเชฟเชทเซเชซเชณเชคเชพ เชชเชเซ, เชนเซเช เชคเชฐเชค เช เชฌเชฆเชฒเชพเช เชเชฏเซ เชเชฎเชพเชตเช เชชเชพเชเชชเชฒเชพเชเชจ, เช เชชเชกเซเช เชเชฆเซเชถเชจเซ เชเชฆเซเชถ เชธเชพเชฅเซ เชฌเชฆเชฒเซเชจเซ เชฌเชจเชพเชตเซ-เชชเชฐเชฟเชตเชฐเซเชคเชจ-เชธเซเช
# OPERATION is either "UPDATE" or "CREATE"
changeset_id=$(aws cloudformation create-change-set
--change-set-name "$CHANGE_SET_NAME"
--stack-name "$STACK_NAME"
--template-body "$TPL_PATH"
--change-set-type "$OPERATION"
--parameters "$PARAMETERS"
--output text
--query Id)
aws cloudformation wait
change-set-create-complete --change-set-name "$changeset_id"
เชเชเชตเชพเชฐ เชเซเชจเซเชเชธเซเช เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซ, เชคเซ เชนเชพเชฒเชจเชพ เชธเซเชเซเช เชชเชฐ เชเซเช เช
เชธเชฐ เชเชฐเชคเซเช เชจเชฅเซ. เช
เชชเชกเซเช เชเชฆเซเชถเชฅเซ เชตเชฟเชชเชฐเซเชค, เชเซเชจเซเชเชธเซเช เช
เชญเชฟเชเชฎ เชตเชพเชธเซเชคเชตเชฟเช เชเชฎเชพเชตเชเชจเซ เชเซเชฐเชฟเชเชฐ เชเชฐเชคเซเช เชจเชฅเซ. เชคเซเชจเชพ เชฌเชฆเชฒเซ, เชคเซ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเซเชเชฟ เชฌเชจเชพเชตเซ เชเซ เชเซเชจเซ เชคเชฎเซ เชเชฎเชพเชตเช เชชเชนเซเชฒเชพเช เชธเชฎเซเชเซเชทเชพ เชเชฐเซ เชถเชเซ เชเซ. เชคเชฎเซ aws เชเชจเซเชธเซเชฒ เชเชจเซเชเชฐเชซเซเชธเชฎเชพเช เชซเซเชฐเชซเชพเชฐเซ เชเซเช เชถเชเซ เชเซ. เชชเชฐเชเชคเซ เชเซ เชคเชฎเซ เชเชฐเซ เชถเชเซ เชคเซ เชฌเชงเซเช เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเชตเชพเชจเซเช เชชเชธเชเชฆ เชเชฐเซ เชเซ, เชคเซ เชชเชเซ CLI เชฎเชพเช เชคเซเชฎเชจเซ เชคเชชเชพเชธเซ:
# this command is presented only for demonstrational purposes.
# the real command should take pagination into account
aws cloudformation describe-change-set
--change-set-name "$changeset_id"
--query 'Changes[*].ResourceChange.{Action:Action,Resource:ResourceType,ResourceId:LogicalResourceId,ReplacementNeeded:Replacement}'
--output table
เช เชเชฆเซเชถ เชจเซเชเซเชจเชพ เชเซเชตเซเช เช เชเชเชเชชเซเช เชเชคเซเชชเชจเซเชจ เชเชฐเชตเซเช เชเซเชเช:
--------------------------------------------------------------------
| DescribeChangeSet |
+---------+--------------------+----------------------+------------+
| Action | ReplacementNeeded | Resource | ResourceId |
+---------+--------------------+----------------------+------------+
| Modify | True | AWS::ECS::Cluster | MyCluster |
| Replace| True | AWS::RDS::DBInstance| MyDB |
| Add | None | AWS::SNS::Topic | MyTopic |
+---------+--------------------+----------------------+------------+
เชเซเชฏเชพเช เชเซเชฐเชฟเชฏเชพ เชเซ เชคเซเชฏเชพเช เชซเซเชฐเชซเชพเชฐเซ เชชเชฐ เชตเชฟเชถเซเชท เชงเซเชฏเชพเชจ เชเชชเซ เชฌเชฆเชฒเซ, เชเชพเชขเซ เชจเชพเชเซ เช เชฅเชตเชพ เชเซเชฏเชพเช เชฐเชฟเชชเซเชฒเซเชธเชฎเซเชจเซเชเชจเซ เชเชฐเซเชฐ เชเซ - เชธเชพเชเซเช. เช เชธเซเชฅเซ เชเชคเชฐเชจเชพเช เชซเซเชฐเชซเชพเชฐเซ เชเซ เช เชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เชฎเชพเชนเชฟเชคเซเชจเซ เชเซเช เชคเชฐเชซ เชฆเซเชฐเซ เชเชพเชฏ เชเซ.
เชเชเชตเชพเชฐ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเชฎเซเชเซเชทเชพ เชฅเช เชเชพเชฏ เชคเซ เชชเชเซ, เชคเซเช เชคเซเชจเชพเชค เชเชฐเซ เชถเชเชพเชฏ เชเซ
aws cloudformation execute-change-set --change-set-name "$changeset_id"
operation_lowercase=$(echo "$OPERATION" | tr '[:upper:]' '[:lower:]')
aws cloudformation wait "stack-${operation_lowercase}-complete"
--stack-name "$STACK_NAME"
เชชเชพเช 2: เชธเซเชเซเชเชซเซเชฒ เชธเชเชธเชพเชงเชจเซเชจเซ เชฌเชฆเชฒเชตเชพ เช เชฅเชตเชพ เชฆเซเชฐ เชเชฐเชตเชพเชฅเซ เชฐเซเชเชตเชพ เชฎเชพเชเซ เชธเซเชเซเช เชจเซเชคเชฟเชจเซ เชเชชเชฏเซเช เชเชฐเซ
เชเซเชเชฒเซเชเชตเชพเชฐ เชซเชเซเชค เชซเซเชฐเชซเชพเชฐเซ เชเซเชตเซเช เชชเซเชฐเชคเซเช เชจเชฅเซ. เชเชชเชฃเซ เชฌเชงเชพ เชฎเชพเชฃเชธ เชเซเช เช เชจเซ เชเชชเชฃเซ เชฌเชงเชพ เชญเซเชฒเซ เชเชฐเซเช เชเซเช. เช เชฎเซ เชเซเชจเซเชเชธเซเชเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช เชคเซเชจเชพ เชฅเซเชกเชพ เชธเชฎเชฏ เชชเชเซ, เชฎเชพเชฐเชพ เชธเชพเชฅเซ เชเซเชฒเชพเชกเซเช เช เชเชพเชฃเชคเชพเช เช เชเช เชเชฎเชพเชตเช เชเชฐเซ เชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชกเซเชเชพเชฌเซเช เช เชชเชกเซเช เชฅเชฏเซเช. เชเชเชเชชเชฃ เชเชฐเชพเชฌ เชฅเชฏเซเช เชจเชฅเซ เชเชพเชฐเชฃ เชเซ เชคเซ เชเช เชชเชฐเซเชเซเชทเชฃ เชตเชพเชคเชพเชตเชฐเชฃ เชนเชคเซเช.
เชญเชฒเซ เช เชฎเชพเชฐเซ เชธเซเชเซเชฐเชฟเชชเซเชเซเช เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเซเชเชฟ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซ เช เชจเซ เชชเซเชทเซเชเชฟ เชฎเชพเชเซ เชชเซเชเซเชฏเซเช, เชฌเชฆเชฒเซ เชฌเชฆเชฒเซ เช เชตเชเชฃเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเชพเชฐเชฃ เชเซ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเซเชเชฟ เชเชเชฒเซ เชฎเซเชเซ เชนเชคเซ เชเซ เชคเซ เชธเซเชเซเชฐเซเชจ เชชเชฐ เชซเชฟเช เชจ เชนเชคเซ. เช เชจเซ เชชเชฐเซเชเซเชทเชฃ เชตเชพเชคเชพเชตเชฐเชฃเชฎเชพเช เช เชเช เชธเชพเชฎเชพเชจเซเชฏ เช เชชเชกเซเช เชนเซเชตเชพเชฅเซ, เชซเซเชฐเชซเชพเชฐเซ เชชเชฐ เชตเชงเซ เชงเซเชฏเชพเชจ เชเชชเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชจ เชนเชคเซเช.
เชเชตเชพ เชธเชเชธเชพเชงเชจเซ เชเซ เชเซเชจเซ เชคเชฎเซ เชเซเชฏเชพเชฐเซเชฏ เชฌเชฆเชฒเชตเชพ เช
เชฅเชตเชพ เชฆเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเชเชคเชพ เชจเชฅเซ. เช เชธเซเชเซเชเชซเซเชฒ เชธเซเชตเชพเช เชเซ, เชเซเชฎ เชเซ RDS เชกเซเชเชพเชฌเซเช เชเชจเซเชธเซเชเชจเซเชธ เช
เชฅเชตเชพ เชเชฒเชพเชธเซเชเชฟเชเชธเชฐเซเช เชเซเชฒเชธเซเชเชฐ, เชตเชเซเชฐเซ. เชเซ เชเชชเชฐเซเชถเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซเชฏเซเช เชนเซเชฏ เชคเซ เชเชตเชพ เชธเชเชธเชพเชงเชจเชจเซ เชเชพเชขเซ เชจเชพเชเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ เชคเซ aws เชเชชเชฎเซเชณเซ เชเชฎเชพเชตเชเชจเซ เชเชจเชเชพเชฐ เชเชฐเซ เชคเซ เชธเชพเชฐเซเช เชฐเชนเซเชถเซ. เชธเชฆเชญเชพเชเซเชฏเซ, เช เชเชฐเชตเชพ เชฎเชพเชเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ เชชเชพเชธเซ เชฌเชฟเชฒเซเช-เชเชจ เชฐเซเชค เชเซ. เชเชจเซ เชธเซเชเซเช เชชเซเชฒเชฟเชธเซ เชเชนเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เช
เชจเซ เชคเชฎเซ เชคเซเชจเชพ เชตเชฟเชถเซ เชตเชงเซ เชตเชพเชเชเซ เชถเชเซ เชเซ
STACK_NAME=$1
RESOURCE_ID=$2
POLICY_JSON=$(cat <<EOF
{
"Statement" : [{
"Effect" : "Deny",
"Action" : [
"Update:Replace",
"Update:Delete"
],
"Principal": "*",
"Resource" : "LogicalResourceId/$RESOURCE_ID"
}]
}
EOF
)
aws cloudformation set-stack-policy --stack-name "$STACK_NAME"
--stack-policy-body "$POLICY_JSON"
เชชเชพเช 3: เชเซเชชเซเชค เชชเชฐเชฟเชฎเชพเชฃเซ เชธเชพเชฅเซ เชธเซเชเซเช เช เชชเชกเซเช เชเชฐเชคเซ เชตเชเชคเซ UsePreviousValue เชจเซ เชเชชเชฏเซเช เชเชฐเซ
เชเซเชฏเชพเชฐเซ เชคเชฎเซ RDS mysql เชเชจเซเชเชฟเชเซ เชฌเชจเชพเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ AWS เชฎเชพเชเซ เชคเชฎเชพเชฐเซ MasterUsername เช เชจเซ MasterUserPassword เชชเซเชฐเชฆเชพเชจ เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชธเซเชคเซเชฐเซเชค เชเซเชกเชฎเชพเช เชฐเชนเชธเซเชฏเซ เชจ เชฐเชพเชเชตเชพเชจเซเช เชตเชงเซ เชธเชพเชฐเซเช เชนเซเชตเชพเชฅเซ เช เชจเซ เชนเซเช เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชฌเชงเซเช เชธเซเชตเชเชพเชฒเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเชเชคเซ เชนเชคเซ, เชฎเซเช เชเช "เชธเซเชฎเชพเชฐเซเช เชฎเชฟเชเซเชจเชฟเชเชฎ" เช เชฎเชฒเชฎเชพเช เชฎเซเชเซเชฏเซเช เชเซเชฏเชพเช เชเชฎเชพเชตเช เชชเชนเซเชฒเชพเช เชเชณเชเชชเชคเซเชฐเซ s3 เชฎเชพเชเชฅเซ เชฎเซเชณเชตเชตเชพเชฎเชพเช เชเชตเชถเซ, เช เชจเซ เชเซ เชเชณเชเชชเชคเซเชฐเซ เชจ เชฎเชณเซ, เชคเซ เชจเชตเชพ เชเชณเชเชชเชคเซเชฐเซ เชเชจเชฐเซเช เชฅเชพเชฏ เชเซ เช เชจเซ s3 เชฎเชพเช เชธเชเชเซเชฐเชนเชฟเชค.
เช เชเชณเชเชชเชคเซเชฐเซ เชชเชเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ create-change-set เชเชฆเซเชถเชจเซ เชชเชฐเชฟเชฎเชพเชฃเซ เชคเชฐเซเชเซ เชชเชธเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ. เชธเซเชเซเชฐเชฟเชชเซเช เชธเชพเชฅเซ เชชเซเชฐเชฏเซเช เชเชฐเชคเซ เชตเชเชคเซ, เชเชตเซเช เชฌเชจเซเชฏเซเช เชเซ s3 เชธเชพเชฅเซเชจเซเช เชเซเชกเชพเชฃ เชเซเชตเชพเช เชเชฏเซเช, เช เชจเซ เชฎเชพเชฐเซ โเชธเซเชฎเชพเชฐเซเช เชฎเชฟเชเซเชจเชฟเชเชฎโ เช เชคเซเชจเซ เชจเชตเชพ เชเชณเชเชชเชคเซเชฐเซ เชเชจเชฐเซเช เชเชฐเชตเชพเชจเชพ เชธเชเชเซเชค เชคเชฐเซเชเซ เชเชฃเซ.
เชเซ เชฎเซเช เชเชคเซเชชเชพเชฆเชจเชฎเชพเช เช เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช เช เชจเซ เชเชจเซเชเซเชถเชจเชจเซ เชธเชฎเชธเซเชฏเชพ เชซเชฐเซ เชเชตเซ, เชคเซ เชคเซ เชจเชตเชพ เชเชณเชเชชเชคเซเชฐเซ เชธเชพเชฅเซ เชธเซเชเซเชเชจเซ เช เชชเชกเซเช เชเชฐเชถเซ. เช เชเซเชเซเชเชธ เชเชฟเชธเซเชธเชพเชฎเชพเช, เชเชเชเชชเชฃ เชเชฐเชพเชฌ เชฅเชถเซ เชจเชนเซเช. เชเซ เชเซ, เชฎเซเช เช เช เชญเชฟเชเชฎ เชเซเชกเซ เชฆเซเชงเซ เช เชจเซ เชฌเซเชเชพ เชเชเชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเชฏเซเช, เชฎเชพเชคเซเชฐ เชเช เช เชตเชพเชฐ เชเชณเชเชชเชคเซเชฐเซ เชชเซเชฐเชฆเชพเชจ เชเชฐเซเชฏเชพ - เชเซเชฏเชพเชฐเซ เชธเซเชเซเช เชฌเชจเชพเชตเชคเซ เชตเชเชคเซ. เช เชจเซ เชชเชเซเชฅเซ, เชเซเชฏเชพเชฐเซ เชธเซเชเซเชเชจเซ เช เชชเชกเซเช เชเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซเชฏเชพเชฐเซ เชชเซเชฐเชพเชฎเซเชเชฐเชจเชพ เชเซเชชเซเชค เชฎเซเชฒเซเชฏเชจเซ เชเชฒเซเชฒเซเช เชเชฐเชตเชพเชจเซ เชฌเชฆเชฒเซ, เชนเซเช เชซเชเซเชค เชเชชเชฏเซเช เชเชฐเซเชถ UsePreviousValue=true:
aws cloudformation create-change-set
--change-set-name "$CHANGE_SET_NAME"
--stack-name "$STACK_NAME"
--template-body "$TPL_PATH"
--change-set-type "UPDATE"
--parameters "ParameterKey=MasterUserPassword,UsePreviousValue=true"
เชชเชพเช 4: เชฐเซเชฒเชฌเซเช เชเซเช เชตเชฃเซเชจเซ เชเชชเชฏเซเช เชเชฐเซ
เชฎเซเช เชเซเชจเซ เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเซเชฏเซเช เชนเชคเซเช เชคเซ เช เชจเซเชฏ เชเซเชฎเซ เชซเชเชเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจเชเชนเซเชตเชพเชฏ เชเซ เชฐเซเชฒเชฌเซเช เชฐเซเชชเชฐเซเชเชพเชเชเชจ. เชนเซเช เชคเซ เชชเชนเซเชฒเชพเช เชเชตเซเชฏเซ เชจ เชนเชคเซ เช เชจเซ เชเชกเชชเชฅเซ เชธเชฎเชเชพเชฏเซเช เชเซ เชคเซ เชฎเชพเชฐเชพ เชธเซเชเซเชเซเชธเชจเซ เชตเชงเซ เช เชเชกเซ เชฌเชจเชพเชตเชถเซ. เชนเชตเซ เชเซเชฏเชพเชฐเซ เชชเชฃ เชนเซเช เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฎเชพเชฐเชพ เชเซเชกเชจเซ lambda เช เชฅเชตเชพ ECS เชชเชฐ เชเชฎเชพเชตเชคเซ เชนเซเชเช เชคเซเชฏเชพเชฐเซ เชคเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช.
เชคเซ เชเซเชตเซ เชฐเซเชคเซ เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ: เชคเชฎเซ เชธเซเชชเชทเซเช เชเชฐเซ CloudWatch เชเชฒเชพเชฐเซเชฎ เชชเชฐเชฟเชฎเชพเชฃเชฎเชพเช --เชฐเซเชฒเชฌเซเช-เชฐเซเชชเชฐเซเชเชพเชเชเชจเชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเซเชจเซเชเชธเซเช เชฌเชจเชพเชตเซ เชเซ. เชฌเชพเชฆเชฎเชพเช, เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชธเชฎเซเชน เชเชฒเชพเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ aws เชเชเชพเชฎเชพเช เชเชเชพ เชเช เชฎเชฟเชจเชฟเช เชฎเชพเชเซ เชเชฒเชพเชฐเซเชฎเชจเซ เชฎเซเชจเชฟเชเชฐ เชเชฐเซ เชเซ. เชเซ เช เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ เชเชฒเชพเชฐเซเชฎ เชธเซเชฅเชฟเชคเชฟเชจเซ ALARM เชฎเชพเช เชฌเชฆเชฒเซ เชฆเซ เชคเซ เชคเซ เชเชฎเชพเชตเชเชจเซ เชชเชพเชเซเช เชซเซเชฐเชตเซ เชเซ.
เชจเซเชเซ เชจเชฎเซเชจเชพเชจเชพ เช เชตเชคเชฐเชฃเชจเซเช เชเชฆเชพเชนเชฐเชฃ เชเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจเชเซเชฎเชพเช เชนเซเช เชฌเชจเชพเชตเซเช เชเซเช เชตเชพเชฆเชณ เชเชกเชฟเชฏเชพเชณ เชเชฒเชพเชฐเซเชฎ, เชเซ เชเซเชฒเชพเชเชก เชฒเซเชเชฎเชพเช เชญเซเชฒเซเชจเซ เชธเชเชเซเชฏเชพ เชคเชฐเซเชเซ เชเซเชฒเชพเชเชก เชฏเซเชเชฐ เชฎเซเชเซเชฐเชฟเชเชจเซ เชเซเชฐเซ เช เชเชฐเซ เชเซ (เชฎเซเชเซเชฐเชฟเช เชเชจเชพ เชฆเซเชตเชพเชฐเชพ เชเชจเชฐเซเช เชฅเชพเชฏ เชเซ เชฎเซเชเซเชฐเชฟเช เชซเชฟเชฒเซเชเชฐ):
Resources:
# this metric tracks number of errors in the cloudwatch logs. In this
# particular case it's assumed logs are in json format and the error logs are
# identified by level "error". See FilterPattern
ErrorMetricFilter:
Type: AWS::Logs::MetricFilter
Properties:
LogGroupName: !Ref LogGroup
FilterPattern: !Sub '{$.level = "error"}'
MetricTransformations:
- MetricNamespace: !Sub "${AWS::StackName}-log-errors"
MetricName: Errors
MetricValue: 1
DefaultValue: 0
ErrorAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: !Sub "${AWS::StackName}-errors"
Namespace: !Sub "${AWS::StackName}-log-errors"
MetricName: Errors
Statistic: Maximum
ComparisonOperator: GreaterThanThreshold
Period: 1 # 1 minute
EvaluationPeriods: 1
Threshold: 0
TreatMissingData: notBreaching
ActionsEnabled: yes
เชนเชตเซ เชเชฒเชพเชฐเซเชฎ เชคเชฐเซเชเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ เชฐเซเชฒเชฌเซเช เชเซเชฒเชฌเซเชเซเชธ เชเชฒเชพเชตเชคเซ เชตเชเชคเซ เชเซเชฐเชฟเชเชฐ เชเชฐเซ:
ALARM_ARN=$1
ROLLBACK_TRIGGER=$(cat <<EOF
{
"RollbackTriggers": [
{
"Arn": "$ALARM_ARN",
"Type": "AWS::CloudWatch::Alarm"
}
],
"MonitoringTimeInMinutes": 1
}
EOF
)
aws cloudformation create-change-set
--change-set-name "$CHANGE_SET_NAME"
--stack-name "$STACK_NAME"
--template-body "$TPL_PATH"
--change-set-type "UPDATE"
--rollback-configuration "$ROLLBACK_TRIGGER"
เชชเชพเช 5: เชเชพเชคเชฐเซ เชเชฐเซ เชเซ เชคเชฎเซ เชจเชฎเซเชจเชพเชจเซเช เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ เชเชฎเชพเชตเซเชฏเซเช เชเซ
เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ เชเซเชฎเซเชชเชฒเซเชเชจเซเช เชฒเซเชเซเชธเซเช เชตเชฐเซเชเชจ เชเชฐเชคเชพเช เชเชเซเช เชเชฎเชพเชตเชตเซเช เชธเชฐเชณ เชเซ, เชชเชฐเชเชคเซ เชเชฎ เชเชฐเชตเชพเชฅเซ เชเชฃเซเช เชจเซเชเชธเชพเชจ เชฅเชถเซ. เช เช เชฎเชพเชฐเซ เชธเชพเชฅเซ เชเชเชตเชพเชฐ เชฅเชฏเซเช: เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชเชฟเชเชฎเชพเชเชฅเซ เชจเชตเซเชจเชคเชฎ เชซเซเชฐเชซเชพเชฐเซเชจเซ เชเชเชณ เชงเชชเชพเชตเซเชฏเซ เชจ เชนเชคเซ เช เชจเซ เช เชเชพเชฃเชคเชพเช เชธเซเชเซเชเชจเชพ เช เชเชพเชเชจเชพ เชธเชเชธเซเชเชฐเชฃเชจเซ เชเชฎเชพเชตเซเชฏเซเช เชนเชคเซเช. เชเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เช เชธเซเชเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเชคเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชเซ เชกเชพเชเชจเชเชพเชเชฎ เชฅเชฏเซ.
เชถเชพเชเชพเชจเซ เชชเซเชฐเชคเชฟเชฌเชฆเซเชง เชเชฐเชคเชพ เชชเชนเซเชฒเชพ เชคเซ เช เชช เชเซ เชกเซเช เชเซ เชเซ เชเซเชฎ เชคเซ เชเซเชตเชพ เชฎเชพเชเซ เชเซเช เชเชฎเซเชฐเชตเชพ เชเซเชเชฒเซเช เชธเชฐเชณ เชเซ (เชเชฟเช เชคเชฎเชพเชฐเซเช เชธเชเชธเซเชเชฐเชฃ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชธเชพเชงเชจ เชเซ เชเชฎ เชงเชพเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช):
git fetch
HEADHASH=$(git rev-parse HEAD)
UPSTREAMHASH=$(git rev-parse master@{upstream})
if [[ "$HEADHASH" != "$UPSTREAMHASH" ]] ; then
echo "Branch is not up to date with origin. Aborting"
exit 1
fi
เชชเชพเช 6: เชตเซเชนเซเชฒเชจเซ เชซเชฐเซเชฅเซ เชถเซเชงเชถเซ เชจเชนเซเช
เชธเชพเชฅเซ เชเชฎเชพเชตเช เชเชฐเชตเชพ เชเซเชตเซเช เชฒเชพเชเซ เชเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ - เชคเซ เชธเชฐเชณ เชเซ. เชคเชฎเชพเชฐเซ เชซเชเซเชค aws cli เชเชฆเซเชถเซ เชเชฒเชพเชตเชตเชพ เชฎเชพเชเซ bash เชธเซเชเซเชฐเชฟเชชเซเชเซเชจเชพ เชธเชฎเซเชนเชจเซ เชเชฐเซเชฐ เชเซ.
4 เชตเชฐเซเชท เชชเชนเซเชฒเชพเช เชฎเซเช aws เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ เชเซเชฐเชฟเชเช-เชธเซเชเซ เช เชเชฎเชพเชจเซเชก เชคเชฐเซเชเซ เชเชณเชเชพเชคเซ เชธเชฐเชณ เชธเซเชเซเชฐเชฟเชชเซเชเซ เชธเชพเชฅเซ เชถเชฐเซเชเชค เชเชฐเซ เชนเชคเซ. เชเซเชเช เชธเชฎเชฏเชฎเชพเช เชธเซเชเซเชฐเชฟเชชเซเช เชนเชตเซ เชธเชฐเชณ เชฐเชนเซ เชจ เชนเชคเซ. เชถเซเชเซเชฒเชพ เชฆเชฐเซเช เชชเชพเช เซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชตเชงเซ เชจเซ เชตเชงเซ เชเชเชฟเชฒ เชฌเชจเชพเชตเซ เชเซ. เชคเซ เชฎเชพเชคเซเชฐ เชฎเซเชถเซเชเซเชฒ เช เชจเชนเซเช, เชชเชฃ เชญเซเชฒเซเชฅเซ เชญเชฐเซเชฒเซเช เชนเชคเซเช.
เชนเซเช เชนเชพเชฒเชฎเชพเช เชเช เชจเชพเชจเชเชกเชพ เชเชเชเซ เชตเชฟเชญเชพเชเชฎเชพเช เชเชพเชฎ เชเชฐเซเช เชเซเช. เช เชจเซเชญเชต เชฆเชฐเซเชถเชพเชตเซ เชเซ เชเซ เชฆเชฐเซเช เชเซเชฎ เชชเชพเชธเซ เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ เชธเซเชเซเชเซเชธ เชเชฎเชพเชตเชตเชพเชจเซ เชชเซเชคเชพเชจเซ เชฐเซเชค เชเซ. เช เชจเซ เชคเซ เชเชฐเชพเชฌ เชเซ. เชฆเชฐเซเช เชตเซเชฏเชเซเชคเชฟ เชธเชฎเชพเชจ เช เชญเชฟเชเชฎ เช เชชเชจเชพเชตเซ เชคเซ เชธเชพเชฐเซเช เชฐเชนเซเชถเซ. เชธเชฆเชญเชพเชเซเชฏเซ, เชเซเชฒเชพเชเชกเชซเซเชฐเซเชฎเซเชถเชจ เชธเซเชเซเชเซเชธเชจเซ เชเซเช เชตเชตเชพเชฎเชพเช เช เชจเซ เชเซเช เชตเชตเชพเชฎเชพเช เชคเชฎเชพเชฐเซ เชธเชนเชพเชฏ เชเชฐเชตเชพ เชฎเชพเชเซ เชเชฃเชพ เชธเชพเชงเชจเซ เชเชชเชฒเชฌเซเชง เชเซ.
เช เชชเชพเช เชคเชฎเชจเซ เชญเซเชฒเซ เชเชพเชณเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเชถเซ.
เชธเซเชฐเซเชธ: www.habr.com