"Manifest file was not found" 使用 AWS CLI 创建 S3 QuickSight 数据源时出错

"Manifest file was not found" error when creating an S3 QuickSight datasource using AWS CLI

当使用 AWS QuickSight API 尝试创建指向存储在 S3 中的清单的数据源时,我总是收到此错误:

An error occurred (InvalidParameterValueException) when calling the CreateDataSource operation: Manifest file was not found

这发生在使用 CLI 和 C# SDK 时。我已通过在 QuickSight 用户界面中从中手动创建数据集来确认清单存在且正确。我尝试了各种存储桶 name/key 格式的组合(存储桶名称、s3 arn、http 路径、s3 密钥等)。

我这样发送请求:

aws quicksight create-data-source --cli-input-json file://./create-data-source-cli-input.json

请求内容如下(私有值替换为xxxx)

{
    "AwsAccountId": "xxxx",
    "DataSourceId": "85a8e263-a052-42df-abc9-98c6e60678e57",
    "Name": "TestDatasource",
    "Type": "S3",
    "DataSourceParameters": {
        "S3Parameters": {
            "ManifestFileLocation": {
                "Bucket": "xxxx",
                "Key": "xxxx"
            }
        }
    }
}

还有其他人 运行 穿​​过这个吗?提前感谢您的帮助。

我会给你一个你可以尝试的列表(它可能会或可能不会解决你的问题)

  • 先查看角色

    • 您可以在控制台上执行此操作或自己编写一个授予对 s3 的 quicksight 访问权限 它看起来像这样
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:ListAllMyBuckets",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Action": [
                "s3:ListBucket"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*"
            ]
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Effect": "Allow",
            "Resource": [
                "arn:aws:s3:::*/*"
            ]
        }
    ]
    }
    
  • 另请查看您可能需要的其他类型或角色或策略

  • 如果这些方法不起作用,请查看此 link when you can't connect to s3 data source,但我认为您可能已经这样做了。

希望对您有所帮助

经过实验发现ManifestFileLocation中Key指定的文件名称中不能包含space。我尝试用请求中的 + 字符和 %20 替换 space,但它仍然不起作用。

我找到的唯一解决方案是删除清单文件名中的任何 space。如果这是唯一的解决方案,那么它似乎一定是 QuickSight SDK 中的错误。

请检查是否通过 QuickSight 管理访问菜单向特定存储桶提供了权限。 Manage Access -> Security and Permissions -> QuickSight Access to AWS services