Udostępnij za pośrednictwem


Szybki start: aktualizowanie opcji środowiska uruchomieniowego aparatu wykonywania języka JavaScript w zasobie zarządzanego programu CCF platformy Azure

Czasami konieczne jest zaktualizowanie opcji środowiska uruchomieniowego interpretera języka JavaScript CCF w celu rozszerzenia czasu trwania wykonywania żądania lub zaktualizowania sterty lub rozmiaru alokacji stosu. W tym przewodniku dowiesz się, jak zaktualizować ustawienia środowiska uruchomieniowego. Ten samouczek jest oparty na zasobie azure Managed CCF (Managed CCF) utworzonym w przewodniku Szybki start: tworzenie zasobu zarządzanego przez platformę Azure CCF przy użyciu witryny Azure Portal .

Wymagania wstępne

  • Python 3+.
  • Zainstaluj najnowszą wersję pakietu języka Python CCF.

Pobieranie tożsamości usługi

Zasób zarządzanego programu CCF platformy Azure ma unikatową tożsamość o nazwie tożsamość usługi. Jest reprezentowany przez certyfikat i jest tworzony podczas tworzenia zasobu. Każdy węzeł będący częścią zasobu azure Managed CCF ma certyfikat z podpisem własnym zatwierdzony przez tożsamość usługi, który ustanawia zaufanie do niego.

Klienci zaleca się pobranie certyfikatu tożsamości usługi i użycie go do nawiązania połączenia TLS podczas interakcji z usługą. Następujące polecenie pobiera certyfikat i zapisuje go w pliku service_cert.pem.

curl https://identity.confidential-ledger.core.azure.com/ledgerIdentity/confidentialbillingapp --silent | jq ' .ledgerTlsCertificate' | xargs echo -e > service_cert.pem

Aktualizowanie opcji środowiska uruchomieniowego

Uwaga

Podczas wykonywania poleceń na komputerze Mac zastąp ciąg date -Is .date +%FT%T%z

  1. Przygotuj plik set_js_runtime_options.json i prześlij go przy użyciu tego polecenia:
    $ cat set_js_runtime_options.json
    {
      "actions": [
        {
          "name": "set_js_runtime_options",
          "args": {
            "max_heap_bytes": 1024,
            "max_stack_bytes": 1024,
            "max_execution_time_ms": 5000, // increase the request execution time
            "log_exception_details": false,
            "return_exception_details": false
          }
        }
      ]
    }
    
    $ proposal_id=$( (ccf_cose_sign1 --content set_js_runtime_options.json --signing-cert member0_cert.pem --signing-key member0_privk.pem --ccf-gov-msg-type proposal --ccf-gov-msg-created_at `date -Is` | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem | jq -r ‘.proposal_id’) )
    
  2. Następnym krokiem jest zaakceptowanie wniosku przez przesłanie głosowania.
    cat vote_accept.json
    {
      "ballot": "export function vote (proposal, proposerId) { return true }"
    }
    
    ccf_cose_sign1 --content vote_accept.json --signing-cert member0_cert.pem --signing-key member0_privk.pem --ccf-gov-msg-type ballot --ccf-gov-msg-created_at `date -Is` --ccf-gov-msg-proposal_id $proposal_id | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals/$proposal_id/ballots -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem
    
  3. Powtórz powyższy krok dla każdego elementu członkowskiego w zasobie zarządzanego programu CCF.
  4. Po zaakceptowaniu propozycji opcje środowiska uruchomieniowego zostaną zastosowane do kolejnych żądań.

Następne kroki