我构建了用于图像识别的API,我在本地对其进行了测试,并且运行良好。 我将其部署到Azure,但是当尝试调用它时,与本地版本相同,它也会出现此错误:
401-未经授权:由于凭据无效,访问被拒绝。 您无权使用您提供的凭据查看此目录或页面。
API托管在Azure Web App服务上,我也在此服务上托管其他站点,并且不需要任何凭据。
API代码:
@app.route('/predict', methods=['POST'])
def main():
data = {"Success": False}
data['Catalog'] = ""
if flask.request.method == 'POST':
if flask.request.files.get('image'):
image = flask.request.files['image'].read()
image = Image.open(io.BytesIO(image))
image = prepare_image(image, target=img_size)
images_path = './images'
X, y = loadimgs(images_path)
embedding_model = load_model('./triplet_loss_model_100.h5')
example_emb = embedding_model.predict(image)
embedded_imgs = embedding_model.predict(X)
dist = compute_dist(embedded_imgs, np.repeat(example_emb, embedded_imgs.shape[0], axis=0))
index = np.argmin(dist)
label_ = y[index]
data['Catalog'] = label_[0]
data['Success'] = True
return flask.jsonify(data)
我尝试使用curl和postman调用api,两者都给出相同的错误。