テンプレートの作成

テンプレートとは

テンプレートはQuickSightで作成した「分析」と「データセット」を合わせた定義です。

テンプレートを使い異なるデータセットを指定して新しいダッシュボードを作ることが出来ます。つまり、分析(様々なビジュアル)の設定やデザインをそのままに、データを変更したダッシュボードにすることが可能になります。これによって、事前に開発環境やマルチテナントの管理用テナントで作っておいた分析の定義をもとに、データを本番用・各テナント用のデータに差し替えたダッシュボードを作成・展開することができます。

QuickSightセットアップイメージ

Alt text

テンプレート定義JSON

分析, データセット, タグなどを定義するテンプレート定義を作成します。

Alt text

cat <<EOF > create-template.json
{
    "AwsAccountId": "$AWSACCOUNTID",
     "TemplateId": "QShandson-template",
     "Name": "QShandson Template",
     "SourceEntity": {
         "SourceAnalysis": {
             "Arn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:analysis/$ANALYSISID",
             "DataSetReferences": [
                 {
                     "DataSetPlaceholder": "QShandson-data-set",
                     "DataSetArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:dataset/Default-Data-Set"
                 }
             ]
         }
     },
     "Tags": [
         {
             "Key": "Name",
             "Value": "QShandson Template"
         }
     ],
     "VersionDescription": "1"
 }
EOF

テンプレート作成

次のコマンドを実行し、テンプレートを作成します。

 aws quicksight create-template --cli-input-json file://create-template.json

実行結果

以下のような出力があれば成功です。

 aws quicksight create-template --cli-input-json file://create-template.json
{
    "Status": 202,
    "Arn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:template/QShandson-template",
    "VersionArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:template/QShandson-template/version/1",
    "TemplateId": "QShandson-template",
    "CreationStatus": "CREATION_IN_PROGRESS",
    "RequestId": "9d28699b-c76c-4708-9946-32b3a776cc8f"
}

テンプレート詳細確認

テンプレートに関する詳細を表示します。※テンプレートはQuickSightの画面では確認できません。

 aws quicksight describe-template --aws-account-id $AWSACCOUNTID --template-id 'QShandson-template'

実行結果

保存されているテンプレートの情報が表示されます。 テンプレート内に、データセットのうち使用されている項目などが保存されていることが確認できます。

aws quicksight describe-template --aws-account-id $AWSACCOUNTID --template-id 'QShandson-template'
{
    "Status": 200,
    "Template": {
        "Arn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:template/QShandson-template",
        "Name": "QShandson Template",
        "Version": {
            "CreatedTime": 1600106080.344,
            "VersionNumber": 1,
            "Status": "CREATION_SUCCESSFUL",
            "DataSetConfigurations": [
                {
                    "Placeholder": "QShandson-data-set",
                    "DataSetSchema": {
                        "ColumnSchemaList": [
                            {
                                "Name": "Hospital",
                                "DataType": "STRING"
                            },
                            {
                                "Name": "Revenue",
                                "DataType": "DECIMAL"
                            },
                            {
                                "Name": "Admit Date",
                                "DataType": "DATETIME"
                            }
                        ]
                    },
                    "ColumnGroupSchemaList": []
                }
            ],
            "Description": "1",
            "SourceEntityArn": "arn:aws:quicksight:us-east-1:$AWSACCOUNTID:analysis/$ANALYSISID",
            "ThemeArn": "arn:aws:quicksight::aws:theme/SEASIDE"
        },
        "TemplateId": "QShandson-template",
        "LastUpdatedTime": 1600106080.327,
        "CreatedTime": 1600106080.327
    },
    "RequestId": "c1a1af3f-a919-4c00-959a-902788a0982d"
}