我想根据收到的输入输出一个状态。
我创建了一个通用活动CopyFileActivity,将文件从一个 S3 存储桶复制到另一个。作为初始输入外部服务的名称,执行一些其他活动,然后执行CopyFileActivity活动。我有一个与每个服务对应的文件夹。有没有办法动态知道文件夹的名称作为输入CopyFileActivity?
初始输入如下:
{
"service": "xyz"
}
我的 S3 文件夹结构是这样external-test-<service_name>的,对于这种特殊情况为external-test-xyz.
我希望CopyFileActivity活动的输入为:
{
"sourceBucket": "external-test-xyz",
"destBucket": "internal-test-xyz"
}
注意 - 前缀external-test-和internal-test-是固定的。
各种方式:
- 更改活动代码并在活动中创建
sourceBucket和destBucket本身,而不是作为输入传递。但我想让这个活动通用,因为它会在许多其他场景中使用。 将初始输入更改为:
{ "service": "xyz", "sourceBucket": "external-test-xyz", "destBucket": "internal-test-xyz" }这会起作用,但是
sourceBucket是destBucket多余的参数。它也可能产生错误,因为有人给出可能会给出存储桶名称。将创建所需参数的通过状态
{ "Type": "Pass", "Parameters": { "service.$": "$.service", "sourceBucket.$": "external-test-", (something logic here) "destBucket.$": "internal-test-", (same logic here) "fileName": "fileName" }, "Next": "CopyFileActivity" }
我尝试做类似的事情"sourceBucket.$": "external-test-" + "$.service",但不正确。
有什么办法可以做到这一点,或者任何人都可以建议任何其他方法来处理这个问题。