Caricamento della configurazione modificata

Creare un file di definizione runtime per mappare le specifiche software personalizzate definite all'immagine personalizzata creata sul cluster.

Nota:

Alcuni dei comandi di scripting qui forniti utilizzano jq, uno strumento open source noto anche come processore JSON che aiuta a formattare i file JSON in un terminale shell.

Ruolo richiesto : è necessario essere amministratori Cloud Pak for Data dell'istanza per registrare una definizione di runtime per una nuova immagine.

Per caricare la configurazione modificata:

  1. Ottieni il token di autorizzazione API richiesto e salva il token nella variabile TOKEN di ambiente:
    export TOKEN=<base64-encoded-user-api-pair>
  2. Utilizzando la definizione di runtime scaricata in formato JSON ${myRuntimeDefinition}-server.json come modello, creare una nuova definizione di runtime per l'immagine personalizzata e copiarla nel file JSON delle specifiche$SW_SPEC_NAME-server.json del software.

    Ad esempio, utilizzare il seguente codice di esempio per creare una nuova definizione di runtime e copiarla nel file delle specifiche del software:

    Suggerimento: aggiungi -server.json seguito dal nome dell'immagine personalizzata e dalle specifiche del software.
     cp ${myRuntimeDefinition}-server.json $SW_SPEC_NAME-server.json
  3. Aggiorna i parametri per ottenere la definizione di runtime per la tua immagine personalizzata utilizzando runtime_definition_template con GET v2/runtime_definitions.

    Segui queste istruzioni per impostare i parametri del tuo nuovo file JSON:

    • Inserisci un nome per il tuo parametro in .name.
      Suggerimento:

      Per seguire la convenzione di denominazione, mantenere il nome della definizione di runtime (valore del name parametro) uguale al nome delle specifiche software per l'immagine personalizzata.

    • Inserisci un breve .display_name per il tuo parametro.
    • Fornisci una breve descrizione .description del tuo parametro.
    • Imposta il valore di .runtime_type su wml.
    • Inserisci il nome delle specifiche del software per immagini personalizzate in .launch_configuration.software_specification_name.
    • Inserisci il percorso completo del registro per la tua immagine personalizzata in .launch_configuration.image. Per ulteriori informazioni, consulta Carica l'immagine nel registro dei container.
      Importante:

      Il CUSTOM_IMAGE parametro deve essere impostato sull'immagine personalizzata richiesta con il percorso completo del registro privato.

    È possibile utilizzare jq per aggiornare questi campi.

    Il seguente frammento di codice mostra come utilizzare jq per impostare i parametri richiesti:

    jq --arg rdname "$SW_SPEC_NAME" \
           --arg description "The description" \
           --arg runtime_type "wml" \
           --arg sw_spec_name "$SW_SPEC_NAME" \
           --arg image "$CUSTOM_IMAGE" \
           '.name = $rdname |
            .display_name = $rdname |
            .description = $description |
            .runtime_type = $runtime_type |
            .launch_configuration.software_specification_name = $sw_spec_name |
            .launch_configuration.image = $image' \
            ${myRuntimeDefinition}-server.json > $SW_SPEC_NAME-server.json

    È necessario assicurarsi che il file JSON di definizione del runtime personalizzato sia corretto. Per farlo, esegui:

    cat $SW_SPEC_NAME-server.json | jq "."
  4. Carica la definizione di runtime per la tua immagine personalizzata utilizzando POST /v2/runtime_definitions: Ad esempio, utilizza il seguente codice di esempio per caricare la tua definizione di runtime:
    curl -ksS -X POST "$CPD_URL/v2/runtime_definitions" \
        -H 'Content-Type: application/json' \
        -H "Authorization: ZenApiKey ${TOKEN}" \
        -d @"$SW_SPEC_NAME-server.json" | jq "."

    Output di esempio:

    {
        "metadata":
        {
            "guid": "8112892c-38e0-5c15-82d3-0da9d5b2e793",
            "created_at": "2023-11-10T06:38:49.383Z"
        },
        "entity":
        {
            "name": "ci-sw_spec", "display_name":
            "ci-sw_spec", "description": "Runtime definition for IBM Runtime 24.1 on Python 3.11 ", "author": "IBM",
            "tested": true,
            "is_service": true,
            "built_in": false,
            "features": [ "wml" ],
            "runtime_type": "wml",
            "software_configuration": {}
        }
    }
  5. Verificare se la nuova definizione di runtime è disponibile nell'endpoint REST utilizzando GET /v2/runtime_definitions.

    Ad esempio, utilizzare il seguente codice di esempio per verificare se è disponibile una nuova definizione di runtime:

    curl -ksS -H "Authorization: ZenApiKey ${TOKEN}" \
        -X GET $CPD_URL/v2/runtime_definitions | jq ".resources[] | select(.entity.name == \"$SW_SPEC_NAME\")"

    Output di esempio:

    {
        "metadata":
        {
            "guid": "8112892c-38e0-5c15-82d3-0da9d5b2e793",
            "created_at": "2023-11-10T06:38:49.383Z"
        },
        "entity":
        {
            "name": "ci-sw_spec",
            "display_name": "ci-sw_spec", "description":
            "Runtime definition for IBM Runtime 24.1 on Python 3.11 ",
            "author": "IBM",
            "tested": true,
            "is_service": true,
            "built_in": false,
            "features": [ "wml" ],
            "runtime_type": "wml",
            "software_configuration": {}
        }
    }

    Ora è possibile utilizzare il runtime personalizzato e le specifiche software nelle distribuzioni.

Passi successivi

Salva il modello addestrato che desideri distribuire con l'immagine personalizzata nel Watson Machine Learning repository dell'immagine personalizzata.