ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ(成功的唯一秘诀——坚持最终一分钟。——柏拉图)
ㅤㅤㅤ
ㅤㅤㅤ
ㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤㅤ
// ruleName 规则名称
// scheduleExpression 计划表达式 cron(0 5/1 ? * * *) 在每小时的第 0 分钟, 每隔 1 小时, 在上午 05:00 UTC开始
// startWindowMinutes 开始备份时间 8小时后
// completionWindowMinutes 完成备份时间 7小时
// lifecycle 生命周期
// toDeletedAfterDays 多少天后删除
{
"templateRules": [
{
"ruleName": "test_backup_no_schedule_rule_1",
"scheduleExpression": "cron(0 5/1 ? * * *)",
"startWindowMinutes": 480,
"completionWindowMinutes": 10080,
"lifecycle": {
"toDeletedAfterDays": 1
}
}
]
}
和按需备份机制相同,只不过是使用aws的cli脚本来完成备份操作
aws本地环境依赖~/.aws/credentials路径的配置文件,默认为default
aws dynamodb create-backup --table-name Music \
--backup-name MusicBackup
示例代码
// aws 时间表达式文档 https://docs.aws.amazon.com/zh_cn/AmazonCloudWatch/latest/events/ScheduledEvents.html
// serverless 定时器配置文档 https://www.serverless.com/framework/docs/providers/aws/events/schedule
// 初始化aws云连接
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB({
accessKeyId: 'xxx',
secretAccessKey: 'xxxx',
});
const method = async () => {
// 创建备份
const { BackupArn } = await dynamodb.createBackup({
BackupName: 'shadow-status-table-local-202210141214',
TableName: 'shadow-status-table-local'
}).promise();
// 删除备份
await dynamodb.deleteBackup({
BackupArn
}).promise();
// 备份还原
await dynamodb.restoreTableFromBackup({
TargetTableName: 'shadow-status-table-local-code',
BackupArn
}).promise();
// 开启/禁用表时间点备份
const enableTimeBackup = false;
await dynamodb.updateContinuousBackups({
PointInTimeRecoverySpecification: {
PointInTimeRecoveryEnabled: enableTimeBackup
},
TableName: 'shadow-status-table-local-code'
}).promise();
};
method();