cdklabs / cdklabs/cdk-ssm-documents
Error: Action not implemented as StringStep aws:runInstances
- Dominant language
- TypeScript
- Stars
- 30
- Forks
- 9
- Avg merge
- 1d 16m
- Merged PRs (30d)
- 7
Description
**Here is my cdk code**
```
ssm_documents.StringDocument.from_yaml(
self, "lustre-preload",
document_yaml=lustre_preload_document_yaml
)
```
**Here is my YAML Automation Document (it works if I copy / paste in the AWS console)**
```
schemaVersion: "0.3"
parameters:
filelist:
type: StringList
description: "(Required) The Lustre file list to preload on cluster"
mainSteps:
- description: Launch a micro instance which mount the Lustre Cluster and preload files
name: LaunchMicroInstance
action: aws:runInstances
nextStep: ChangeInstanceState
isEnd: false
inputs:
ImageId: ami-005e7be1c849abba7
InstanceType: t2.micro
SubnetId: subnet-xxxx
UserData: IyEvYmluL2Jhc2ggLWV4CgplY2hvICJBV1MgQmF0Y2ggZm9yIEZGTVBFRyA6IE1vdW50IEZTeCBMdXN0cmUgQ2x1c3RlciIKCmV4ZWMgPiA+KHRlZSAvdmFyL2xvZy91c2VyLWRhdGEubG9nfGxvZ2dlciAtdCB1c2VyLWRhdGEgLXMgMj4vZGV2L2NvbnNvbGUpIDI+JjEKCnVuYW1lIC1yCgpmc3hfZG5zbmFtZT1mcy0wYWFiZjMyOTNjY2YyYThkNy5mc3guZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20KZnN4X21vdW50bmFtZT1qNGtzYmJldgpmc3hfbW91bnRwb2ludD0vZnN4LWx1c3RyZQoKYW1hem9uLWxpbnV4LWV4dHJhcyBpbnN0YWxsIC15IGx1c3RyZQpta2RpciAtcCAiJGZzeF9tb3VudHBvaW50Igptb3VudCAtdCBsdXN0cmUgLW8gcmVsYXRpbWUsZmxvY2sgJHtmc3hfZG5zbmFtZX1AdGNwOi8ke2ZzeF9tb3VudG5hbWV9ICR7ZnN4X21vdW50cG9pbnR9CgplY2hvICJBV1MgQmF0Y2ggZm9yIEZGTVBFRyA6IE1vdW50IEZTeCBMdXN0cmUgQ2x1c3RlciA6IEVORCIK
- name: ChangeInstanceState
action: aws:changeInstanceState
description: Wait ec2 instance is running
nextStep: PreloadFileListOnLustre
isEnd: false
inputs:
InstanceIds: "{{ LaunchMicroInstance.InstanceIds }}"
DesiredState: running
CheckStateOnly: true
- name: PreloadFileListOnLustre
description: Execute Lustre command to preload files
action: aws:runCommand
nextStep: Loop
isEnd: false
inputs:
InstanceIds: "{{ LaunchMicroInstance.InstanceIds }}"
TimeoutSeconds: 600
DocumentName: "AWS-RunShellScript"
Parameters:
commands: |-
#!/bin/bash
lfs hsm_restore /fsx-lustre/tests/media-assets/norisleepingmusic2_480p.mp4
- name: Loop
description: Wait 20 times x 30 seconds = 10 min to preload the file
action: aws:loop
isEnd: true
inputs:
MaxIterations: 30
LoopCondition:
Variable: '{{ PreloadFileListOnLustre.Output }}'
StringEquals: preloaded
Steps:
- name: Sleep
action: aws:sleep
nextStep: IsFileListPreloaded
isEnd: false
inputs:
Duration: PT30S
- description: Check if file is preloaded
name: IsFileListPreloaded
action: aws:runCommand
isEnd: true
inputs:
InstanceIds: '{{ LaunchMicroInstance.InstanceIds }}'
TimeoutSeconds: 600
DocumentName: AWS-RunShellScript
Parameters:
commands: |-
#!/bin/bash
lfs hsm_state /fsx-lustre/tests/media-assets/norisleepingmusic2_480p.mp4 | grep -q 'archived' && echo 'preloaded'
```
**And the error raised by the function**
```
raise RuntimeError(resp.error) from JavaScriptError(resp.stack)
RuntimeError: Error: Action not implemented as StringStep aws:runInstances
```
Contributor guide
Research direction
Start with the from_yaml call and trace how the document handles the aws:runInstances action, using the reported StringStep error as the entry point. Confirm the behavior against the supplied Automation Document and determine what coverage is needed so this action is accepted without raising the error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, typescript
- Domain
- cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100