Kinesis Firehose resource: "Encountered unsupported property RoleArn"

Hi,

I try to create a Firehose deliverystream in my serverless.yml but I get an error saying:

Serverless Error ---------------------------------------

 An error occurred while provisioning your stack: MessageDeliveryStream
 - Encountered unsupported property RoleArn.

BucketARN is ok in Cloudformation template and RoleArn is used many times in Lambdas for example.

    MessageDeliveryStream:
      Type: "AWS::KinesisFirehose::DeliveryStream"
      Properties: 
        DeliveryStreamName: MessageDeliveryStream-${{self:custom.versionId}}-${{self:provider.stage}}
        S3DestinationConfiguration:
          #BucketARN: 'arn:aws:s3:::${{self:custom.customerId}}-${{self:custom.projectId}}-datalake-${{self:custom.versionId}}-${{self:provider.stage}}'
          BucketARN: 
            Fn::Join:
            - ''
            - - 'arn:aws:s3:::'
              - Ref: FirehoseDatalake
          BufferingHints: 
            IntervalInSeconds: "60"
            SizeInMBs: "50"
          CompressionFormat: "UNCOMPRESSED"
          Prefix: "raw/"
          #RoleArn: { Fn::GetAtt: [ IamRoleLambdaExecution, Arn ] } 
          RoleArn:
            Fn::GetAtt: 
              - "IamRoleLambdaExecution"
              - "Arn"
          CloudWatchLoggingOptions: 
            Enabled: true
            LogGroupName: "MessageDeliveryStream"
            LogStreamName: "s3Backup"

I just don’t get it what is wrong… any suggestions?

Your Environment Information -----------------------------
 OS:                 darwin
 Node Version:       4.4.7
 Serverless Version: 1.11.0

I haven’t had this issue myself, but maybe try putting a DependsOn: IamRoleLambdaExecution in there to make sure that the role is present before the stream is created?

Thank you for the help. Unfortunately, it did not solve the issue and the error remains although Cloudformation template now includes DependsOne value.

Anything else I can test or should I raise the issue?

Before raising an issue, can you run sls deploy --noDeploy (if you’re using less then 1.12, otherwise run sls package) and check the generated CloudFormation template (which will be in the .serverless directory in your service’s directory) looks OK? Usually these property errors are due to it not being in the right location, but your YAML snippet looks fine (just covering all bases).

If the generated template looks good, raise away!

Problem finally solved! Thank you @pmuens

RoleArn (lowercase Arn) is used everywhere else but for Firehose it is RoleARN…

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-kinesisdeliverystream-s3destinationconfiguration.html

Thanks for sharing the solution - that’s a strange discrepancy…