Python 使用Azure函数的无服务器Django
我一直在寻找在Azure函数上的无服务器环境中运行Django的方法 假设我只能使用Azure服务,我想确保我们将要编写的Django代码应该是可移植的(可以部署到其他任何地方) 我一直在尝试几种方法,包括和,但是,我仍然无法让环境无错误地运行Python 使用Azure函数的无服务器Django,python,django,azure,serverless-framework,serverless,Python,Django,Azure,Serverless Framework,Serverless,我一直在寻找在Azure函数上的无服务器环境中运行Django的方法 假设我只能使用Azure服务,我想确保我们将要编写的Django代码应该是可移植的(可以部署到其他任何地方) 我一直在尝试几种方法,包括和,但是,我仍然无法让环境无错误地运行 我想确定的是,即使有人对运行Django serverless有一个可行的想法,并且对一个好的资源有一些指导?我不知道你到底想用Django做什么,但我实现了Azure函数来运行Django命令(即) 首先,我按照以下步骤在自定义docker Linux
我想确定的是,即使有人对运行Django serverless有一个可行的想法,并且对一个好的资源有一些指导?我不知道你到底想用Django做什么,但我实现了Azure函数来运行Django命令(即) 首先,我按照以下步骤在自定义docker Linux容器中创建函数应用程序: 这包括通过位于my Django项目根目录下的Azure functions CLI和基于Docker映像的Docker容器设置函数应用程序
mcr.microsoft.com/azure functions/python:2.0-python3.7-slim
然后,我通过CLI创建了一个Azure函数:
func new——命名我的函数——模板“计时器触发器”
为了启动Django并调用自定义命令,我的函数代码如下所示
def main(mytimer: func.TimerRequest) -> None:
utc_timestamp = datetime.datetime.utcnow().replace(
tzinfo=datetime.timezone.utc).isoformat()
if mytimer.past_due:
logging.info('The timer is past due!')
logging.info('Python timer trigger function started at %s', utc_timestamp)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mydjango.settings')
django.setup()
call_command('my_command') # possible to add command params here
logging.info('Successfully run my command')
重要的是
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mydjango.settings')
django.setup()
在函数代码中设置Django
也许这对你的目的也有帮助。如果你有任何问题,我也可以给你更多的细节