我的AWS模板中有很多资源类型AWS::Glue::Table
。而且我不会在模板之间复制粘贴代码段。因此,想法是创建一个接受参数的可重用的嵌套堆栈。我做到了,但仍然存在一个问题。我不知道如何通过参数将列传递给此堆栈[{Type: string, Name: type}, {Type: string, Name: timeLogged}]
-它是对象的数组。但是params接受唯一的字符串类型。
我试图做这样的事情:
!Split [ "," , "{Type: string, Name: type}, {Type: string, Name: timeLogged}"]
-但没有帮助
AWSTemplateFormatVersion: 2010-09-09
Description: The AWS CloudFormation template for creating a Glue table
Parameters:
DestinationBucketName:
Type: String
Description: Destination Regional Bucket Name
DestinationBucketPrefix:
Type: String
Description: Destination Regional Bucket Prefix
DatabaseName:
Type: String
Description: Database for Kinesis Analytics
TableName:
Type: String
Description: Table for Kinesis Analytics
InputFormat:
Type: String
Description: Input format for data
OutputFormat:
Type: String
Description: Output format for data
SerializationLibrary:
Type: String
Description: Serialization library for converting data
Resources:
LogsCollectionTable:
Type: AWS::Glue::Table
Properties:
DatabaseName: !Ref DatabaseName
CatalogId: !Ref AWS::AccountId
TableInput:
Name: !Ref TableName
Description: Table for storing data
TableType: EXTERNAL_TABLE
StorageDescriptor:
Columns: [{Type: string, Name: type}, {Type: string, Name: timeLogged}]
Location: !Sub s3://${DestinationBucketName}/${DestinationBucketPrefix}
InputFormat: !Ref InputFormat
OutputFormat: !Ref OutputFormat
SerdeInfo:
SerializationLibrary: !Ref SerializationLibrary