Есть ли у кого-нибудь рабочий пример использования firehose.update_destination
для установки пункта назначения S3 DataFormatConversionConfiguration
?Я следую указаниям в Можно ли указать преобразование формата данных в AWS Cloudformation? , используя boto3 (AWS Python SDK), но мне это не удалось.Когда я включаю DFCC в аргумент ExtendedS3DestinationConfiguration
, происходит сбой со следующей ошибкой:
Exception during processing: An error occurred (InvalidArgumentException) when calling the UpdateDestination operation: RoleArn must not be null or empty
Если я передаю исходную конфигурацию назначения (возвращенную describe_delivery_stream
) без изменений, обновление завершается успешно.Я также могу изменить другие параметры конфигурации, например, BufferingHints
.Единственный раз, когда он терпит неудачу, это когда DataFormatConversionConfiguration
не равен нулю.
Например, передача этого работает:
{
"RoleARN": "arn:aws:iam::1234567:role/MyExecutionRole",
"BucketARN": "arn:aws:s3:::my-bucket",
"Prefix": "databases/tables/requests/",
"BufferingHints": {
"SizeInMBs": 64,
"IntervalInSeconds": 120
},
"CompressionFormat": "UNCOMPRESSED",
"EncryptionConfiguration": {
"NoEncryptionConfig": "NoEncryption"
},
"CloudWatchLoggingOptions": {
"Enabled": false
},
"S3BackupMode": "Disabled"
}
, но передача этого не удалась:
{
"RoleARN": "arn:aws:iam::1234567:role/MyExecutionRole",
"BucketARN": "arn:aws:s3:::my-bucket",
"Prefix": "databases/tables/requests/",
"BufferingHints": {
"SizeInMBs": 64,
"IntervalInSeconds": 120
},
"CompressionFormat": "UNCOMPRESSED",
"EncryptionConfiguration": {
"NoEncryptionConfig": "NoEncryption"
},
"CloudWatchLoggingOptions": {
"Enabled": false
},
"S3BackupMode": "Disabled",
"DataFormatConversionConfiguration": {
"InputFormatConfiguration": {
"Deserializer": {
"OpenXJsonSerDe": {
}
}
},
"SchemaConfiguration": {
"TableName": "requests",
"DatabaseName": "mydb"
},
"OutputFormatConfiguration": {
"Serializer": {
"OrcSerDe": {
}
}
}
}
}
Единственное отличие - элемент DataFormatConversionConfiguration
.
Я пропускаю что-то очевидное?Возможно, элемент DFCC
поврежден?Мне не удалось найти какие-либо рабочие примеры, поэтому я исхожу исключительно из документации.
Я также довольно удивлен использованием RoleARN
и BucketARN
в элементе ввода, противобычное соглашение RoleArn
и BucketArn
, но не уверен, что оно уместно.