You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Danny Cranmer (Jira)" <ji...@apache.org> on 2020/10/19 13:17:00 UTC

[jira] [Commented] (FLINK-19716) [Kinesis][EFO] Unable to use Assume Role with EFO record publisher

    [ https://issues.apache.org/jira/browse/FLINK-19716?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17216713#comment-17216713 ] 

Danny Cranmer commented on FLINK-19716:
---------------------------------------

[~tzulitai] do you have time to take a look a this PR please? It is a relatively small one:

- [https://github.com/apache/flink/pull/13689]

 

> [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
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.12.0
>
>         Attachments: FLINK-19716-error.txt
>
>
> *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)