Danny Cranmer created FLINK-19716:
-------------------------------------

             Summary: [Kinesis][EFO] Unable to use Assume Role with EFO record 
publisher
                 Key: FLINK-19716
                 URL: https://issues.apache.org/jira/browse/FLINK-19716
             Project: Flink
          Issue Type: Bug
          Components: Connectors / Kinesis
            Reporter: Danny Cranmer
             Fix For: 1.12.0


*Reproduction Steps*
 * Setup an application to consume from a Kinesis Stream
 * Use ASSUME_ROLE credential provider 

{code:java}

consumerConfig.setProperty(AWSConfigConstants.AWS_CREDENTIALS_PROVIDER, 
ASSUME_ROLE.name());
consumerConfig.setProperty(AWSConfigConstants.AWS_ROLE_ARN, "<role-arn>");
consumerConfig.setProperty(AWSConfigConstants.AWS_ROLE_SESSION_NAME, 
"test-efo");

{code}

 

*Expected Result*
 * Consumer is able to authorise and consume from the stream

*Actual Result*
 * The following error is thrown (full stack attached)
 ** Caused by: 
org.apache.flink.kinesis.shaded.software.amazon.awssdk.core.exception.SdkClientException:
 Unable to load an HTTP implementation from any provider in the chain. You must 
declare a dependency on an appropriate HTTP implementation or pass in an 
SdkHttpClient explicitly to the client builder.

*Diagnosis*

This issue occurs because Assume Role credential provider requires a Sync HTTP 
Client. The Apache HTTP Client is on the classpath but it is not detected due 
to the shading relocation. It is looking for:

- {{org.apache.flink.kinesis.shaded.software.amazon.awssdk.http.SdkHttpService}}

However the service manifest is defining:

- {{software.amazon.awssdk.http.SdkHttpService}}

*Solution*
 * Add a service manifest such that the shaded HTTP client is used
 * Also needed to update the HTTP client/core version due to incompatibilities 

*Testing*

Tested using EFO and POLLING record consumer 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to