Created
October 14, 2019 04:27
-
-
Save sambanks/1ef717e6eb617fe5363035b689869d01 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| - 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