Angepasste Softwarespezifikation erstellen (Watson Machine Learning)
Nachdem Sie ein angepasstes Image erstellt, registriert und hochgeladen haben, müssen Sie eine angepasste Softwarespezifikation und eine Laufzeitdefinitionsdatei erstellen, damit Sie die Bibliotheken und Pakete verwenden können, die Sie im angepassten Watson Machine Learning-Image angegeben haben.
Führen Sie die folgenden Schritte aus, um die Softwarespezifikation und die Laufzeitdefinitionsdatei zu erstellen. Zum Hochladen der Dateien in die erforderlichen Pfade auf dem angegebenen Datenträger verwenden Sie den Datenträgerservice.
-
Rufen Sie das erforderliche Plattformzugriffstoken ab. Der Befehl gibt das Trägertoken im Feld 'accessToken' zurück:
curl <Cloud-Pak-for-Data-URL>/v1/preauth/validateAuth -u <Benutzername>:<Kennwort> -
Erstellen Sie eine Datenträgerinstanz. Stellen Sie dabei sicher, dass der Namensbereich auf den korrekten Datenträger verweist.
curl -k -X POST \ $CPDHOST/zen-data/v3/service_instances \ -H "Authorization: Bearer ${TOKEN}" \ -H 'Content-Type: application/json' \ -d '{ "addon_type": "volumes", "addon_version": "-", "create_arguments": { "metadata": { "existing_pvc_name": "cc-home-pvc" } }, "namespace": "wmloct13", "display_name": "CCHome" }' -
Überprüfen Sie, ob die neue Datenträgerinstanz verfügbar ist.
curl -k \ $CPDHOST/zen-data/v3/service_instances \ -H "Authorization: Bearer ${TOKEN}" \ -H 'Content-Type: application/json' | jq '.service_instances[] | .display_name,.id,.metadata.existing_pvc_name' -
Starten Sie den Dateiserver für einen Datenträger.
VSNAME=CCHomeStoppen Sie den Dateiserver für einen Datenträger.
curl -k -X DELETE \ $CPDHOST/zen-data/v1/volumes/volume_services/$VSNAME \ -H "Authorization: Bearer $TOKEN"Starten Sie den Dateiserver erneut.
curl -k -X POST \ $CPDHOST/zen-data/v1/volumes/volume_services/$VSNAME \ -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' \ -d '{}' -
Laden Sie die angepasste Softwarespezifikation hoch.
Erstellen Sie die Metadaten:
SW_SPEC_NAME=demo-spec-1_py37 DISPLAY_NAME='test sw spec base 0.1.40-amd64' SW_SPEC_JSON=${SW_SPEC_NAME}.json PATH_SW_SPEC_JSON=`pwd`"/"$SW_SPEC_JSON echo $PATH_SW_SPEC_JSONLaden Sie die Spezifikation hoch:
echo '{ "metadata": { "name": "'"$SW_SPEC_NAME"'", "description": "Test" }, "entity": { "software_specification": { "type": "base", "built_in": false, "package_extensions": [], "display_name": "'"$DISPLAY_NAME"'", "software_configuration": { "included_packages": [ { "name": "scikit-learn", "version": "0.23" }, { "name": "pytorch-onnx", "version": "1.3" }, { "name": "tensorflow", "version": "2.1" }, { "name": "gensim", "version": "3.8.0" } ], "platform": { "name": "python", "version": "3.7" } } } } }' > $SW_SPEC_JSONcat $SW_SPEC_JSONRückgabe:
{ "metadata": { "name": "demo-spec-1_py37", "description": "Test" }, "entity": { "software_specification": { "type": "base", "built_in": false, "package_extensions": [], "display_name": "test sw spec base 0.1.40-amd64", "software_configuration": { "included_packages": [ { "name": "scikit-learn", "version": "0.23" }, { "name": "pytorch-onnx", "version": "1.3" }, { "name": "tensorflow", "version": "2.1" }, { "name": "gensim", "version": "3.8.0" } ], "platform": { "name": "python", "version": "3.7" } } } } } -
Laden Sie die neue Softwarespezifikation hoch.
curl -k -X PUT \ $CPDHOST/zen-volumes/$VSNAME/v1/volumes/files/%2F_global_%2Fconfig%2Fenvironments%2Fsoftware-specifications%2F$SW_SPEC_JSON \ -H "Authorization: Bearer $TOKEN" \ -H 'content-type: multipart/form-data' \ -F upFile=@$PATH_SW_SPEC_JSONRückgabe:
{"_messageCode_":"Success","message":"Successfully uploaded file and created the necessary directory structure"}Stellen Sie sicher, dass die Softwarespezifikationsdatei hochgeladen wurde:
echo "Uploaded Custom Software Spec file: $SW_SPEC_JSON"Rückgabe:
Uploaded Custom Software Spec file: demo-spec-1_py37.json -
Stellen Sie sicher, dass die Softwarespezifikation auf dem Datenträger verfügbar ist.
curl -k -X GET \ $CPDHOST/zen-volumes/$VSNAME/v1/volumes/files/%2F_global_%2Fconfig%2Fenvironments%2Fsoftware-specifications%2F$SW_SPEC_JSON \ -H "Authorization: Bearer $TOKEN"Starten Sie den Datenträger erneut.
curl -k -X DELETE \ $CPDHOST/zen-data/v1/volumes/volume_services/$VSNAME \ -H "Authorization: Bearer $TOKEN"curl -k -X POST \ $CPDHOST/zen-data/v1/volumes/volume_services/$VSNAME \ -H "Authorization: Bearer $TOKEN" \ -H 'Content-Type: application/json' \ -d '{}' -
Vergewissern Sie sich, dass die Softwarespezifikation über einen REST-Endpunkt verfügbar ist.
Listen Sie die verfügbaren Softwarespezifikationen auf.
curl -k -X GET \ $CPDHOST/v2/software_specifications?name=$SW_SPEC_NAME \ -H "Authorization: Bearer $TOKEN" | jq "."Rückgabe:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 727 100 727 0 0 580 0 0:00:01 0:00:01 --:--:-- 580 { "total_results": 1, "resources": [ { "metadata": { "created_at": "2020-10-15T14:36:33.536Z", "updated_at": "2020-10-15T14:36:33.536Z", "name": "demo-spec-1_py37", "description": "Test", "asset_type": "software_specification", "asset_id": "51301be2-ea21-5848-bb86-bdd86c4b893d", "href": "/v2/software_specifications/51301be2-ea21-5848-bb86-bdd86c4b893d" }, "entity": { "software_specification": { "type": "base", "built_in": false, "package_extensions": [], "display_name": "test sw spec base 0.1.40-amd64", "software_configuration": { "included_packages": [ { "name": "scikit-learn", "version": "0.23" }, { "name": "pytorch-onnx", "version": "1.3" }, { "name": "tensorflow", "version": "2.1" }, { "name": "gensim", "version": "3.8.0" } ], "platform": { "name": "python", "version": "3.7" } } } } } ] }Nächste Schritte
- Erstellen Sie die Datei für die Laufzeitdefinition, die die Basissoftwarespezifikation (
base_sw_spec) dem angepassten Image zuordnet.
- Erstellen Sie die Datei für die Laufzeitdefinition, die die Basissoftwarespezifikation (