0

We have a requirement to create a state machine which includes to datasync tasks followed by each other. These datasync tasks are already created and now I want to execute it using step functions one after another. What is the resource to execute a datasync task. For eg: For executing a Glue Job we give Resource:arn:aws:states:::glue:startJobRun.sync

What Resource string is used for executing a datasync task?

PPK
  • 55
  • 7

1 Answers1

1

Step Functions integrates with AWS DataSync using AWS SDK Service Integrations. The Resource string will be of the form arn:aws:states:::aws-sdk:datasync:<api-action>

The easiest way to find this sort of information is with Workflow Studio. As you can see in the image below, it allows you to search through available services and api actions to find what you need, then just drag it into your workflow.

enter image description here

Step Functions does not have an Optimized Integration for DataSync and therefore only supports the Request Response integration pattern. As such, I suspect you will want to use the Job Poller pattern (Workflow Studio helps you here as well) to start the task execution then monitor for completion.

enter image description here

For easier re-use, you might want to implement this in a state machine that you can then reuse by calling it from other state machines when needed. This blog post goes into detail on how to do a similar thing with Glue Crawler, but much of it will be applicable.

Justin Callison
  • 1,279
  • 2
  • 6
  • Thanks Justin . You are savior – PPK Apr 18 '23 at 09:57
  • 1
    Glad it was useful, happy to help! – Justin Callison Apr 18 '23 at 13:26
  • Hey Justin , I'm using the TaskToken feature for a datasync task to get completed. I have added waitForTaskToken at the end in the resource but how do I use TaskToken feature in state machine definition wrt to Datasync. Do you have any idea? @Justin – PPK Apr 18 '23 at 16:15