Skip to content

Instantly share code, notes, and snippets.

@sambanks
Created October 14, 2019 04:27
Show Gist options
  • Select an option

  • Save sambanks/1ef717e6eb617fe5363035b689869d01 to your computer and use it in GitHub Desktop.

Select an option

Save sambanks/1ef717e6eb617fe5363035b689869d01 to your computer and use it in GitHub Desktop.
- name: Assuming role in aws account
sts_assume_role:
region: "{{cf_region}}"
role_arn: "{{cf_role_arn}}"
role_session_name: "cf_session"
aws_access_key: "{{cf_aws_access_key|default(omit)}}"
aws_secret_key: "{{cf_aws_secret_key|default(omit)}}"
register: assumed_role
- name: Register assumed role and stack name facts
set_fact:
assumed_role: "{{assumed_role}}"
- name: List all functions
lambda_facts:
region: "{{cf_region}}"
aws_access_key: "{{assumed_role.sts_creds.access_key}}"
aws_secret_key: "{{assumed_role.sts_creds.secret_key}}"
security_token: "{{assumed_role.sts_creds.session_token}}"
loop_control:
loop_var: sub_item
- name: Get all versions per function
lambda_facts:
query: versions
function_name: "{{sub_item.key}}"
region: "{{cf_region}}"
aws_access_key: "{{assumed_role.sts_creds.access_key}}"
aws_secret_key: "{{assumed_role.sts_creds.secret_key}}"
security_token: "{{assumed_role.sts_creds.session_token}}"
register: lambda_versions
loop: "{{lambda_facts.function|dict2items}}"
loop_control:
label: "{{sub_item.key}}"
loop_var: sub_item
- name: Create list
set_fact:
lambda_list: []
- name: Add versions to list
set_fact:
lambda_list: "{{lambda_list+(sub_item.ansible_facts.lambda_facts.function|dict2items)}}"
loop: "{{lambda_versions.results}}"
loop_control:
label: "{{sub_item.sub_item.key}}"
loop_var: sub_item
- name: Delete old versions
shell:
"AWS_ACCESS_KEY_ID={{assumed_role.sts_creds.access_key}}
AWS_SECRET_ACCESS_KEY={{assumed_role.sts_creds.secret_key}}
AWS_SESSION_TOKEN={{assumed_role.sts_creds.session_token}}
aws lambda delete-function
--region {{cf_region}}
--function-name {{sub_item.1.function_name}}
--qualifier {{sub_item.1.version}}"
with_subelements:
- "{{lambda_list}}"
- value.versions
loop_control:
label: "{{sub_item.1.function_name+'-'+sub_item.1.version}}"
extended: yes
loop_var: sub_item
when:
- sub_item.1.version != "$LATEST"
- (sub_item.1.version|int) <
(((lambda_list|items2dict)[sub_item.0.key].versions[-1].version|int) - 5)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment