async function createAllDataSources()

in source/lambda/solution-helper/create-quicksight.ts [246:296]


async function createAllDataSources(props: ICreateQuickSightRequestProps, quickSightHelper: QuickSightHelper): Promise<{[key: string]: QuickSight.CreateDataSourceResponse}> {
  const metadata = props.Metadata;
  const machineInformationId = `${props.StackName}-MachineInformation`;
  const machineConfigInformationId = `${props.StackName}-MachineConfigInformation`;
  const athenaId = `${props.StackName}-Athena`;

  // Machine information data source which contains machine ID, name, location, and line
  const machineInformationDataSourceParams: IQuickSightCreateDataSourceProps = {
    name: machineInformationId,
    type: QuickSightDataSourceType.S3,
    dataSourceParameters: {
      S3Parameters: {
        ManifestFileLocation: {
          Bucket: metadata.BucketName,
          Key: `${metadata.ManifestPrefix}/${metadata.MachineInformationPrefix}_${metadata.ManifestPrefix}.json`
        }
      }
    }
  };

  // Machine config information data source which contains machine ID, down status tag, and down values
  const machineConfigInformationDataSourceParams = {
    name: machineConfigInformationId,
    type: QuickSightDataSourceType.S3,
    dataSourceParameters: {
      S3Parameters: {
        ManifestFileLocation: {
          Bucket: metadata.BucketName,
          Key: `${metadata.ManifestPrefix}/${metadata.MachineConfigInformationPrefix}_${metadata.ManifestPrefix}.json`
        }
      }
    }
  };

  // Athena data source from the parquet data
  const athenaDataSourceParams = {
    name: athenaId,
    type: QuickSightDataSourceType.ATHENA,
    dataSourceParameters: {
      AthenaParameters: { WorkGroup: 'primary' }
    }
  };

  const [machineInformationDataSource, machineConfigInformationDataSource, athenaDataSource]  = await Promise.all([
    quickSightHelper.createDataSource(machineInformationDataSourceParams),
    quickSightHelper.createDataSource(machineConfigInformationDataSourceParams),
    quickSightHelper.createDataSource(athenaDataSourceParams)
  ]);

  return { machineInformationDataSource, machineConfigInformationDataSource, athenaDataSource };
}