Szybki start: wdrażanie aplikacji JavaScript w zasobie usługi Azure Managed CCF

W tym samouczku Szybki start dowiesz się, jak wdrożyć aplikację w zasobie zarządzanym przez usługę Azure CCF (Managed CCF). Ten samouczek opiera się na zasobie zarządzanym CCF utworzonym w przewodniku Szybki start: tworzenie zasobu zarządzanego przez platformę Azure CCF przy użyciu samouczka witryny Azure Portal .

Wymagania wstępne

  • Python 3+.
  • Zainstaluj najnowszą wersję pakietu języka Python CCF.

Pobieranie tożsamości usługi

Zasób zarządzanego programu CCF platformy Azure ma unikatową tożsamość o nazwie tożsamość usługi. Jest reprezentowany przez certyfikat i jest tworzony podczas tworzenia zasobu. Każdy węzeł będący częścią zasobu azure Managed CCF ma certyfikat z podpisem własnym zatwierdzony przez tożsamość usługi, który ustanawia zaufanie do niego.

Klienci zaleca się pobranie certyfikatu tożsamości usługi i użycie go do nawiązania połączenia TLS podczas interakcji z usługą. Następujące polecenie pobiera certyfikat i zapisuje go w pliku service_cert.pem.

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

Wdrażanie aplikacji

Uwaga

Podczas wykonywania poleceń na komputerze Mac zastąp ciąg date -Is .date +%FT%T%z

Uwaga

W tym samouczku założono, że pakiet aplikacji JavaScript jest tworzony przy użyciu instrukcji dostępnych tutaj.

  1. Prześlij pakiet aplikacji znajdujący się w pliku set_js_app.json , tworząc propozycję.
$ 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') )
  1. Następnym krokiem jest zaakceptowanie wniosku przez przesłanie głosowania.
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
  1. Powtórz powyższy krok dla każdego elementu członkowskiego w zasobie zarządzanego programu CCF.

Po zakończeniu wykonywania polecenia aplikacja jest wdrażana w zasobie zarządzanego programu CCF i jest gotowa do akceptowania transakcji.

Następne kroki