我如何 运行 具有 Pulumi 代码的 Flask API?

How do I run a Flask API that has Pulumi code?

我是 Pulumi 的新手,也是新手。我想编写一个 Flask API 来使用 Pulumi 提供 Scaleway 实例。我这样做可能完全错了,但我认为它可以作为触发 Pulumi 代码的常规 api 端点工作。

主要.py :

import pulumi
import pulumi_scaleway as scaleway
import flask

app = flask.Flask(__name__)
app.config["DEBUG"] = True

@app.route('/', methods=['GET'])
def home():
    return "<h1>Hello</p>"

@app.route('/create', methods=['GET'])
def create():

    public_ip = scaleway.InstanceIp("example")

    server = scaleway.InstanceServer("example",
                                     image="ubuntu_focal",
                                     type="DEV1-S",
                                     ip_id=public_ip.id,
                                     tags=["python"]
                                     )

if __name__ == '__main__':
    app.run()

当我 pulumi up 我得到:

/home/.../venv/bin/python: No module named

error: an unhandled error occurred: Program exited with non-zero exit code: 1

我真的不明白这里的错误是什么意思,有人知道我应该怎么做吗?

edit1:感谢 [pulumi/automation-api-examples][1] 回购,找出我做错了什么。我将 __ main__.py 重命名为 app.py 并做了 FLASK_RUN_PORT=1337 FLASK_ENV=development venv/bin/flask run

edit2:在我将 API 部署到容器中后,上述解决方案不起作用。现在我得到一个 Program run without the Pulumi engine available; re-run using the pulumi CLI 错误

感谢 pulumi/automation-api-examples 存储库,找出我做错了什么。我将 __ main__.py 重命名为 app.py 并做了 FLASK_RUN_PORT=1337 FLASK_ENV=development venv/bin/flask run