使用 lambda 函数备份 documentdb
documentdb backup using lambda function
我正在尝试使用 Lambda 备份 documentDB。我可以使用以下代码将 S3 存储桶中的备份作为 json 文件,但我很少担心需要专家建议的地方。
- 使用 AWS Lambda 备份许多集合可能需要很长时间,所以我想接近它触发一些代码并上传到 S3 存储桶,一旦上传成功,它会向我发送更新作为集合中的状态。
- 如何将备份作为 bson 格式并上传到 S3 存储桶中。
我正在使用以下代码并能够成功上传 json 作为 s3 上的备份。
def lambda_handler(event, context):
bucket_folder = 'XXXXXXX'
bucket_name = 'XXXXXXXXX'
database=get_database_from_connection_string()
json_options = JSONOptions(datetime_representation=DatetimeRepresentation.ISO8601)
for collection_name in database.list_collection_names():
print(f"Collection: {collection_name}")
with open(temp_filepath, "w") as f:
for doc in database.get_collection(collection_name).find():
f.write(dumps(doc, json_options=json_options) + "\n")
s3.Bucket(bucket_name).upload_file(
temp_filepath, "{}/{}.json".format(bucket_folder, collection_name)
)
我正在尝试使用 Lambda 备份 documentDB。我可以使用以下代码将 S3 存储桶中的备份作为 json 文件,但我很少担心需要专家建议的地方。
- 使用 AWS Lambda 备份许多集合可能需要很长时间,所以我想接近它触发一些代码并上传到 S3 存储桶,一旦上传成功,它会向我发送更新作为集合中的状态。
- 如何将备份作为 bson 格式并上传到 S3 存储桶中。
我正在使用以下代码并能够成功上传 json 作为 s3 上的备份。
def lambda_handler(event, context):
bucket_folder = 'XXXXXXX'
bucket_name = 'XXXXXXXXX'
database=get_database_from_connection_string()
json_options = JSONOptions(datetime_representation=DatetimeRepresentation.ISO8601)
for collection_name in database.list_collection_names():
print(f"Collection: {collection_name}")
with open(temp_filepath, "w") as f:
for doc in database.get_collection(collection_name).find():
f.write(dumps(doc, json_options=json_options) + "\n")
s3.Bucket(bucket_name).upload_file(
temp_filepath, "{}/{}.json".format(bucket_folder, collection_name)
)