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