Guia de início rápido: atualizar as opções de tempo de execução do mecanismo de execução JavaScript em um recurso CCF gerenciado do Azure

Às vezes, é necessário atualizar as opções de tempo de execução do interpretador JavaScript do CCF para estender a duração de execução da solicitação ou atualizar o tamanho de alocação de pilha ou heap. Neste guia de instruções, você aprenderá a atualizar as configurações de tempo de execução. Este tutorial se baseia no recurso Azure Managed CCF (Managed CCF) criado no Guia de início rápido: criar um recurso CCF gerenciado do Azure usando o tutorial do portal do Azure.

Pré-requisitos

Baixar a identidade do serviço

Um recurso CCF gerenciado do Azure tem uma identidade exclusiva chamada identidade de serviço. Ele é representado por um certificado e é criado durante a criação do recurso. Cada nó individual que faz parte do recurso CCF gerenciado do Azure tem seu certificado autoassinado, endossado pela identidade do serviço, que estabelece confiança nele.

Recomenda-se que os clientes baixem o certificado de identidade de serviço e o usem para estabelecer uma conexão TLS ao interagir com o serviço. O comando a seguir baixa o certificado e o salva em service_cert.pem.

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

Atualizar as opções de tempo de execução

Observação

Ao executar os comandos em um Mac, substitua date -Is por date +%FT%T%z.

  1. Prepare um arquivo set_js_runtime_options.json e envie-o usando 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. O próximo passo é aceitar a proposta submetendo um 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 a etapa acima para cada membro no recurso CCF gerenciado.
  4. Depois que a proposta for aceita, as opções de tempo de execução serão aplicadas às solicitações subsequentes.

Próximas etapas