Integrating Between AWS Services Adds Incidental Complexity

When using multiple AWS services together new problems emerge—IAM permissions and roles, configuration, and load-bearing quirks.

For example, using Cognito and Lambda (to workaround issues with usernames) signing up could fail because the Cognito role doesn’t have the right permissions to invoke the Lambda handler.

Even between multiple instances of the same service, calling one Lambda from another requires configuring the name of the Lambda to call (particularly if you have a separate dev and production version).

Then there are the quirks to discover, for example uploading a file to S3 in a Lambda that sets an acl on the object requires a hard to discover permission and returns a confusing ‘Access Denied’ otherwise.

See also: