AWS DataPipeline EvaluateExpression с использованием Java SDK - PullRequest
0 голосов
/ 26 августа 2018

Используя AWS DataPipeline API , я пытаюсь программно оценить Выражение , как показано ниже:

sometext-#{format(@scheduledStartTime, 'YYYYMMddHHmmss')

Чтобы оценить выражение, я 'используя PipelineObject, который выглядит примерно так:

Id:@MyPipelineObject_2018-08-26T01:00:00
Name:@MyPipelineObject_2018-08-26T01:00:00
     - Key:@scheduledStartTime
     - StringValue:2018-08-26T01:00:00
     - Key:@scheduledEndTime
     - StringValue:2018-08-27T01:00:00

Как я могу оценить выражение, учитывая, что я знаю pipeId и pipeObjectId?Я использую Java AWS SDK и создаю EvaluateExpressionRequest примерно так:

String expressionToBeEvaluated = "sometext-#{format(@scheduledStartTime, 'YYYYMMddHHmmss')";
String myPipelineObjectId = "@MyPipelineObject_2018-08-26T01:00:00";

EvaluateExpressionRequest evaluateExpressionRequest = new EvaluateExpressionRequest()
                .withPipelineId(myPipelineId)
                .withExpression(expressionToBeEvaluated)
                .withObjectId(myPipelineObjectId);

Однако из документов мне не ясно, как на самом деле выполнить запрос сEvaluateExpressionRequest объект.Я посмотрел на EvaluateExpressionResult, но метод setEvaluatedExpression принимает только String в качестве ввода.

Я делаю что-то не так, пропускаю что-то фундаментальное, или SDK простоне поддерживает то, что я пытаюсь сделать?

Буду признателен за любые предложения или предложения.Спасибо!

1 Ответ

0 голосов
/ 26 августа 2018

Итак, я понял это через несколько минут после публикации моего вопроса.Оказывается, ответ очень прост, и я просто слишком долго смотрю на это.Объект DataPipeline имеет метод evaluateExpression(), который принимает EvaluateExpressionRequest и возвращает EvaluateExpressionResult.Вы получите оцененный результат, вызвав getEvaluatedExpression для возвращенного объекта.

EvaluateExpressionRequest evaluateExpressionRequest = new EvaluateExpressionRequest()
                .withPipelineId(myPipelineId)
                .withExpression(expressionToBeEvaluated)
                .withObjectId(myPipelineObjectId);

dataPipeline.evaluateExpression(evaluateExpressionRequest).getEvaluatedExpression(); //evaluates to sometext-20180826010000

Надеюсь, что поможет любому с подобным заболеванием!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...