feat: a couple of starter ssm documents which uses aws:loop
This commit is contained in:
@@ -0,0 +1,51 @@
|
|||||||
|
schemaVersion: '0.3'
|
||||||
|
mainSteps:
|
||||||
|
- name: GetParameter
|
||||||
|
action: aws:executeAwsApi
|
||||||
|
nextStep: ConvertInputToList
|
||||||
|
isEnd: false
|
||||||
|
# parameter contains comma separated ids (i.e. 111111111111,222222222222)
|
||||||
|
inputs:
|
||||||
|
Service: ssm
|
||||||
|
Api: GetParameter
|
||||||
|
Name: some-parameter
|
||||||
|
outputs:
|
||||||
|
- Name: Accounts
|
||||||
|
Selector: $.Parameter.Value
|
||||||
|
Type: String
|
||||||
|
# input needs to be transformed to a list of string in order to be used by aws:loop
|
||||||
|
- name: ConvertInputToList
|
||||||
|
action: aws:executeScript
|
||||||
|
nextStep: Loop
|
||||||
|
isEnd: false
|
||||||
|
inputs:
|
||||||
|
Runtime: python3.11
|
||||||
|
Handler: script_handler
|
||||||
|
InputPayload:
|
||||||
|
accounts: '{{ GetParameter.Accounts }}'
|
||||||
|
Script: |
|
||||||
|
def script_handler(events, context):
|
||||||
|
return events['accounts'].split(',')
|
||||||
|
outputs:
|
||||||
|
- Name: AccountList
|
||||||
|
Selector: $.Payload
|
||||||
|
Type: StringList
|
||||||
|
- name: Loop
|
||||||
|
action: aws:loop
|
||||||
|
isEnd: true
|
||||||
|
inputs:
|
||||||
|
Iterators: '{{ ConvertInputToList.AccountList }}'
|
||||||
|
IteratorDataType: String
|
||||||
|
Steps:
|
||||||
|
- name: PrintInput
|
||||||
|
action: aws:executeScript
|
||||||
|
isEnd: true
|
||||||
|
inputs:
|
||||||
|
Runtime: python3.11
|
||||||
|
Handler: script_handler
|
||||||
|
InputPayload:
|
||||||
|
accountId: '{{Loop.CurrentIteratorValue}}'
|
||||||
|
Script: |
|
||||||
|
def script_handler(events,context):
|
||||||
|
return {"accountId": events.get('accountId')}
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
schemaVersion: '0.3'
|
||||||
|
mainSteps:
|
||||||
|
- name: ListAccounts
|
||||||
|
action: aws:executeAwsApi
|
||||||
|
nextStep: Loop
|
||||||
|
isEnd: false
|
||||||
|
inputs:
|
||||||
|
Service: organizations
|
||||||
|
Api: ListAccounts
|
||||||
|
outputs:
|
||||||
|
- Type: StringList
|
||||||
|
Name: Accounts
|
||||||
|
Selector: $.Accounts..Id
|
||||||
|
- name: Loop
|
||||||
|
action: aws:loop
|
||||||
|
isEnd: true
|
||||||
|
inputs:
|
||||||
|
Iterators: '{{ ListAccounts.Accounts }}'
|
||||||
|
IteratorDataType: StringList
|
||||||
|
Steps:
|
||||||
|
- name: PrintInput
|
||||||
|
action: aws:executeScript
|
||||||
|
isEnd: true
|
||||||
|
inputs:
|
||||||
|
Runtime: python3.11
|
||||||
|
Handler: script_handler
|
||||||
|
InputPayload:
|
||||||
|
accountId: '{{Loop.CurrentIteratorValue}}'
|
||||||
|
Script: |
|
||||||
|
def script_handler(events,context):
|
||||||
|
return {"accountId": events.get('accountId')}
|
||||||
|
|
||||||
Reference in New Issue
Block a user