使用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不支持我想要做的事情?
任何意见或建议都将不胜感激。谢谢!
发布于 2018-08-27 02:29:43
所以我在贴出我的问题几分钟后就想明白了。事实证明,答案很简单,我只是研究这个东西太久了。DataPipeline
对象具有方法evaluateExpression()
,该方法接受一个EvaluateExpressionRequest
并返回EvaluateExpressionResult
。您可以通过对返回的对象调用getEvaluatedExpression
来获取计算结果。
EvaluateExpressionRequest evaluateExpressionRequest = new EvaluateExpressionRequest()
.withPipelineId(myPipelineId)
.withExpression(expressionToBeEvaluated)
.withObjectId(myPipelineObjectId);
dataPipeline.evaluateExpression(evaluateExpressionRequest).getEvaluatedExpression(); //evaluates to sometext-20180826010000
希望这对任何有类似痛苦的人有所帮助!
https://stackoverflow.com/questions/52029051
复制相似问题