0

我想在调用实体时添加其他参数,该参数继承自另一个实体,如下所示:

from dagster import pipeline, repository, schedule, solid, InputDefinition, solid

@solid
def hello():
    return 1


@solid(
    input_defs=[
        InputDefinition("name", str),
        InputDefinition("age", int),
    ]
)
def hello2(hello_: int, name: str, age: int):
    print(f"Hello {name}, {age+hello_}")


@pipeline
def pipe_2():
    x = hello()
    y = hello2(x, "Marcus", 20)


@repository
def deploy_docker_repository():
    return [pipe_2, my_schedule]

但是从 dagster API grpc 运行管道时,出现以下错误:

dagster.core.errors.DagsterInvalidDefinitionError: In @pipeline pipe_2, received invalid
type <class 'str'> for input "name" (at position 1) in solid invocation "hello2".
Must pass the output from 
previous solid invocations or inputs to the composition 
function as inputs when invoking solids during composition.

怎么修?

4

1 回答 1

1

"Marcus"并且20需要都是其他固体的输出,例如

@solid
def name():
    return "Marcus"

@solid
def age():
    return 20

@pipeline
def pipe2():
    hello2(hello(), name(), age())

否则您可以将它们作为配置传递,即config_schema传递给hello2而不是输入。

于 2021-09-07T17:01:55.203 回答