留言

在 Amazon QuickSight 资产部署 API 的两个导出选项之间进行选择 商业智能博客

如何选择 Amazon QuickSight 资产部署 API 的两种导出选项

关键要点

Amazon QuickSight 的资产部署 API 提供 QUICKSIGHTJSON 和 CLOUDFORMATIONJSON 两种导出格式。每种选项具有各自的优缺点,选择应基于组织的需求。了解这两种导出格式的特点可以帮助您做出明智的选择。

如果您希望使用 QuickSight 资产部署 API也称为资产捆绑 API来部署和管理您的 Amazon QuickSight 资产,那么您将有两种选择:QUICKSIGHTJSON 或 CLOUDFORMATIONJSON 格式。在本文中,我们将探讨每种选择的利弊,帮助您为组织的资产需求做出正确选择。我们还将概述 API 部署选项,并提供使用 AWS CloudFormation 格式的一些实用指南。

准备好进一步了解 QuickSight 部署 API 并发现哪种导出选项最适合您的需求吗?那么让我们开始吧!

资产部署选项概述

2023 年 6 月引入的新 QuickSight 部署 API 提供了一种强大的机制,可以自动化和加速 QuickSight 资产的部署,例如仪表板、数据集包括计划或增量刷新、主题、数据源、VPC 连接等。

这些 API 允许您创建可以轻松跨账户和环境部署的资产捆绑,而无需复杂的编码或基础设施管理。API 提供与其他 QuickSight API 相同的安全访问控制。

在 Amazon QuickSight 资产部署 API 的两个导出选项之间进行选择 商业智能博客

新 API 的主要好处包括:

更快的批量部署大量资产,相比单独上传效率更高,简化了 QuickSight 环境的设置。通过灵活的资产快速迭代和实验,便于将相关资产一起部署。可简化更新和变更,通过一次性部署所有更新资产来实现。资产版本控制允许协作,并保留生产控制。

要了解更多用例,请参阅 使用新 API 自动化和加速 Amazon QuickSight 资产部署。

总体而言,这些 API 抽象了资产关系和管理的复杂性。团队可以专注于内容创作,而 API 则处理不同环境间一致的自动化部署。API 的批处理、版本控制和自动化功能加速了大规模 QuickSight 资产的部署工作流。

之前,您需要深入了解 QuickSight 资产关系才能能够以自动化的方式大规模部署、备份或复制资产。有关更多信息,请查看 加速您的 BI 转型的新 Amazon QuickSight API 能力。

为简化、加速和简化资产部署,推出了六个新 API:

导入 API:StartAssetBundleExportJobDescribeAssetBundleExportJobListAssetBundleExportJobs导出 API:StartAssetBundleImportJobDescribeAssetBundleImportJobListAssetBundleImportJobs

StartAssetBundleExportJob 需要指定导出格式参数,可以选择 CLOUDFORMATIONJSON 或 QUICKSIGHTJSON。

如果您使用 AWS 命令行界面 (AWS CLI),API 调用如下:

bashaws quicksight startassetbundleexportjob awsaccountid accountID assetbundleexportjobid cfndemo resourcearns arnawsquicksightuswest2accountIDdashboard/dashboardID exportformat QUICKSIGHTJSON #或 CLOUDFORMATIONJSON includealldependencies region uswest2

如果您使用 AWS 的 Python SDK (Boto3),API 调用如下:

pythonresponse = sourceQuickSightstartassetbundleexportjob( AwsAccountId=SourceAccountId AssetBundleExportJobId=jobid ResourceArns=resourceARNs ExportFormat=QUICKSIGHTJSON #或 CLOUDFORMATIONJSON IncludeAllDependencies=True)

了解这两种选项的优缺点将使您能够为您的特定用例做出正确的决策。

比较两种选项

资产捆绑允许更快的部署、精细控制、简化的资产版本控制和每个捆绑无限制的资产目前捆绑文件的大小限制为 20 MB压缩。此格式特别适合管理 QuickSight 资产,如仪表板,这时版本控制的易用性和部署速度至关重要。

AWS CloudFormation 通过将基础设施视为代码,提供强大的自动化、安全性和可靠性。堆栈强制实施边界和变更控制。它适用于管理数据源,将其无缝集成到更广泛的 AWS 生态系统中,能够跨账户和区域管理堆栈。

对于快速迭代的仪表板,资产捆绑因其简单性和速度而更为可取。对于与 RDS、Athena 和 Redshift 等 AWS 基础设施的 QuickSight 数据源的受控集成,CloudFormation 堆栈提供稳定性、控制、合规性和严谨性。这两种方法均适合生产。资产捆绑在灵活快速地管理仪表板方面表现优异,而 CloudFormation 在控制、自动化方式管理与 AWS 基础设施集成的数据源方面更具优势。组织可以采用混合方法:仪表板使用资产捆绑,数据源使用 CloudFormation。

以下表格总结了每种选项的特点。

特点Amazon QuickSight JSONAWS CloudFormation JSON工作流自动化是是部署速度快较慢简单性是否无需前期配置是是如果未修改易于比较版本是否易于更新是否需要脚本技能否是无限制资产是否对每个资产的精细控制是有限内置版本控制是是作为代码的基础设施否是与其他 AWS 服务的集成否是声明式方法否是回滚功能是是通过 IAM 控制访问是是通过模块化架构的可重用性否是跨区域和跨账户部署是是可以假设自定义 IAM 角色否是

QUICKSIGHTJSON

选择此选项会导致 API 调用创建一个扩展名为 qs 的文件。此文件格式用于从 Amazon QuickSight 导出数据,通常包含 QuickSight 分析或仪表板的数据结构和内容。它是一个包含各资产类型的单独文件夹的 zip 文件。每个文件夹中包含一个资产的 JSON 文件,以 resourceId 作为文件名。这种文件夹结构使得将内容提交到 Git 等版本控制系统变得简单,从而获得完整的版本历史记录的好处。

该选项在灵活性方面有一些明显的优点:

资产数量无限制:可使用资产捆绑导入的资产如仪表板和数据集数量没有限制。就在撰写本文时,唯一软限制是整体压缩捆绑的大小为 20 MB。较大的文件可以上传到 Amazon Simple Storage ServiceAmazon S3。灵活的资产分组:可将任何资产包含在一个或多个捆绑中,允许逻辑分组和可重用的捆绑。这为资产管理提供了灵活性。精细控制:捆绑中的每个资产可以单独配置和定制。这使得在部署过程中可以对资产的各个方面进行细致控制。更快的部署:与较重的基础设施部署文件相比,资产捆绑文件轻量且部署迅速。这加快了迭代速度。特别是在进行常规维护流程或在因为网络问题或互联网服务提供商的故障导致数据传输速度较慢时,快速部署大量资产非常有用。简单结构:资产捆绑的文件夹基结构使得识别和跟踪每个资产的元数据变得简单,因为每个资产均在单独的 JSON 文件中归档。这提高了可理解性。版本控制:资产版本可以适当标记例如开发或测试,并按需进行部署。这使得通过重新部署较旧版本来回滚更改变得简单。工作流自动化:迁移工作流包括从源账户导出资产、将其导入目标账户以及与您自己或其他人共享这些资产。可以使用 AWS SDK 在所选编程语言中完成此操作,或者使用 AWS CLI,AWS SDK 提供了完整的自动化解决方案。请注意,在当前撰写时,一个步骤要求将 JSON 文件下载到您的本地计算机或本地云环境,然后再将其上传或引用到目标云环境。您可以在 AWS SDK 脚本中以编程方式自动化此步骤,以简化迁移。此外,您可以使用 AWS CodePipeline 在云环境中自动化整个过程。重要的是要注意,此特定步骤不能使用 AWS CLI 自动化。通过 QuickSight UI、AWS CLI 或 AWS SDK 使用 updatedashboardpermissions或类似于数据集、数据源和分析的部分可将新资产与自己和其他人共享。此外,自动权限更新的支持即将推出。回滚:默认行为是如果捆绑中的任何资产失败,则回滚所有资产。如果禁用,则在发生故障时,已经成功的资产将保持不变。IAM 角色:它使用调用者当前的 AWS 身份与访问管理IAM角色。

CLOUDFORMATIONJSON

选择此选项会导致 API 调用创建一个 CloudFormation 模板作为一个 JSON 文件。AWS CloudFormation 提供了一种直接的方式来建模一组相关的 AWS 和第三方资源,以快速一致地配置它们,并通过将基础设施视为代码来管理它们的整个生命周期。CloudFormation 模板描述了您所需的资源及其依赖关系,因此您可以将它们作为堆栈一起启动和配置。您可以使用模板创建、更新和删除整个堆栈,而无需单独管理资源。您可以跨多个 AWS 账户和 AWS 区域管理和配置堆栈。

flyingbird飞鸟机场

创建 CloudFormation 堆栈时,您可以选择覆盖参数,这使您能够添加要部署的其他基础设施资源例如,IAM 权限、Amazon Redshift 连接或 VPC。

使用 CloudFormation 模板的优点包括:

作为代码的基础设施标准:AWS CloudFormation 是 AWS 的本地基础设施作为代码解决方案。使用它符合定义和配置基础设施的最佳实践。声明式:它定义所需的资源,而不是怎样构建这些资源。您描述所需的资源及其属性,AWS CloudFormation 会负责按正确顺序配置这些资源。开发者生产力:与多种 SDK如 Java、Python 和 TypeScript集成良好。AWS CloudFormation 使用基于 JSON/YAML 的语法,便于可读性并与开发工具和 SDK 集成。这使团队能够轻松协作进行基础设施代码开发。灵活性:可以通过 AWS 管理控制台 和 AWS CLI 两种方式使用。集成:通过参数轻松无缝地与现有基础设施集成,传递可配置值例如网络、主机名、子网或 CDN,无需在每次部署资产时输入用户信息。工作流自动化:提供与 QUICKSIGHTJSON 格式类似的工作流自动化。重要的是在部署之前可以编辑 CloudFormation 文件,以添加新迁移 QuickSight 资产所需的权限。回滚功能:在出现问题时允许回滚功能。提高安全性:使用堆栈策略来限制堆栈的变更或更新,提供额外的安全层,以确保您能够监督对关键基础设施的更改。可重用性:常见或共享的基础设施模式可以转化为可重用的模板。堆栈也可以嵌套,允许模块化架构。您可以创建包含多个资产的堆栈,并在部署时传递可配置值。跨区域和跨账户:StackSets 允许您从中心源管理单个 CloudFormation 模板,跨多个区域和账户。假设自定义角色:AWS CloudFormation 具有 rolearn 参数,使其能在部署堆栈时假定指定的角色。

在部署 CloudFormation 堆栈时,您还需注意一些潜在的限制:

较慢的部署速度:CloudFormation 模板更复杂,并声明多个相互连接的资源。这意味着相比于单个资产的部署,堆栈部署所需时间更长。额外编码和脚本要求:成功创建和部署 CloudFormation 模板需要扎实的编程知识和脚本技能,特别是对于高级自定义。前期配置复杂:与临时部署资产相比,脚本模板所需的前期工作更多。模板需要全面捕获基础设施状态。比较版本较困难:由于单个大型模板文件代表整个堆栈,跨模板版本比较变更比比较单个资产的变更更为困难。限制:AWS CloudFormation 对堆栈中的资源数量以及参数和映射的数量设有限制。这可能会对模板设计造成制约。例如,仅可传递 200 个参数。有关 AWS CloudFormation 限制的完整清单,请参见 AWS CloudFormation 额度。每资源一个堆栈:一个资源在一段时间内只能属于一个堆栈。复杂系统在必要时可能需要将其拆分为多个关联堆栈。根据您的基础设施的复杂性和相互依赖性,您可能需要制定策略,将资源有序地组织成多个堆栈。堆栈表示一组在一起创建、更新或删除的 AWS 资源。每个堆栈均由 CloudFormation 模板定义,该模板指定资源及其配置。每个堆栈都有自己的强制隔离、堆栈边界、资源及其依赖管理、资源命名空间和分层更新。例如,如果您有两个仪表板使用相同的数据源或数据集,那么您要么将三者都捆绑在同一堆栈中但其他仪表板将无法使用相同的数据源,要么为数据源创建一个堆栈,为两个仪表板各两个堆栈。

如何使用 CLOUDFORMATIONJSON

以下步骤展示了使用 CLOUDFORMATIONJSON 的过程:

在源账户中,列出 QuickSight 账户中的所有仪表板,并识别要部署的资产的 ARN:

bash aws quicksight listdashboards awsaccountid XXXXXXXXXXXX

从响应中复制要迁移的仪表板 ARN:

json Arn arnawsquicksightuseast1XXXXXXXXXXXXdashboard/61c3c8eae3454b69ba02b0de361f23ab

导出资产捆绑:

bash aws quicksight startassetbundleexportjob awsaccountid XXXXXXXXXXXX assetbundleexportjobid cfndemo resourcearns arnawsquicksightuseast1XXXXXXXXXXXXdashboard/61c3c8eae3454b69ba02b0de361f23ab exportformat CLOUDFORMATIONJSON region useast1

若要修改原始配置设置
使用 Amazon MSK 流式处理多租户数据 大数据博客 在您的行业中占据领先地位:一级方程式的敏捷性 云企业战略博客