Sdílet prostřednictvím


Sestavení, testování a nasazení aplikace TypeScript a JavaScript

V této příručce se dozvíte, jak vyvíjet typescriptovou a javascriptovou aplikaci, která cílí na CCF, ladit ji místně a nasadit ji do spravovaného prostředku CCF v cloudu.

Předpoklady

Tato příručka používá Visual Studio Code jako integrované vývojové prostředí (IDE). Jakékoli integrované vývojové prostředí s podporou Node.js, JavaScriptu a vývoje aplikací TypeScript je ale možné použít.

Nastavení projektu

  1. Podle pokynů v dokumentaci CCF spusťte projekt a nastavte požadovanou strukturu složek.

Vývoj aplikace

  1. Pomocí této dokumentace vyvíjejte aplikaci TypeScript. Informace o standardech pojmenování a sémantice transakcí pro použití v kódu najdete v dokumentaci k úložišti klíč-hodnota CCF. Příklady a osvědčené postupy najdete v ukázkových aplikacích publikovaných na GitHubu.

Sestavení sady aplikací

  1. Nativní formát pro javascriptové aplikace v CCF je sada aplikací JavaScriptu nebo krátká sada aplikací. Sadu je možné zabalit přímo do návrhu zásad správného řízení pro nasazení. Postupujte podle pokynů k vytvoření sady aplikací v dokumentaci CCF a vytvořte sadu aplikací a připravte se na nasazení.

  2. Sestavení aplikace. Sada aplikací se vytvoří ve složce dist. Sada aplikací se umístí do souboru s názvem set_js_app.json.

npm run build

> build
> del-cli -f dist/ && rollup --config && cp app.json dist/ && node build_bundle.js dist/


src/endpoints/all.ts → dist/src...
created dist/src in 1.3s
Writing bundle containing 8 modules to dist/bundle.json
ls -ltr dist
total 40
drwxr-xr-x 4 settiy settiy  4096 Sep 11 10:20 src
-rw-r--r-- 1 settiy settiy  3393 Sep 11 10:20 app.json
-rw-r--r-- 1 settiy settiy 16146 Sep 11 10:20 set_js_app.json
-rw-r--r-- 1 settiy settiy 16061 Sep 11 10:20 bundle.json

Protokolování

  1. CCF poskytuje makra pro přidání vlastních řádků do výstupu uzlu. Postupujte podle pokynů dostupných při přidání protokolování do aplikace v dokumentaci CCF.

Nasazení sítě CCF s 1 uzly

  1. Spuštěním skriptu /opt/ccf_virtual/bin/sandbox.sh spusťte síť CCF s 1 uzly a nasaďte sadu aplikací.
sudo /opt/ccf_virtual/bin/sandbox.sh --js-app-bundle ~/ccf-app-samples/banking-app/dist/
Setting up Python environment...
Python environment successfully setup
[10:40:37.516] Virtual mode enabled
[10:40:37.517] Starting 1 CCF node...
[10:40:41.488] Started CCF network with the following nodes:
[10:40:41.488]   Node [0] = https://127.0.0.1:8000
[10:40:41.489] You can now issue business transactions to the libjs_generic application
[10:40:41.489] Loaded JS application: /home/demouser/ccf-app-samples/banking-app/dist/
[10:40:41.489] Keys and certificates have been copied to the common folder: /home/demouser/ccf-app-samples/banking-app/workspace/sandbox_common
[10:40:41.489] See https://microsoft.github.io/CCF/main/use_apps/issue_commands.html for more information
[10:40:41.490] Press Ctrl+C to shutdown the network
  1. Certifikát člena a privátní klíč jsou k dispozici na adrese /workspace/sandbox_0. Protokol aplikace je k dispozici na adrese /workspace/sandbox_0/out.

A picture showing the out file where the CCF node and application logs are written to.

  1. V tuto chvíli jsme vytvořili místní síť CCF s jedním členem a nasadili aplikaci. Koncový bod sítě je https://127.0.0.1:8000. Člen se může účastnit operací zásad správného řízení, jako je aktualizace aplikace nebo přidání dalších členů odesláním návrhu.
curl -k --silent https://127.0.0.1:8000/node/version | jq
{
  "ccf_version": "ccf-4.0.7",
  "quickjs_version": "2021-03-27",
  "unsafe": false
}
  1. Stáhněte si certifikát služby ze sítě.
curl -k https://127.0.0.1:8000/node/network | jq -r .service_certificate > service_certificate.pem

Aktualizace aplikace

  1. Vývoj aplikací je iterativní proces. Když jsou přidány nové funkce nebo chyby opraveny, musí být aplikace znovu nasazena do sítě s 1 uzly, které je možné provést s návrhem set_js_app.

  2. Znovu sestavte aplikaci a vytvořte nový soubor set_js_app.json ve složce dist.

  3. Vytvořte návrh pro odeslání žádosti. Po přijetí návrhu se nová aplikace nasadí do sítě s 1 uzly.

Poznámka:

V místní síti s 1 uzly se návrh okamžitě přijme po odeslání. K přijetí nebo odmítnutí návrhu není nutné předložit hlasování. Odůvodnění, které je za ním, se provádí, aby byl proces vývoje rychlý. To se ale liší od toho, jak fungují zásady správného řízení ve službě Azure Managed CCF, kde členové musí odeslat hlasování pro přijetí nebo odmítnutí návrhu.

$ ccf_cose_sign1 --content dist/set_js_app.json --signing-cert workspace/sandbox_common/member0_cert.pem --signing-key workspace/sandbox_common/member0_privk.pem --ccf-gov-msg-type proposal --ccf-gov-msg-created_at `date -Is` | curl https://127.0.0.1:8000/gov/proposals -H 'Content-Type: application/cose' --data-binary @- --cacert service_cert.pem

Nasazení aplikace do spravovaného prostředku CCF

Dalším krokem je vytvoření spravovaného prostředku CCF a nasazení aplikace podle pokynů k nasazení javascriptové aplikace.

Další kroky