Wie nenne ich eine Azure -Funktion, die auf Localhost funktioniert und 500 im Azure -Portal zurückgibt?Python

Python-Programme
Anonymous
 Wie nenne ich eine Azure -Funktion, die auf Localhost funktioniert und 500 im Azure -Portal zurückgibt?

Post by Anonymous »

Ich habe eine Azure -Funktion, die in VSCODE mit Python erstellt wurde. Die API enthält den Zugriff auf einen Azurewebjob, als ich ihn im lokalen Host http: // localhost: 7071/api/FunktionName? https://appserservice.azurewebsites.net ... am1=Value1 Return 500 Interner Server -Fehler.

Code: Select all

import logging
import azure.functions as func
from io import StringIO
import pandas as pd
from datetime import datetime as dt
import json

#filter the dataframe
def filter(pdf, keys, daterange):
jkeys=[]
for key in keys:
#filter by numeric key
if(reg.isdigit()):
jkeys.append(int(key))
#filtering by two types of keys
pdfA=pdf[pdf['key'].isin(keys)]
pdfS=pdf[pdf['numerickey'].isin(jkeys)]
#concat the DFs
pdf=pd.concat([pdfS,pdfA],axis=0)
#Filtering by a dateRange or single date
if(daterange.isdigit()):
pdf=pdf[pdf['Day']==int(daterange)]
return pdf
else:
#getting the two dates
date=daterange.split('-')
#filtering the rows
pdf=pdf[(pdf['Day']>=int(date[0])) & (pdf['Day'] str:

if not param:
try:
req_body = req.get_json()
except ValueError:

if param != None and '-' in param:
return func.HttpResponse(
"Set a date in the query",
status_code=400
)
else:
param = req_body.get(param_name)
return param
else:
return param

def main(req: func.HttpRequest,
inputBlob: func.InputStream) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')

#get the params
daterange = req.params.get('daterange')
keys = req.params.get('keys')
name=req.params.get('name')

daterange = param_validation(daterange, 'daterange', req)
keys = param_validation(keys, 'keys', req)

#this condition is included just to test fast if works
if name:
return func.HttpResponse(f"Hello {name}!")
#This is to get the real data request function
if daterange and (keys):
try:

if daterange and keys:
# get the data from a csv in the datalake
data = pd.read_csv(StringIO(inputBlob.read().decode('utf-8')))
keys=keys.split(',')
dfFilt=filter(data,keys,daterange).fillna(0)

return func.HttpResponse(f"{json.dumps(dfFilt.to_dict(orient='record'))}")

else:
return func.HttpResponse(
"insert a valid daterange to the query",
status_code=400
)
except:
return func.HttpResponse(
"Params are wrong.",
status_code=500
)
else:
return func.HttpResponse(
"Params missed",
status_code=400
)

Ziel ist es, einen CSV von Datalake zu erhalten und die von 2 angegebenen Argumenten gefilterten Zeilen zurückzugeben. Ich habe die letzte funktionale API mit einem veralteten CSV (das leichter, 60 MB) eingesetzt, und die API funktioniert gut. Aber wenn ich ein neuer CSV (300 MB) festlegt, gibt die API den internen Serverfehler des Code 500 zurück. Oder es ist möglich, dieses Speicherproblem zu beheben?
Danke!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post