awslabs / ecr-cleanup-lambda

A script to discover stale ECR images and take action on them with Lambda to help reduce costs.
Other
161 stars 96 forks source link

Examples not working #16

Closed r0fls closed 7 years ago

r0fls commented 7 years ago

Are the examples intended to work locally? 🤔 I get this error:

$ python3 main.py 
Discovering images in ap-northeast-1
Traceback (most recent call last):
  File "main.py", line 195, in <module>
    handler(request, None)
  File "main.py", line 44, in handler
    discover_delete_images(endpoint)
  File "main.py", line 50, in discover_delete_images
    ecr_client = boto3.client('ecr', region_name=regionname)
  File "/usr/local/lib/python3.6/site-packages/boto3-1.4.1-py3.6.egg/boto3/__init__.py", line 83, in client
    return _get_default_session().client(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/boto3-1.4.1-py3.6.egg/boto3/session.py", line 263, in client
    aws_session_token=aws_session_token, config=config)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/session.py", line 815, in create_client
    credentials = self.get_credentials()
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/session.py", line 443, in get_credentials
    'credential_provider').load_credentials()
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/credentials.py", line 1072, in load_credentials
    creds = provider.load()
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/credentials.py", line 477, in load
    metadata = fetcher.retrieve_iam_role_credentials()
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/utils.py", line 174, in retrieve_iam_role_credentials
    r = self._get_request(url, timeout, num_attempts)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/utils.py", line 159, in _get_request
    response = requests.get(url, timeout=timeout)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/api.py", line 69, in get
    return request('get', url, params=params, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/sessions.py", line 465, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/sessions.py", line 573, in send
    r = adapter.send(request, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/adapters.py", line 370, in send
    timeout=timeout
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/packages/urllib3/connectionpool.py", line 544, in urlopen
    body=body, headers=headers)
  File "/usr/local/lib/python3.6/site-packages/botocore-1.4.61-py3.6.egg/botocore/vendored/requests/packages/urllib3/connectionpool.py", line 349, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/http/client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
TypeError: _send_request() takes 5 positional arguments but 6 were given
anshrma commented 7 years ago

You might want to update your AWS CLI / BotoCore/ Boto3.. I just tried this with aws-cli/1.11.89 Python/3.6.1 Darwin/15.6.0 botocore/1.5.55 and works seamlessly