내용으로 건너뛰기

AWS Step Functions: how to deal with AWS API endpoints which support pagination

0

Hello,

I am using AWS Step Functions with the new AWS SDK integrations. I am wondering how to deal with API endpoints which return only a limit number of items like for instance "rds:describePendingMaintenanceActions" so that following requests using the "NextToken" value are required to get all data. Is there any construct/suggestion available how to model this. I am aware that I can use a Choice state in order to check if "NextToken" is empty or not and to act accordingly (go back to the API request step and repeat the whole process with the NextToken value) but this feels somehow clumsy. Thank you very much for any information.

질문됨 4년 전1.2천회 조회
3개 답변
0
수락된 답변

What you suggest is the right way to go at the moment, i.e., run the loop yourself and use a Choice state to check if the NextToken is empty as an exit criteria from the loop. If you need to do it in different places, maybe it is possible to do it with a nested workflow to run the loop.

AWS
전문가
답변함 4년 전
전문가
검토됨 일 년 전
  • Looping by using the NextToken is currently not working within Step Functions and SDK Integration, since the NextToken only works within the same IAM Session, but Step Functions assumes a new IAM Session/Role at each SDK Integration step/task. So the workaround is to call a Lambda which calls the API and the handles possible NextTokens.

0

Lambda supports up to 15 min execution time as of October 18, 2018. You could process the next tokens in the function itself.

AWS
답변함 4년 전
0

We use the same technique: We want to load > 1 million data sets from a database and process it with different lambda functions and do some other stuff with it. Therefore, we use a choice state with a loop within the step functions and have an "iterator" step that is loading new data right after the choice.

Seems like I can not add an image here, I'm sorry :)

I would NOT go the way Rodney Lester suggests to do the looping in Lambda as you do not have retries over certain batches for example.

답변함 4년 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.