如何将 stepfunction 执行 ID 附加到 SageMaker 作业名称?

Posted

技术标签:

【中文标题】如何将 stepfunction 执行 ID 附加到 SageMaker 作业名称?【英文标题】:How to append stepfunction execution id to SageMaker job names? 【发布时间】:2021-04-13 00:40:08 【问题描述】:

我有一个创建 SageMaker 批量转换作业的步进函数状态机,定义是用 Terraform 编写的,我想在批量转换作业名称中添加步进函数执行 ID:

在 stepfunction terraform 文件中:

  definition = templatefile("stepfuntion.json",
    
      xxxx
)

在“stepfuntion.json”中:

...
          "TransformJobName": "jobname-$$.Execution.Id",
  
          
      ,
        "End": true
      
    
  

但是在 terraform apply 之后,它并没有生成实际的 id,它给了我jobname-$$.Execution.Id,有人可以帮忙吗?

资源:https://docs.aws.amazon.com/step-functions/latest/dg/input-output-contextobject.html “要访问上下文对象,首先通过在末尾附加 .$ 来指定参数名称,就像在选择带有路径的状态输入时所做的那样。然后,要访问上下文对象数据而不是输入,请在路径前加上 $$。 . 这告诉 AWS Step Functions 使用路径来选择上下文对象中的节点。”

谁能告诉我我错过了什么?

【问题讨论】:

【参考方案1】:

您尝试使用 terraform 的 var 不知道它

jobname-$$.Execution.Id.

这是 Step 函数特有的,在状态机中可用,但不可用于 terraform。

【讨论】:

那么有没有办法在 Terraform 中做到这一点?因为阶跃函数是在 Terraform 中定义的。 如果您只想要一个随机的工作名称,我建议您使用来自 terraform 的 random_string 提供程序, 每次触发 stepfunction 时它会给我不同的字符串吗? 每次应用/规划 terraform 时都会给出不同的字符串。 通过生成随机字符串,我们并不真正知道stepfunction执行与作业之间的映射关系(尽管日志中有指向相关作业的链接)

以上是关于如何将 stepfunction 执行 ID 附加到 SageMaker 作业名称?的主要内容,如果未能解决你的问题,请参考以下文章

Step Function 中的 AWS Batch 作业执行结果

如何将列表元素的 ID 值附加到带有 .json 的链接?

PHP:通过 ID 将 html 内容附加(添加)到现有元素

如何将数据帧附加到具有重复 ID 的数据帧 [重复]

AWS Step and Batch 动态命令

如何使用标准 unix 命令将后缀附加到 HTML 文件中的 id?