未经授权可将调用的API部署到Azure

时间:2020-08-12 06:55:04

标签: python azure api flask

我构建了用于图像识别的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,两者都给出相同的错误。

0 个答案:

没有答案