AWS云形成胶水表可重用模板

时间:2020-09-11 09:40:52

标签: amazon-web-services amazon-cloudformation aws-glue

我的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

1 个答案:

答案 0 :(得分:0)

简短的回答:您目前不能。您需要手动传递每个参数。

enter image description here

Source