クイック スタート: Azure Managed CCF リソースの JavaScript 実行エンジンのランタイム オプションを更新する

場合によっては、CCF JavaScript インタープリターのランタイム オプションを更新して、要求の実行時間を延長したり、ヒープまたはスタックの割り当てサイズを更新したりする必要があります。 このガイドでは、ランタイム設定を更新する方法について説明します。 このチュートリアルは、「クイック スタート: Azure portal チュートリアルを使用して Azure Managed CCF リソースを作成する」で作成した Azure Managed CCF (Managed CCF) リソースに基づいています。

前提条件

  • Python 3 以降。
  • 最新バージョンの CCF Python パッケージインストールします。

サービス ID をダウンロードする

Azure マネージド CCF リソースには、サービス ID と呼ばれる一意の ID があります。 証明書によって表され、リソースの作成時に作成されます。 Azure Managed CCF リソースの一部である個々のノードには、サービス ID によって承認された自己署名証明書があり、それによって信頼が確立されます。

お客様は、サービス ID 証明書をダウンロードし、それを使用してサービスと対話するときに TLS 接続を確立することをお勧めします。 次のコマンドは、証明書をダウンロードし、service_cert.pem に保存します。

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

ランタイム オプションを更新する

Note

Mac でコマンドを実行する場合は、次のように置き換えますdate -Isdate +%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. マネージド CCF リソース内のすべてのメンバーに対して、上記の手順を繰り返します。
  4. 提案が受け入れられると、ランタイム オプションが後続の要求に適用されます。

次のステップ