Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A Azure Stream Analytics (ASA) CI/CD npm csomag segít a Stream Analytics-projektek automatikus összeállításában, tesztelésében és üzembe helyezésében. Ez a cikk bemutatja, hogyan használhatja az npm-csomagot bármely CI/CD-rendszerrel. A folyamat Azure DevOps használatával történő beállításához lásd: A Azure DevOps használata CI/CD-folyamat létrehozásához Stream Analytics-feladatokhoz.
Ha nem rendelkezik Stream Analytics-projektel, hozzon létre egyet a Visual Studio Code használatával, vagy exportáljon egy meglévőt az Azure Portalról.
Telepítés
Letöltheti a csomagot az npm webhelyről, vagy futtathatja a következő parancsot a terminálban.
npm install -g azure-streamanalytics-cicd
Projekt felépítése
Feljegyzés
Használja a --v2 opciót a frissített ARM-sablonsémához. A frissített séma kevesebb paramétert biztosít, de ugyanazt a funkciót megőrzi, mint az előző verzió.
A régi ARM-sablon használata nem ajánlott. Csak a build --v2 révén létrehozott sablonok kapnak frissítéseket vagy hibajavításokat.
azure-streamanalytics-cicd build --v2 --project <projectFullPath> [--outputPath <outputPath>]
A build parancs kulcsszószintaxis-ellenőrzést végez, és Azure Resource Manager (ARM) sablonokat hoz létre.
| Argumentum | Leírás |
|---|---|
--project |
Adja meg a asaproj.json fájlt abszolút vagy relatív elérési út használatával. |
--outputPath |
Adja meg az ARM-sablonok abszolút vagy relatív elérési útján történő tárolására szolgáló kimeneti mappát. Ha nem adja meg outputPath, a sablonok az aktuális könyvtárba kerülnek. |
Példa:
# Go to the project directory
cd <path-to-the-project>
# Build project
azure-streamanalytics-cicd build --v2 --project ./asaproj.json --outputPath ./Deploy
Ha a projekt sikeresen épül fel, két JSON-fájl jön létre a kimeneti mappában:
- ARM-sablonfájl:
[ProjectName].JobTemplate.json - Azure Resource Manager-paraméterfájl:
[ProjectName].JobTemplate.parameters.json
A parameters.json fájl alapértelmezett értékei a projekt beállításaiból származnak. Ha egy másik környezetben szeretne üzembe helyezni, cserélje le az értékeket ennek megfelelően.
Az összes hitelesítő adat alapértelmezett értéke null. Állítsa be az értékeket, mielőtt üzembe helyezené a Azure.
"Input_EntryStream_sharedAccessPolicyKey": {
"value": null
}
Az Azure Data Lake Store Gen1 felügyelt identitás használata kimeneti tárolóként, a PowerShell használatával hozzáférést kell biztosítania a szolgáltatás-névhez, mielőtt üzembe helyezné az Azure-ban. További információ: deploy ADLS Gen1 felügyelt identitással Resource Manager sablonnal.
Futtatás helyileg
Ha a projekt helyi bemeneti fájlokat tartalmaz, a paranccsal helyileg futtassa a localrun Stream Analytics-szkriptet.
azure-streamanalytics-cicd localrun -project <projectFullPath> [-outputPath <outputPath>] [-customCodeZipFilePath <zipFilePath>]
| Argumentum | Leírás |
|---|---|
--project |
Adja meg a asaproj.json fájlt abszolút vagy relatív elérési út használatával. |
--outputPath |
Adja meg az ARM-sablonok abszolút vagy relatív elérési úttal történő tárolásához szükséges kimeneti mappát. Ha outputPath nincs megadva, a sablonok az aktuális könyvtárba kerülnek. |
--customCodeZipFilePath |
A C# egyéni kód zip-fájljának elérési útja, például UDF vagy deszerializáló, ha használja őket. Csomagolja be a DLL-eket egy zip-fájlba, és adja meg ezt az elérési utat. |
Példa:
# Go to the project directory
cd <path-to-the-project>
# Run project locally
azure-streamanalytics-cicd localrun --project ./asaproj.json"
Feljegyzés
A JavaScript UDF-ek csak Windows működnek.
Automatizált teszt
A CI/CD npm csomag használatával konfigurálhatja és futtathatja a Stream Analytics-projekt automatizált tesztjeit.
Adjunk hozzá egy tesztesetet
azure-streamanalytics-cicd addtestcase --project <projectFullPath> [-testConfigPath <testConfigFileFullPath>]
A teszteseteket a tesztkonfigurációs fájlban találja.
| Argumentum | Leírás |
|---|---|
--project |
Adja meg a asaproj.json fájlt abszolút vagy relatív elérési út használatával. |
--testConfigPath |
A tesztkonfigurációs fájl elérési útja. Ha nem adja meg ezt az argumentumot, az eszköz megkeresi a fájlt a \test fájlban a asaproj.json fájl aktuális könyvtárában, az alapértelmezett fájlnév testConfig.json. Ha a fájl nem létezik, az eszköz létrehoz egy új fájlt. |
Példa:
# Go to the project directory
cd <path-to-the-project>
# Add a test case
azure-streamanalytics-cicd addtestcase --project ./asaproj.json
Ha a tesztkonfigurációs fájl üres, adja hozzá a következő tartalmat a fájlhoz. Ellenkező esetben adjon hozzá egy tesztesetet egy TestCases-tömbhöz . Az eszköz automatikusan kitölti a szükséges bemeneti konfigurációkat a bemeneti konfigurációs fájlnak megfelelően. A teszt futtatása előtt meg kell adnia az egyes bemenetekhez és a várt kimenethez tartozó FilePath-értéket . Ezt a konfigurációt manuálisan is módosíthatja.
Ha azt szeretné, hogy a tesztérvényesítés figyelmen kívül hagyjon egy bizonyos kimenetet, állítsa a várt kimenet Kötelező mezőjét hamis értékre.
{
"Script": [Absolute path of your script],
"TestCases": [
{
"Name": "Case 1",
"Inputs": [
{
"InputAlias": [Input alias string],
"Type": "Data Stream",
"Format": "JSON",
"FilePath": [Required],
"ScriptType": "InputMock"
}
],
"ExpectedOutputs": [
{
"OutputAlias": [Output alias string],
"FilePath": [Required],
"IgnoreFields": [Fields to ignore for test validation, e.g., ["col1", "col2"]],
"Required": true
}
]
}
]
}
Egységteszt futtatása
Az alábbi paranccsal több tesztesetet is futtathat a projekthez. A folyamat a kimeneti mappában hozza létre a teszteredmények összegzését. A folyamat a 0 kóddal lép ki, ha minden teszt sikeres, -1 kivétel esetén, és -2 , ha a tesztek sikertelenek.
azure-streamanalytics-cicd test --project <projectFullPath> [--testConfigPath <testConfigFileFullPath>] [--outputPath <outputPath>] [--customCodeZipFilePath <zipFilePath>]
| Argumentum | Leírás |
|---|---|
--project |
A asaproj.json fájl elérési útja. |
--testConfigPath |
A tesztkonfigurációs fájl elérési útja. Ha nem adja meg ezt az argumentumot, a folyamat megkeresi a fájlt a \test fájlban a asaproj.json fájl aktuális könyvtárában, az alapértelmezett fájlnév testConfig.json. |
--outputPath |
A teszteredmény kimeneti mappájának elérési útja. Ha nem adja meg ezt az argumentumot, a folyamat a kimeneti eredményfájlokat az aktuális könyvtárba helyezi. |
--customCodeZipFilePath |
A zip-fájl elérési útja egyéni kódhoz, például UDF-hez vagy deszerializálóhoz, amennyiben használják. Be kell csomagolnia a DLL-eket a zip-fájlba, és meg kell adnia az elérési utat. |
Ha teszteseteket futtat, a kimeneti mappában létrehozott testResultSummary.json fájl található.
{
"Total": (integer) total_number_of_test_cases,
"Passed": (integer) number_of_passed_test_cases,
"Failed": (integer) number_of_failed_test_cases,
"Script": (string) absolute_path_to_asaql_file,
"Results": [ (array) detailed_results_of_test_cases
{
"Name": (string) name_of_test_case,
"Status": (integer) 0(passed)_or_1(failed),
"Time": (string) time_span_of_running_test_case,
"OutputMatched": [ (array) records_of_actual_outputs_equal_to_expected_outputs
{
"OutputAlias": (string) output_alias,
"ExpectedOutput": (string) path_to_the_expected_output_file,
"Output": (string) path_to_the_actual_output_file
}
],
"OutputNotEqual": [ (array) records_of_actual_outputs_not_equal_to_expected_outputs
{
"OutputAlias": (string) output_alias,
"ExpectedOutput": (string) path_to_the_expected_output_file,
"Output": (string) path_to_the_actual_output_file
}
],
"OutputMissing": [ (array) records_of_actual_outputs_missing
{
"OutputAlias": (string) output_alias,
"ExpectedOutput": (string) path_to_the_expected_output_file,
"Output": ""
}
],
"OutputUnexpected": [ (array) records_of_actual_outputs_unexpected
{
"OutputAlias": (string) output_alias,
"ExpectedOutput": "",
"Output": (string) path_to_the_actual_output_file
}
],
"OutputUnrequired": [ (array) records_of_actual_outputs_unrequired_to_be_checked
{
"OutputAlias": (string) output_alias,
"ExpectedOutput": (string) path_to_the_expected_output_file,
"Output": (string) path_to_the_actual_output_file
}
]
}
],
"Time": (string) time_span_of_running_all_test_cases,
}
Feljegyzés
Ha a lekérdezés eredményei lebegőpontos értékeket tartalmaznak, előfordulhat, hogy a létrehozott értékekben kisebb eltérések jelentkeznek, amelyek valószínűleg sikertelen teszteléshez vezetnek. Ez a különbség a Visual Studio vagy Visual Studio motort és a tesztfeldolgozó motort hajtó különböző .NET keretrendszereken alapul. A tesztek sikeres futtatása érdekében csökkentse a létrehozott értékek pontosságát, vagy igazítsa a manuálisan összehasonlítandó eredményeket a létrehozott teszteredményekhez.
Üzembe helyezés az Azure-ban
Ha ARM-sablonokkal szeretné üzembe helyezni a Stream Analytics-projektet, kövesse az alábbi lépéseket:
Csatlakozás az Azure-fiókjához:
# Connect to Azure Connect-AzAccount # Set the Azure subscription Set-AzContext [SubscriptionID/SubscriptionName]A Stream Analytics-projekt üzembe helyezése:
$templateFile = ".\Deploy\ClickStream-Filter.JobTemplate.json" $parameterFile = ".\Deploy\ClickStream-Filter.JobTemplate.parameters.json" New-AzResourceGroupDeployment ` -Name devenvironment ` -ResourceGroupName myResourceGroupDev ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
Az erőforrások ARM-sablonok használatával történő üzembe helyezésével kapcsolatos további információkért lásd: Üzembe helyezés Resource Manager sablonfájllal és az Azure PowerShell segítségével.