not-rogue.hatenablog.com
では、
- タスクはローカルのDocker agent
- メタデータとWebUIはPrefectCloud
でしたが、全部をローカルで動かすことも出来ます。
準備
https://docs.prefect.io/core/getting_started/installation.html
あたりをインストールした後
prefect backend server
prefect server start
を実行します。うまくいくと
http://localhost:8080/
でPrefectのWebUIが見られます。
Dockerコンテナが色々起動しています
> docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
46b341464ee3 prefecthq/ui:0.10.5 "/intercept.sh" 13 days ago Up 13 days 80/tcp, 0.0.0.0:8080->8080/tcp cli_ui_1
bfba03d93db3 prefecthq/apollo:0.10.5 "npm run serve" 13 days ago Up 13 days 0.0.0.0:4200->4200/tcp cli_apollo_1
6e90ba52339f prefecthq/server:0.10.5 "python src/prefect_…" 13 days ago Up 13 days cli_scheduler_1
13bdd322d7b6 prefecthq/server:0.10.5 "bash -c 'prefect-se…" 13 days ago Up 13 days 0.0.0.0:4201->4201/tcp cli_graphql_1
42d010c1bf38 hasura/graphql-engine:v1.1.0 "graphql-engine serve" 13 days ago Up 13 days 0.0.0.0:3000->3000/tcp cli_hasura_1
0c4d3a11b8b9 postgres:11 "docker-entrypoint.s…" 13 days ago Up 13 days 0.0.0.0:5432->5432/tcp cli_postgres_1
Flowを登録
from prefect import task, Flow
@task
def say_hello():
print("Hello, world!")
with Flow("Hello") as flow:
task = say_hello()
flow.register()
flow.run_agent
> python hello.py
Result Handler check: OK
Flow: http://localhost:8080/flow/9a90a3f4-0221-4a4f-8688-0e1a8ff78b5b
実行
この時点では、Flowが登録されただけで実行はされません。
Flowが実行されるには、
- FlowRunが作られて、scheduledなステータスになる
- Flow Runを監視し、実行するagent
が必要です。
FlowRunは、Flow画面の右上の「Quick Run」をクリックすると作れます。
agentは何種類かありますがLocalAgentで動かしてみましょう。
prefect agent start
____ __ _ _ _
| _ \ _ __ ___ / _| ___ ___| |_ / \ __ _ ___ _ __ | |_
| |_) | '__/ _ \ |_ / _ \/ __| __| / _ \ / _` |/ _ \ '_ \| __|
| __/| | | __/ _| __/ (__| |_ / ___ \ (_| | __/ | | | |_
|_| |_| \___|_| \___|\___|\__| /_/ \_\__, |\___|_| |_|\__|
|___/
[2020-05-19 13:03:38,521] INFO - agent | Starting LocalAgent with labels ['kimuramakotonoMacBook-Pro.local', 'azure-flow-storage', 'gcs-flow-storage', 's3-flow-storage']
[2020-05-19 13:03:38,521] INFO - agent | Agent documentation can be found at https://docs.prefect.io/orchestration/
[2020-05-19 13:03:38,521] INFO - agent | Agent connecting to the Prefect API at http://localhost:4200
[2020-05-19 13:03:38,635] INFO - agent | Waiting for flow runs...
[2020-05-19 13:03:38,950] INFO - agent | Found 1 flow run(s) to submit for execution.
[2020-05-19 13:03:39,000] INFO - agent | Deploying flow run 705d62e1-c436-4ed6-a90b-47f2679a5567