AWS Kinesis Firehose Redshift destination URL constraint

When trying to create an aws firehose resource I need to enter a JDBC URL property and it seems that there’s a constraint where this url needs to end with redshift.amazonaws.com.
Resource type is "AWS::KinesisFirehose::DeliveryStream"
Relevant property is “RedshiftDestinationConfiguration/ClusterJDBCURL”

But why? we set a DNS CNAME record on top of this url. this way when we have some maintenance work we need to do (for exmaple restore) we can deploy such operation without any downtime by changing the DNS record between redshift clusters. sounds legit right?
Please share your explanation regarding the above.

Error stack:

15:24:23   Serverless Error ---------------------------------------
15:24:23  
15:24:23   An error occurred: EventFirehose - 1 validation error detected: Value 
'jdbc:postgresql://XXXX.sundaysky.com:5439/XXXX' at 'redshiftDestinationUpdate.clusterJDBCURL' 
failed to satisfy constraint: Member must satisfy regular expression pattern: jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-
9-]{1,63}(?<!-)\.)+redshift\.amazonaws\.com:\d{1,5}/[a-zA-Z0-9_$]+.
15:24:23  
15:24:23   Your Environment Information -----------------------------
15:24:23      OS:                     win32
15:24:23      Node Version:           6.10.2
15:24:23      Serverless Version:     1.21.0
15:24:23

@yaronya That’s a constraint enforced by AWS CloudFormation rather than by the Serverless Framework. Might be best to take it up with AWS support.

1 Like