These are the official AWS Python connectors for Apache Flink 

For the latest information about Flink connector, please visit our website at:

https://flink.apache.org

and our GitHub Account for the AWS connectors

https://github.com/apache/flink-connector-aws

If you have any questions, ask on our Mailing lists:

user@flink.apache.org
dev@flink.apache.org