微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS Step Functions describe_execution

如何解决AWS Step Functions describe_execution

我通过使用成功执行它的 boto3.client('stepfunctions') 中的 start_execution 调用执行来运行状态机。

现在我想获取执行输出,所以我正在使用 describe_execution。但问题是当它记录时,我无法获得输出,因为状态仍为 RUNNING。我怎样才能让这个 describe_execution 等到状态成功

SF_CLIENT = boto3.client('stepfunctions')
sf_output = SF_CLIENT.start_execution(
                stateMachineArn=os.environ['STATE_MACHINE_ARN'],input=input)
            sf_response = SF_CLIENT.describe_execution(
                executionArn=sf_output['executionArn'])
            status = sf_response['status']

            while status != 'SUCCEEDED':
                sf_response = SF_CLIENT.describe_execution(
                    executionArn=sf_output['executionArn'])
                LOGGER.info("%s: %s" % ("EXECUTION STILL RUNNING",sf_response))
                if status != 'SUCCEEDED':
                    continue
                elif status == 'SUCCEEDED':
                    break

            LOGGER.info("%s: %s" % ("STEP FUNCTION EXECUTION OUTPUT",sf_output))
            LOGGER.info("%s: %s" % ("STEP FUNCTION EXECUTION RESPONSE",sf_response))

解决方法

正如您发现的那样,StartExecution 是异步的,不会等待执行完成。

以下是一些需要考虑的选项:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。