Поделиться через


Краткое руководство. Обновление параметров среды выполнения подсистемы выполнения JavaScript в ресурсе Azure Managed CCF

Иногда необходимо обновить параметры среды выполнения интерпретатора JavaScript для CCF, чтобы продлить длительность выполнения запроса или обновить размер выделения кучи или стека. В этом руководстве вы узнаете, как обновить параметры среды выполнения. В этом руководстве используется ресурс Управляемого CCF Azure (Managed CCF), созданный в кратком руководстве. Создание ресурса Управляемого CCF Azure с помощью руководства по портал Azure.

Необходимые компоненты

  • Python 3+.
  • Установите последнюю версию пакета Python для CCF.

Скачивание удостоверения службы

Ресурс Azure Managed CCF имеет уникальное удостоверение, называемое удостоверением службы. Он представлен сертификатом и создается во время создания ресурса. Каждый отдельный узел, являющийся частью ресурса Azure Managed CCF, имеет свой самозаверяющий сертификат, утвержденный удостоверением службы, который устанавливает доверие к нему.

Клиентам рекомендуется скачать сертификат удостоверения службы и использовать его для установления подключения TLS при взаимодействии со службой. Следующая команда скачивает сертификат и сохраняет его в service_cert.pem.

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

Обновление параметров среды выполнения

Примечание.

При выполнении команд в Mac замените date -Is на date +%FT%T%z.

  1. Подготовьте файл set_js_runtime_options.json и отправьте его с помощью следующей команды:
    $ 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. Следующий шаг — принять предложение, отправив голосование.
    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. Повторите приведенный выше шаг для каждого члена ресурса Managed CCF.
  4. После принятия предложения параметры среды выполнения будут применены к последующим запросам.

Следующие шаги