2016-06-14 15 views
0

Ich habe ein Problem mit Microsoft Azure-Webdiensten in Python, als der Webdienst zuerst von Python veröffentlicht wurde. Ich habe einen Webdienst erstellt, der nur Azure verwendet, und dann den Webdienst von Python erfolgreich mit dem Python-Beispielcode aus der Hilfeseite der Batchausführungs-API verwendet. Ich wollte jedoch auch versuchen, mein maschinelles Lernmodell in Python zu erstellen und zu trainieren und dann den Webservice in Azure zu veröffentlichen. Nachdem ich den Web-Service für Azure veröffentlicht hatte, hoffte ich, dass ich ihn in Python wieder aufrufen konnte, um neue Datensätze vorherzusagen.Einen Python-Azure-Webdienst in Python verwenden

Ich war in der Lage, ein Modell in Python zu trainieren, dann veröffentlichen Sie dies erfolgreich als Web-Service in Azure. Wenn ich versuche, obwohl diese Web-Service in Azure zu konsumieren, erhalte ich diese Fehlermeldung:

Fehler bei der Anforderung mit dem Statuscode: 401

{u'error ': {u'message': u'Request ist nicht berechtigt, auf Ressourcen zuzugreifen. ', u'code': 'Unauthorized', u'details ': [{u'message': u'Ungültige Zugangsdaten zur Verfügung gestellt. ', u'code': u'ScoreRequestUnauthorized '}]} }

Ich bin nicht sicher, ob jemand Erfahrung damit hat, und wenn das Aufrufen eines in Python erstellten Webdienstes anders ist als das Aufrufen eines in Azure erstellten Webdiensts. Ich ging davon aus, dass die einzigen Dinge im Batch-Ausführungscode, die zwischen den Web-Services unterschiedlich wären, der Web-API-Schlüssel und die URL wären, da ich das gleiche Speicherkonto verwende. Ich kann nicht sehen, wo meine Schlüssel ungültig sind.

Ich habe Sie den Dienst wieder in der gleichen Sitzung aufrufen können Daten wie folgt zu prognostizieren:

# set up web service 
@services.publish(workspace_id,authorization_token) 
@services.types(feature1=float, feature2=float) 
@services.returns(float) 
def demo(feature1,feature2): 

    feature_vector = [feature1,feature2] 

    return clf2.predict(feature_vector) 

# call published service and input new data 
demo.service(feature1,feature2) 

aber ich will nicht, um das Modell umschulen und eine neue Web-Service jedes Mal schaffe ich Den Code ausführen, ich wollte die Option, das Modell neu zu trainieren und die neuen Daten vorherzusagen oder einfach vorherzusagen, ohne ein neues Modell zu trainieren, aber ich bin mir nicht sicher, wie ich den von Python veröffentlichten Webdienst ohne Aufruf des Webdienstes nutzen kann die gleiche Sitzung.

Vielen Dank im Voraus!

Antwort

0

Basierend auf meinem Verständnis, ich sehe, dass Sie den veröffentlichten Azure ML Web-Service über HTTP-Anfrage in Python konsumieren wollen.

Gemäß der Fehlerinformationen, die Anfrage fehlgeschlagen mit Statuscode 401 bedeutet, dass die Anfrage den Header verpassen.

Sie finden den API-Schlüssel auf der Dashboard-Seite Ihres Azure ML-Webdiensts.

Als Referenz finden Sie unter article.

Verwandte Themen