Update documentation for upgrading to KCL v2.7.x (#1446)

This commit is contained in:
vincentvilo-aws 2025-03-12 10:29:02 -07:00 committed by GitHub
parent 6ba37b19bf
commit 7ff585eb61
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 2 deletions

View file

@ -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
<dependency>

View file

@ -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|<arn>|<sessionName>\
AwsCredentialsProvider = KclStsAssumeRoleCredentialsProvider|<arn>|<sessionName>\
|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|<arn>|<sessionName>\
AwsCredentialsProvider = KclStsAssumeRoleCredentialsProvider|<arn>|<sessionName>\
|endpointRegion=us-east-1|externalId=spartacus
```