#amazon-web-services #aws-lambda #aws-sdk #aws-step-functions #aws-state-machine
#amazon-веб-сервисы #aws-лямбда #aws-sdk #aws-пошаговые функции #aws-государственная машина
Вопрос:
Я работаю с AWS SDK в узле env lambda; Я пытаюсь получить историю выполнения для проверки запущенных государственных машин перед вызовом запуска.
Итак, я импортировал SDK и могу запустить государственную машину
const AWS = require('aws-sdk'); const StepFunctions = new AWS.StepFunctions(); const startParams = { stateMachineArn: 'STATE MACHINE ARN', input: JSON.stringify({}), }; StepFunctions.startExecution(startParams, (error, data) =gt; { if (error) { console.log( 'THERE WAS AN ERROR STARTING THE STATE MACHINE. DETAILS IN THE FOLLOWING LOG' ); console.log({ error }); } else { console.log('Step function triggered successfully.'); console.log({ data }); } });
вывод на консоль
Step function triggered successfully.
Однако результаты выглядят следующим образом, когда я пытаюсь получить историю выполнения государственных машин с тем же ARN.
const AWS = require('aws-sdk'); const StepFunctions = new AWS.StepFunctions(); const retrieveParams = { executionArn: 'STATE MACHINE ARN', maxResults: 10, reverseOrder: true, }; StepFunctions.getExecutionHistory(retrieveParams, (error, data) =gt; { if (error) { console.log( 'THERE WAS AN ERROR RETRIEVING EXECUTION HISTORY. DETAILS IN THE FOLLOWING LOG' ); console.log({ error }); } else { console.log('Execution history retrieved successfully.'); console.log({ data }); } });
консольный выход 1
THERE WAS AN ERROR RETRIEVING EXECUTION HISTORY. DETAILS IN THE FOLLOWING LOG
консольный выход 2
{ error: InvalidArn: Invalid Arn: 'Resource type not valid in this context: stateMachine' at Request.extractError (/opt/nodejs/node_modules/aws-sdk/lib/protocol/json.js:52:27) at Request.callListeners (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:106:20) at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:78:10) at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/request.js:688:14) at Request.transition (/opt/nodejs/node_modules/aws-sdk/lib/request.js:22:10) at AcceptorStateMachine.runTo (/opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:14:12) at /opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:26:10 at Request.lt;anonymousgt; (/opt/nodejs/node_modules/aws-sdk/lib/request.js:38:9) at Request.lt;anonymousgt; (/opt/nodejs/node_modules/aws-sdk/lib/request.js:690:12) at Request.callListeners (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:116:18) at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/sequential_executor.js:78:10) at Request.emit (/opt/nodejs/node_modules/aws-sdk/lib/request.js:688:14) at Request.transition (/opt/nodejs/node_modules/aws-sdk/lib/request.js:22:10) at AcceptorStateMachine.runTo (/opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:14:12) at /opt/nodejs/node_modules/aws-sdk/lib/state_machine.js:26:10 at Request.lt;anonymousgt; (/opt/nodejs/node_modules/aws-sdk/lib/request.js:38:9) { code: 'InvalidArn', time: 2021-12-08T22:19:25.017Z, requestId: 'REDACTED', statusCode: 400, retryable: false, retryDelay: 63.25312941163477 } }
Комментарии:
1. Можете ли вы поделиться своим опытом казни? вы можете замаскировать чувствительную часть, такую как AccountId. Также, случайно, вы не пытаетесь получить события для экспресс-выполнения?
2. Конечно! Мой ARN-это arn:aws:штаты:США-восток-2:———-:StateMachine:Дублирование-Уведомление-Рабочий процесс, И это стандартный рабочий процесс, а не экспресс
3. Так что это не executionArn, как я
:execution:
в нем не вижу, вместо ARN государственной машины paasig вам нужно получить Arn для выполнения и передать его.4. Вы мне очень помогли! Вы заставили меня понять, что я искал индивидуальное выполнение с этим синтаксисом. Не указано состояние выполнения». Я был в состоянии выполнять ` » Функции отчима. listExecutions() « И просто дайте ему ARN для шаговой машины. Спасибо!!