这个错误通常出现在跨区域的 QuickSight 操作中。为了解决这个问题,可以在创建 QuickSight 数据源时显式指定 QuickSight 能够访问的区域,例如:
import boto3
# 连接 QuickSight 服务
quicksight = boto3.client('quicksight', region_name='us-west-2')
# 创建数据源
response = quicksight.create_data_source(
AwsAccountId='123456789012',
DataSourceId='my-datasource',
Name='My Data Source',
Type='S3',
DataSourceParameters={
'S3Parameters': {
'ManifestFileLocation': {
'Bucket': 'my-s3-bucket',
'Key': 'my-s3-manifest.json'
}
}
},
Permissions=[
{
'Principal': 'arn:aws:iam::123456789012:root',
'Actions': [
'quicksight:DescribeDataSource',
'quicksight:UpdateDataSource',
'quicksight:DeleteDataSource',
'quicksight:PassDataSource',
'quicksight:DescribeIngestion',
'quicksight:ListIngestions',
'quicksight:UpdateIngestion',
'quicksight:CancelIngestion'
]
}
]
)
在这个示例中,我们将 QuickSight 的区域显式指定为“us-west-2”,这将确保 QuickSight 能够成功访问与该数据源关联的 S3 存储桶。
另外,如果您正在使用 QuickSight 的分析功能,也可以将区域配置为与创建分析时选择的 AWS 区域相同。