diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f5014110..7bd95163f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -160,6 +160,10 @@ asyncio.wait_for(task, timeout)` instead. ### Fixed +- Fixed `AWSPollyTTSService` to support AWS credential provider chain (IAM + roles, IRSA, instance profiles) instead of requiring explicit environment + variables. + - Fixed an issue that would cause `PipelineRunner` and `PipelineTask` to not handle external asyncio task cancellation properly. diff --git a/src/pipecat/services/aws/tts.py b/src/pipecat/services/aws/tts.py index 88f0a8fdd..805d733e8 100644 --- a/src/pipecat/services/aws/tts.py +++ b/src/pipecat/services/aws/tts.py @@ -185,16 +185,6 @@ class AWSPollyTTSService(TTSService): "region_name": region or os.getenv("AWS_REGION", "us-east-1"), } - # Validate that we have the required credentials - if ( - not self._aws_params["aws_access_key_id"] - or not self._aws_params["aws_secret_access_key"] - ): - raise ValueError( - "AWS credentials not found. Please provide them either through constructor parameters " - "or set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables." - ) - self._aws_session = aioboto3.Session() self._settings = { "engine": params.engine,