cloudformation:将应用程序sql代码从模板主体移至参数

问题描述

我有包含这些资源的cloudformation模板:

  • AWS::KinesisAnalytics::Application
  • AWS::IAM::Role

这是一个Kinesis Analytics应用程序,其中包含用于实时执行分析的sql代码

我的问题是:

  • 如何从模板中移动多行sql代码,然后通过参数或更好的选择将其传递?
  • 如何将记录列也从模板移动到参数?

样本:

AWstemplateFormatVersion: '2010-09-09'
Description: The AWS CloudFormation template for Kinesis data delivery
Parameters:
  KinesisFirehoseArn:
    Type: String
    Description: arn of kinesis firehose data stream.
  AppName:
    Type: String
    Description: name of kinesis analytic app.
Resources:
  KinesisAnalyticsApp:
    Type: AWS::KinesisAnalytics::Application
    Properties:
      ApplicationName: !Ref AppName
      ApplicationDescription: Kineis Analytics Web Metrics Solution Accelerator
      ApplicationCode: !Sub |
        CREATE OR REPLACE STREAM "DESTINATION_sql_STREAM" ("type" VARCHAR(128));
        CREATE OR REPLACE PUMP "STREAM_PUMP" AS INSERT INTO "DESTINATION_sql_STREAM"
        SELECT STREAM "type"
        FROM "audi_001"
        WHERE "type"='a';
      Inputs:
        - NamePrefix: audi
          InputSchema:
            RecordColumns:
              - sqlType: VARCHAR(128)
                Name: type
              - sqlType: VARCHAR(128)
                Name: timeLogged
            RecordFormat:
              RecordFormatType: CSV
              MappingParameters:
                CSVMappingParameters:
                  RecordColumnDelimiter: ","
                  RecordRowDelimiter: "\n"
          KinesisFirehoseInput:
            ResourceARN: !Ref KinesisFirehoseArn
            RoleARN: !GetAtt 'KinesisAnalyticsRole.Arn'
  KinesisAnalyticsRole:
    Type: AWS::IAM::Role
    Properties:
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - kinesisanalytics.amazonaws.com
            Action:
              - sts:AssumeRole
      Policies:
        - PolicyName: kinesisaccess
          PolicyDocument:
            Version: '2012-10-17'
            Statement:
              - Sid: ReadInputStream
                Effect: Allow
                Action:
                  - firehose:DescribedeliveryStream
                  - firehose:Get*
                Resource:
                  - !Ref KinesisFirehoseArn

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)