AWS Step 函数使用输入值来完成命令
AWS Step function use input value to make complete command
如何在字符串中间使用我的状态机中的输入?
例如,我想使用这样的输入参数创建一个命令
["python test.py", "--name=$.name", "--age=$.age"]
但是根据 AWS 文档,我不能像上面那样通过。我只能通过like
{"Command.$": "$.age"}
为什么需要这种奇怪的结构。为什么我需要在密钥中使用.$
。为什么我不能在任何地方自由使用 $.age
?
我想达到的效果是这样的。
{
"Comment": "A description of my state machine",
"StartAt": "Pipeline",
"States": {
"Run Pipeline": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"LaunchType": "FARGATE",
"Cluster": "aaaaaaaaaaaaaa",
"TaskDefinition": "aaaaaaaaaaaaaa",
"Overrides": {
"ContainerOverrides": [{
"Name": "my_container",
"Command": [
"python test.py",
"--name=$.name",
"--age=$.age"
]
}]
}
},
"End": true
}
}
}
我的步进函数输入在哪里
{"name": "Rahul", "age": 25}
.$
告诉 step-functions 您传递的是路径而不是文字字符串值。
如果您想从输入构造一个字符串,您应该能够使用固有的字符串格式:
States.Format('python test.py --name={} --age={}', $.name, $.age)
{
"Comment": "A description of my state machine",
"StartAt": "Run Pipeline",
"States": {
"Run Pipeline": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"LaunchType": "FARGATE",
"Cluster": "aaaaaaaaaaaaaa",
"TaskDefinition": "aaaaaaaaaaaaaa",
"Overrides": {
"ContainerOverrides": [{
"Name": "my_container",
"Command.$": "States.Array(States.Format('python test.py --name={} --age={}', $.name, $.age))"
}]
}
},
"End": true
}
}
}
States.Array
从输入列表中创建一个数组。
States.Format
允许您使用文字和内插(变量)输入构造字符串。
如何在字符串中间使用我的状态机中的输入?
例如,我想使用这样的输入参数创建一个命令
["python test.py", "--name=$.name", "--age=$.age"]
但是根据 AWS 文档,我不能像上面那样通过。我只能通过like
{"Command.$": "$.age"}
为什么需要这种奇怪的结构。为什么我需要在密钥中使用.$
。为什么我不能在任何地方自由使用 $.age
?
我想达到的效果是这样的。
{
"Comment": "A description of my state machine",
"StartAt": "Pipeline",
"States": {
"Run Pipeline": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"LaunchType": "FARGATE",
"Cluster": "aaaaaaaaaaaaaa",
"TaskDefinition": "aaaaaaaaaaaaaa",
"Overrides": {
"ContainerOverrides": [{
"Name": "my_container",
"Command": [
"python test.py",
"--name=$.name",
"--age=$.age"
]
}]
}
},
"End": true
}
}
}
我的步进函数输入在哪里
{"name": "Rahul", "age": 25}
.$
告诉 step-functions 您传递的是路径而不是文字字符串值。
如果您想从输入构造一个字符串,您应该能够使用固有的字符串格式:
States.Format('python test.py --name={} --age={}', $.name, $.age)
{
"Comment": "A description of my state machine",
"StartAt": "Run Pipeline",
"States": {
"Run Pipeline": {
"Type": "Task",
"Resource": "arn:aws:states:::ecs:runTask.sync",
"Parameters": {
"LaunchType": "FARGATE",
"Cluster": "aaaaaaaaaaaaaa",
"TaskDefinition": "aaaaaaaaaaaaaa",
"Overrides": {
"ContainerOverrides": [{
"Name": "my_container",
"Command.$": "States.Array(States.Format('python test.py --name={} --age={}', $.name, $.age))"
}]
}
},
"End": true
}
}
}
States.Array
从输入列表中创建一个数组。
States.Format
允许您使用文字和内插(变量)输入构造字符串。