So This is the Python file i have with me
clean_old_lambda_versions.py
from __future__ import absolute_import, print_function, unicode_literals
import boto3
# This script removes all versions except $LATEST and the newest version
# If this script tries to delete a version any alias is using,
# boto3 will throw an exception and the script will exit
def clean_old_lambda_versions():
client = boto3.client('lambda')
functions = client.list_functions()['Functions']
for function in functions:
while True:
versions = client.list_versions_by_function(FunctionName=function['FunctionArn'])['Versions']
numVersions = len(versions)
if numVersions <= 2:
print('{}: done'.format(function['FunctionName']))
break
for version in versions:
if version['Version'] != function['Version'] and numVersions > 2: # $LATEST
arn = version['FunctionArn']
print('delete_function(FunctionName={})'.format(arn))
# client.delete_function(FunctionName=arn) # uncomment me once you've checked
numVersions -= 1
if __name__ == '__main__':
clean_old_lambda_versions()
And this is my gitlab.ci.yml file to execute this file
delete-lambda-versions-nonprod:
stage: import
image: "someimage/confidential"
<<: *nonprod
variables:
ENV_TAG: "alpha1"
script:
- . ./clean_old_lambda_versions.py
when: manual
This is the error i am getting when running this pipeline in my gitlab
$ . ./clean_old_lambda_versions.py /bin/sh: ./clean_old_lambda_versions.py: line 1: import: not found
Can someone help me with this. How can i execute this script and clean all my older versions in aws lambda ? or is there any other work around to clean the older version using jobs in gitlab ? Thanks in advance