我正在使用AWS DataPipeline API,以编程方式评估Expression,如下所示:
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 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只是不支持我正在尝试做的事情?
任何输入或建议,我们将不胜感激。谢谢!
答案 0 :(得分:0)
因此,我在发布问题几分钟后就知道了。事实证明答案很简单,而我一直在研究这些东西太久了。 DataPipeline
对象具有方法evaluateExpression()
,该方法采用EvaluateExpressionRequest
并返回EvaluateExpressionResult
。通过在返回的对象上调用getEvaluatedExpression
,可以得到评估结果。
EvaluateExpressionRequest evaluateExpressionRequest = new EvaluateExpressionRequest()
.withPipelineId(myPipelineId)
.withExpression(expressionToBeEvaluated)
.withObjectId(myPipelineObjectId);
dataPipeline.evaluateExpression(evaluateExpressionRequest).getEvaluatedExpression(); //evaluates to sometext-20180826010000
希望能帮助患有类似疾病的人!