diff --git a/README.md b/README.md index 48085b78..6a027afb 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,16 @@ To make it easier for developers to write record processors in other languages, ## Using the KCL The recommended way to use the KCL for Java is to consume it from Maven. +## 🚨Important: Migration to KCL 2.7 or later with MultiLangDaemon - Credential Provider Changes Required +KCL version 2.7.0 and later uses AWS SDK for Java 2.x instead of AWS SDK for Java 1.x. All MultiLangDaemon users +upgrading from earlier versions must update their credential provider configuration in the `.properties` file to use +credentials provider name for AWS SDK for Java 2.x. Failure to do this will cause your multilang KCL application to fail +during startup with credential provider construction errors. Please check the following link for the credentials +provider mapping and MultiLangDaemon credentials provider configuration guide. + +- [AWS SDK for Java 1.x to 2.x Credentials Provider Mapping](aws.amazon.com/sdk-for-java/latest/developer-guide/migration-client-credentials.html#credentials-changes-mapping) +- [KCL Multilang Credentials Provider Configuration Guide](https://github.com/aws/amazon-kinesis-client/blob/master/docs/multilang/configuring-credential-providers.md) + ### Version 2.x ``` xml diff --git a/docs/multilang/configuring-credential-providers.md b/docs/multilang/configuring-credential-providers.md index 56bde627..018d13eb 100644 --- a/docs/multilang/configuring-credential-providers.md +++ b/docs/multilang/configuring-credential-providers.md @@ -6,6 +6,11 @@ KCL multilang does not, and is not intended to, proxy the full breadth of the AW However, KCL now provides better extensibility to handle, and be enhanced to handle, additional configurations. This document should help multilang customers configure a suitable `CredentialProvider` (or contribute changes to support a new use case!). +In KCL versions prior to 2.7, the `AWSCredentialsProvider` property used AWS SDK for Java 1.x provider names. +When upgrading to KCL 2.7 or later, you must update to use AWS SDK v2 credentials provider names in your configuration. +For a complete mapping of credential provider names between version 1.x and 2.x, see the [AWS SDK for Java migration guide — Credentials provider changes mapped between versions 1.x and 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/migration-client-credentials.html#credentials-changes-mapping). +You also can refer to the following examples. + ## Sample Provider Configuration In a Properties file, an `AwsCredentialsProperty` configuration might look like: @@ -24,7 +29,7 @@ For example, this configuration cannot set a regional endpoint (e.g., VPC use ca Leveraging nested properties, an `AwsCredentialsProperty` value might change to: ``` -AwsCredentialsProvider = KclSTSAssumeRoleSessionCredentialsProvider||\ +AwsCredentialsProvider = KclStsAssumeRoleCredentialsProvider||\ |endpointRegion=us-east-1|externalId=spartacus ``` N.B. Backslash (`\`) is for multi-line legibility and is not required. @@ -68,7 +73,7 @@ A backwards-compatible addition might look like: Leveraging nested properties, an `AwsCredentialsProperty` value might look like: ``` -AwsCredentialsProvider = KclSTSAssumeRoleSessionCredentialsProvider||\ +AwsCredentialsProvider = KclStsAssumeRoleCredentialsProvider||\ |endpointRegion=us-east-1|externalId=spartacus ```