繁体   English   中英

使用Java SDK的AWS DataPipeline EvaluateExpression

[英]AWS DataPipeline EvaluateExpression using Java SDK

使用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

在知道pipelineId和pipelineObjectId的情况下,如何评估表达式? 我正在使用Java AWS开发工具包 ,并创建一个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对象发出请求。 我看过EvaluateExpressionResultsetEvaluatedExpression方法仅将String作为输入。

我是在做错什么,缺少基本知识,还是SDK只是不支持我正在尝试做的事情?

任何意见或建议将不胜感激。 谢谢!

因此,我在发布问题后几分钟就知道了。 事实证明答案很简单,而我一直在研究这些东西太久了。 DataPipeline对象具有方法EvaluateExpressionRequest evaluateExpression() ,该方法接受EvaluateExpressionRequest并返回EvaluateExpressionResult 您可以通过对返回的对象调用getEvaluatedExpression获得评估结果。

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

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

希望对任何有类似痛苦的人有所帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM