Dagster可以通过API触发作业运行吗?

4

我已经四处寻找答案,但似乎找不到我要找的

我想创建一个 API 端点,可以将信息传递给 dagster 资产并触发运行。例如,我在 dagster 中有以下资产

@asset
def player_already_registered(player_name: str):
    q = text(
            f'''
                SELECT 
                    COUNT(*)
                FROM
                    `player_account_info`
                WHERE
                    summonerName = :player_name
            '''
        )

    result = database.conn.execute(q, player_name=player_name).fetchone()[0]
    return bool(result)

假设我已经有了一个端点,可以通过GET参数传递player_name。那么我该如何将该参数传递给资产并运行作业本身呢?
1个回答

2
  1. 使用提供的实例对象 (https://georgheiler.com/2022/02/02/interactive-dagster-debugging/)

    您可以像链接中所示一样使用Python对象“instance”来访问从Dagit中也可以访问的所有内容。(我没有过度使用它,但也许链接可以帮助您。)

  2. 使用Dagster Graph ql api (https://docs.dagster.io/concepts/dagit/graphql)

    我还没有使用过它,所以我只能指向链接。

  3. 使用分区 (https://docs.dagster.io/_modules/dagster/_core/definitions/partition#dynamic_partitioned_config)

您可以使用分区来触发执行每个分区的作业。我经常使用这个功能,因为它可以让您真正控制哪些资产与哪些分区(参数)相关联。该链接提供了一个动态分区的示例,由传感器发现,然后为每个分区执行作业,并在Dagit中跟踪分区。

希望这可以帮助您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接