Compartir a través de


Inicio rápido: Actualización de las opciones en tiempo de ejecución del motor de ejecución de JavaScript en un recurso ccF administrado de Azure

A veces es necesario actualizar las opciones en tiempo de ejecución del intérprete de JavaScript ccF para ampliar la duración de la ejecución de la solicitud o actualizar el tamaño de asignación del montón o pila. En esta guía de procedimientos, aprenderá a actualizar la configuración del entorno de ejecución. Este tutorial se basa en el recurso CCF administrado (CCF administrado) de Azure creado en el tutorial Inicio rápido: Creación de un recurso CCF administrado de Azure mediante Azure Portal .

Prerrequisitos

Descarga de la identidad del servicio

Un recurso CCF administrado de Azure tiene una identidad única denominada identidad de servicio, representada por un certificado y creada durante la creación del recurso. Cada nodo individual que forma parte del recurso CCF administrado de Azure tiene su certificado autofirmado, aprobado por la identidad de servicio, que establece la confianza en él.

Se recomienda a los clientes descargar el certificado de identidad de servicio y usarlo para establecer una conexión TLS al interactuar con el servicio. El siguiente comando descarga el certificado y lo guarda en service_cert.pem.

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

Actualización de las opciones en tiempo de ejecución

Nota:

Al ejecutar los comandos en un equipo Mac, reemplace por date -Isdate +%FT%T%z.

  1. Prepare un archivo set_js_runtime_options.json y envíelo mediante este comando:
    $ 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. El siguiente paso es aceptar la propuesta mediante el envío de un voto.
    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. Repita el paso anterior para cada miembro del recurso CCF administrado.
  4. Una vez aceptada la propuesta, las opciones en tiempo de ejecución se aplicarán a las solicitudes posteriores.

Pasos siguientes