как запустить выполнение из плана запуска с flytesdk - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь использовать flytesdk для запуска выполнения из плана запуска. Мне дали пример

lp = SdkLaunchPlan.fetch('project', 'domain', 'name',  'version')
ex = lp.execute('project', 'domain' inputs={'a': 1, 'b': 'hello'}, <name='optional idempotency string'>)

, но похоже, что SdkLaunchPlan.execute () не реализован, а SdkLaunchPlan.execute_with_literals () равен.

Я смог выполнить его с этим кодом :

#I omitted the version parameter because the launch plan is active    
lp = flytekit.common.launch_plan.SdkLaunchPlan.fetch(project="prj", domain="development", name="train.single.test_launch_plan")
literals = flytekit.clis.helpers.construct_literal_map_from_parameter_map(lp.default_inputs, {"depth": "False"})
lp.execute_with_literals("prj", "development", literal_inputs=literals)

это правильный способ сделать это или есть лучший?

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Плохо, похоже, что автозаполнение моего редактора (VSCode) не распознало метод .execute () ... Я все равно попробовал, и он работает как рекламируется

0 голосов
/ 07 февраля 2020

На какой версии flytekit вы работаете? Оба должны работать. Я думаю, что выполнить немного проще, когда у вас запущен терминал i python. Мне удалось запустить выполнение в моем кластере с помощью следующих команд:

(examples3) alice:~ [docker-desktop] $ ipython
Python 3.7.5 (default, Nov  1 2019, 02:16:32)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.7.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from flytekit.clis.flyte_cli.main import _detect_default_config_file
Using default config file at /Users/alice/.flyte/config

In [2]: from flytekit.common.launch_plan import SdkLaunchPlan

In [3]: lp = SdkLaunchPlan.fetch("flyteexamples", "development", "app.workflows.work.WorkflowWithIO", "8f49b8d8c04251865a7a8aba1b423293efc51374")

In [4]: lp.execute('flyteexamples', 'development', inputs={'a': 42, 'b': 'hello world'})

Код для execute_with_literals находится здесь: https://github.com/lyft/flytekit/blob/5a0a8da9251bd13bd67b71e0b05b6e59ecb970f9/flytekit/common/launch_plan.py#L186

И код для execute находится здесь: https://github.com/lyft/flytekit/blob/5a0a8da9251bd13bd67b71e0b05b6e59ecb970f9/flytekit/common/mixins/executable.py#L8

Разница между ними заключается в том, что один предназначен для работы с необработанными литералами Python, а другой - для работы с Flyte. буквенные типы.

...