2017-10-26 3 views
-1

私はしばらくの間、私の関数を実行していましたが、突然もう何も働きません。私はここで見つけた指示に従ったhttps://prmadi.com/running-python-code-on-azure-functions-app/成功した。コードはGithubから自動的に展開されました。しかし、数週間前に事態が悪化しました。私は自分の問題を解決していないが、いくつか考え出した。python3はAzure関数では動作しなくなった

1)私がインストールしたモジュール(pipを使用している)がなくなった、または見つからなくなった。私はそれらをインストールすることができましたが、数時間で消えます。

2)関数は2.7を実行します。私は、PATHが変更されたためだと思います。以前は\ home \ site \ toolsがパスにありました。それはもはや事実ではない。これまでに働いたのは、nuget site-extensionを使ってpython 3をインストールし、それを\ home \ site \ toolsフォルダに移動することでした。私はpython3のインストールを例えばに移動しようとしました。/home/site/deployments/toolsにあります。

更新:ここの手順を使用しようとしました:https://lnx.azurewebsites.net/python-3-6-deployments-on-azure-function-apps/私はPython 3を実行している私の機能を取得することができ、私はAzureに必要なモジュールをインストールさせることができました。だから、簡単に言えば、私は、次の次のフォルダ構造を持っている:

requirements.txt 
├── function 
   ├── deploy.cmd 
   ├── .deployment 
   ├── function.json 
   ├── run.py 

展開が

@if "%SCM_TRACE_LEVEL%" NEQ "4" @echo off 

:: -------------------------------------------------------- 
:: KUDU Deployment Script for Python 3.6 on Azure Functions 
:: Version: 0.1 
:: -------------------------------------------------------- 

:: Prerequisites 
:: ------------- 

:: Verify node.js installed 
where node 2>nul >nul 
IF %ERRORLEVEL% NEQ 0 (
    echo Missing node.js executable, please install node.js, if already installed make sure it can be reached from current environment. 
    goto error 
) 

:: Setup 
:: ----- 

setlocal enabledelayedexpansion 

SET ARTIFACTS=%~dp0%..\artifacts 

IF NOT DEFINED DEPLOYMENT_SOURCE (
    SET DEPLOYMENT_SOURCE=%~dp0%. 
) 

IF NOT DEFINED DEPLOYMENT_TARGET (
    SET DEPLOYMENT_TARGET=%ARTIFACTS%\wwwroot 
) 

IF NOT DEFINED NEXT_MANIFEST_PATH (
    SET NEXT_MANIFEST_PATH=%ARTIFACTS%\manifest 

    IF NOT DEFINED PREVIOUS_MANIFEST_PATH (
    SET PREVIOUS_MANIFEST_PATH=%ARTIFACTS%\manifest 
) 
) 

IF NOT DEFINED KUDU_SYNC_CMD (
    :: Install kudu sync 
    echo Installing Kudu Sync 
    call npm install kudusync -g --silent 
    IF !ERRORLEVEL! NEQ 0 goto error 

    :: Locally just running "kuduSync" would also work 
    SET KUDU_SYNC_CMD=%appdata%\npm\kuduSync.cmd 
) 
goto Deployment 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
:: Deployment 
:: ---------- 

:Deployment 
echo Handling python deployment. 

:: 1. KuduSync 
IF /I "%IN_PLACE_DEPLOYMENT%" NEQ "1" (
    call :ExecuteCmd "%KUDU_SYNC_CMD%" -v 50 -f "%DEPLOYMENT_SOURCE%" -t "%DEPLOYMENT_TARGET%" -n "%NEXT_MANIFEST_PATH%" -p "%PREVIOUS_MANIFEST_PATH%" -i ".git;.hg;.deployment;deploy.cmd" 
    IF !ERRORLEVEL! NEQ 0 goto error 
) 

IF NOT EXIST "%DEPLOYMENT_TARGET%\requirements.txt" goto postPython 
IF EXIST "%DEPLOYMENT_TARGET%\.skipPythonDeployment" goto postPython 

echo Detected requirements.txt. You can skip Python specific steps with a .skipPythonDeployment file. 


pushd "%DEPLOYMENT_TARGET%" 

:: 2. Create virtual environment 
IF NOT EXIST "D:\home\site\tools\python36*" (

    echo Creating Python 3.6.1 x64 virtual environment... 
    nuget.exe install -Source https://www.siteextensions.net/api/v2/ -OutputDirectory D:\home\site\tools python361x64 
    mv /d/home/site/tools/python3*/content/python*/* /d/home/site/tools/ 
    IF !ERRORLEVEL! NEQ 0 goto error 

) ELSE (
    echo Found compatible virtual environment. 
) 

:: 3. Install packages 
echo Pip install requirements... 
D:\home\site\tools\python.exe -m pip install -r "%DEPLOYMENT_TARGET%\requirements.txt" 
IF !ERRORLEVEL! NEQ 0 goto error 

popd 

:postPython 

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
goto end 

:: Execute command routine that will echo out when error 
:ExecuteCmd 
setlocal 
set _CMD_=%* 
call %_CMD_% 
if "%ERRORLEVEL%" NEQ "0" echo Failed exitCode=%ERRORLEVEL%, command=%_CMD_% 
exit /b %ERRORLEVEL% 

:error 
endlocal 
echo An error has occurred during web site deployment. 
call :exitSetErrorLevel 
call :exitFromFunction 2>nul 

:exitSetErrorLevel 
exit /b 1 

:exitFromFunction 
() 

:end 
endlocal 
echo Finished successfully. 

これは、実際に働いたが、しばらくした後、私はどちらか1)バックのpython 2.7にしたと何のパッケージや、私が取得されていませんエラーメッセージ

Exception while executing function: Functions.toc 
Microsoft.Azure.WebJobs.Host.FunctionInvocationException : Exception while executing function: Functions.toc ---> System.ApplicationException 
    at async Microsoft.Azure.WebJobs.Script.Description.ScriptFunctionInvoker.ExecuteScriptAsync(String path,String arguments,Object[] invocationParameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\Script\ScriptFunctionInvoker.cs : 114 
    at async Microsoft.Azure.WebJobs.Script.Description.ScriptFunctionInvoker.InvokeCore(Object[] parameters,FunctionInvocationContext context) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\Script\ScriptFunctionInvoker.cs : 55 
    at async Microsoft.Azure.WebJobs.Script.Description.FunctionInvokerBase.Invoke(Object[] parameters) at C:\projects\azure-webjobs-sdk-script\src\WebJobs.Script\Description\FunctionInvokerBase.cs : 95 
    at async Microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker`2.InvokeAsync[TReflected,TReturnType](TReflected instance,Object[] arguments) 
    at async Microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker`2.InvokeAsync[TReflected,TReturnValue](Object instance,Object[] arguments) 
    at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance) 
    at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithWatchersAsync(IFunctionInstance instance,ParameterHelper parameterHelper,TraceWriter traceWriter,CancellationTokenSource functionCancellationTokenSource) 
    at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??) 
    at async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.ExecuteWithLoggingAsync(??) 
    End of inner… 

私はコンソールを開き、エラーなしでコードを実行できます。だから私は機能を再デプロイしようとしましたが、運がありません。私は紺碧がいくつかの間隔でいくつかのクリーンアップや何かを実行すると思いますか?

最高

+0

こんにちは:-)再び動作して、あなたはより多くを投稿してくださいだろう私にあなたを助けるためのコードの詳細? –

+0

こんにちはジェイ・ゴング。私はいくつかの詳細を追加しようとしました:-) –

答えて

関連する問題