{"id":20979,"library":"aws-request-signer","title":"AWS Request Signer","description":"A Python library to sign AWS requests using AWS Signature V4. Current version is 1.2.0, with a stable release cadence. Supports Python 3.6+ and aims to simplify request signing for AWS services.","status":"active","version":"1.2.0","language":"python","source_language":"en","source_url":"https://github.com/iksteen/aws-request-signer","tags":["aws","signing","api-gateway"],"install":[{"cmd":"pip install aws-request-signer","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Used as the base library for signing HTTP requests","package":"requests","optional":false},{"reason":"Python 2/3 compatibility layer","package":"six","optional":false}],"imports":[{"note":"Class name is not all lowercase; wrong case leads to ImportError","wrong":"from aws_request_signer import aws_request_signer","symbol":"AWSRequestSigner","correct":"from aws_request_signer import AWSRequestSigner"}],"quickstart":{"code":"import os\nfrom aws_request_signer import AWSRequestSigner\n\n# Set your credentials via environment variables\naccess_key = os.environ.get('AWS_ACCESS_KEY_ID', '')\nsecret_key = os.environ.get('AWS_SECRET_ACCESS_KEY', '')\nregion = 'us-east-1'\nservice = 'execute-api'\n\nsigner = AWSRequestSigner(access_key, secret_key, region, service)\n\n# Example GET request\nmethod = 'GET'\nurl = 'https://example.com/dev'\nheaders = {}\nbody = ''\n\nsigned_headers = signer.sign(method, url, headers, body)\nprint(signed_headers)","lang":"python","description":"Initialize signer with credentials, region, and service; then sign a request to obtain signed headers."},"warnings":[{"fix":"Ensure credentials and region are correct before calling sign() to avoid opaque errors.","message":"The signer does NOT verify endpoint URLs or credentials at initialization; invalid params only fail at signing time.","severity":"gotcha","affected_versions":"all"},{"fix":"If using temporary credentials (session token), include it as a custom header or use a different library that supports session tokens natively.","message":"The library does not support AWS Signature V4A or temporary credentials from STS automatically; you must supply temp creds manually.","severity":"deprecated","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use: from aws_request_signer import AWSRequestSigner","cause":"Incorrect import path or capitalization; the class is AWSRequestSigner (note capital letters).","error":"AttributeError: module 'aws_request_signer' has no attribute 'AWSRequestSigner'"},{"fix":"Provide all four arguments, including an empty string for body if no request body.","cause":"The sign method requires exactly four positional arguments (method, url, headers, body).","error":"TypeError: sign() missing 1 required positional argument: 'body'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}