クイック スタート: JavaScript アプリケーションを更新する
Azure Managed CCF (Managed CCF) を使用すると、新機能が導入されたときやバグ修正が利用可能になったときに、アプリケーションを簡単かつ迅速に更新できます。 このチュートリアルは、「クイック スタート: Azure portal チュートリアルを使用して Azure Managed CCF リソースを作成する」で作成したマネージド 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 -Is
date +%FT%T%z
。
Note
このチュートリアルでは、ここで入手できる手順を使用して更新されたアプリケーション バンドルを作成し、set_js_app.json に保存することを前提としています。
アプリケーションを更新しても、JavaScript ランタイム オプションはリセットされません。
- 提案を作成して、set_js_app.json に存在するアプリケーション バンドルを送信します。
$ proposalid=$( (ccf_cose_sign1 --content set_js_app.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') )
- 次の手順では、投票を送信して提案を受け入れます。
cat vote_accept.json
{
"ballot": "export function vote (rawProposal, proposerId)\n
{\n
// Accepts any proposal\n
return true;\n
}"
}
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 $proposalid | curl https://confidentialbillingapp.confidential-ledger.azure.com/gov/proposals/$proposalid/ballots -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem
- マネージド CCF リソース内のすべてのメンバーに対して、上記の手順を繰り返します。
コマンドが完了すると、アプリケーションが更新され、ユーザー トランザクションを受け入れる準備が整います。