I am trying to add a lifecycle rule to a s3 bucket using boto3. But got stuck with following error "Error on adding lifecycle An error occurred (MalformedXML) when calling the PutBucketLifecycleConfiguration operation: The XML you provided was not well-formed or did not validate against our published schema". Any idea why I am getting this error?
Here is the rule which i am trying to create
s3 = boto3.resource("s3")
bucket_lifecycle_configuration = s3.BucketLifecycleConfiguration(bucket_name)
date = date.today()
response = bucket_lifecycle_configuration.put(
LifecycleConfiguration={
'Rules': [
{
'Expiration': {
'Date': datetime(date.year, date.month, date.day),
'ExpiredObjectDeleteMarker': True
},
'ID': 'Move unused bucket to Glacier',
'Prefix': '',
'Status': 'Enabled',
'Transitions': [
{
'Date': datetime(date.year, date.month, date.day),
'StorageClass': 'GLACIER'
}
],
'NoncurrentVersionTransitions': [
{
'NoncurrentDays': 123,
'StorageClass': 'GLACIER'
}
],
'NoncurrentVersionExpiration': {
'NoncurrentDays': 123
},
'AbortIncompleteMultipartUpload': {
'DaysAfterInitiation': 123
}
},
]
}
)