Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Balíček CI/CD NPM Azure Stream Analytics (ASA) vám pomůže automaticky sestavovat, testovat a nasazovat projekty Stream Analytics. Tento článek ukazuje, jak používat balíček npm s jakýmkoli systémem CI/CD. Pokud chcete nastavit kanál pomocí Azure DevOps, přečtěte si téma Použití Azure DevOps k vytvoření kanálu CI/CD pro úlohu Stream Analytics.
Pokud nemáte projekt Stream Analytics, vytvořte ho pomocí editoru Visual Studio Code nebo ho exportujte z webu Azure Portal.
Instalace
Balíček si můžete stáhnout z webu npm nebo spustit následující příkaz v terminálu.
npm install -g azure-streamanalytics-cicd
Sestavení projektu
Poznámka:
Použijte možnost --v2 pro aktualizované schéma šablony ARM. Aktualizované schéma má méně parametrů, ale zachovává stejné funkce jako předchozí verze.
Stará šablona ARM je zastaralá. Pouze šablony vytvořené prostřednictvím build --v2 získávají aktualizace nebo opravy chyb.
azure-streamanalytics-cicd build --v2 --project <projectFullPath> [--outputPath <outputPath>]
Příkaz build provede kontrolu syntaxe klíčových slov a vygeneruje šablony Azure Resource Manager (ARM).
| Argument | Popis |
|---|---|
--project |
Zadejte soubor asaproj.json pomocí absolutní nebo relativní cesty. |
--outputPath |
Zadejte výstupní složku pro ukládání šablon ARM pomocí absolutní nebo relativní cesty. Pokud nezadáte outputPath, šablony se umístí do aktuálního adresáře. |
Příklad:
# Go to the project directory
cd <path-to-the-project>
# Build project
azure-streamanalytics-cicd build --v2 --project ./asaproj.json --outputPath ./Deploy
Pokud se projekt úspěšně sestaví, zobrazí se ve výstupní složce dva soubory JSON:
- Soubor šablony ARM:
[ProjectName].JobTemplate.json - Soubor parametrů Azure Resource Manageru:
[ProjectName].JobTemplate.parameters.json
Výchozí hodnoty souboru parameters.json pocházejí z nastavení projektu. Pokud chcete nasadit do jiného prostředí, nahraďte hodnoty odpovídajícím způsobem.
Výchozí hodnoty pro všechny přihlašovací údaje mají hodnotu null. Nastavte hodnoty před nasazením do Azure.
"Input_EntryStream_sharedAccessPolicyKey": {
"value": null
}
Pokud chcete jako výstupní jímku použít spravovanou identitu pro Azure Data Lake Store Gen1, musíte před nasazením do Azure poskytnout přístup k instančnímu objektu pomocí PowerShellu. Další informace najdete v tématu deploy ADLS Gen1 se spravovanou identitou pomocí šablony Resource Manager.
Spusťte lokálně
Pokud projekt obsahuje místní vstupní soubory, použijte příkaz localrun ke spuštění skriptu Stream Analytics místně.
azure-streamanalytics-cicd localrun -project <projectFullPath> [-outputPath <outputPath>] [-customCodeZipFilePath <zipFilePath>]
| Argument | Popis |
|---|---|
--project |
Zadejte soubor asaproj.json pomocí absolutní nebo relativní cesty. |
--outputPath |
Zadejte výstupní složku pro ukládání šablon ARM pomocí absolutní nebo relativní cesty. Pokud outputPath není zadaný, šablony se umístí do aktuálního adresáře. |
--customCodeZipFilePath |
Cesta k souboru ZIP pro vlastní kód jazyka C#, například UDF nebo deserializátor, pokud je používáte. Zabalte knihovny DLL do souboru ZIP a zadejte tuto cestu. |
Příklad:
# Go to the project directory
cd <path-to-the-project>
# Run project locally
azure-streamanalytics-cicd localrun --project ./asaproj.json"
Poznámka:
JavaScript UDF fungují pouze na Windows.
Automatizovaný test
Pomocí balíčku NPM CI/CD můžete nakonfigurovat a spustit automatizované testy pro váš projekt Stream Analytics.
Přidání testovacího případu
azure-streamanalytics-cicd addtestcase --project <projectFullPath> [-testConfigPath <testConfigFileFullPath>]
Testovací případy najdete v konfiguračním souboru testu.
| Argument | Popis |
|---|---|
--project |
Zadejte soubor asaproj.json pomocí absolutní nebo relativní cesty. |
--testConfigPath |
Cesta k testovacímu konfiguračnímu souboru. Pokud tento argument nezadáte, nástroj vyhledá soubor v \test pod aktuálním adresářem souboru asaproj.json s výchozím názvem souboru testConfig.json. Pokud soubor neexistuje, nástroj vytvoří nový soubor. |
Příklad:
# Go to the project directory
cd <path-to-the-project>
# Add a test case
azure-streamanalytics-cicd addtestcase --project ./asaproj.json
Pokud je konfigurační soubor testu prázdný, přidejte do souboru následující obsah. V opačném případě přidejte testovací případ do pole TestCases . Nástroj automaticky vyplní potřebné vstupní konfigurace podle vstupního konfiguračního souboru. Před spuštěním testu je nutné zadat Cestu k souboru pro každý vstup a očekávaný výstup. Tuto konfiguraci můžete upravit ručně.
Pokud chcete, aby ověření testu ignoroval určitý výstup, nastavte požadované pole tohoto očekávaného výstupu na hodnotu false.
{
"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
}
]
}
]
}
Spustit jednotkový test
Pomocí následujícího příkazu spusťte pro svůj projekt více testovacích případů. Proces vygeneruje souhrn výsledků testů ve výstupní složce. Proces ukončí kód 0 , pokud všechny testy projdou, -1 , pokud dojde k výjimce, a -2 , pokud testy selžou.
azure-streamanalytics-cicd test --project <projectFullPath> [--testConfigPath <testConfigFileFullPath>] [--outputPath <outputPath>] [--customCodeZipFilePath <zipFilePath>]
| Argument | Popis |
|---|---|
--project |
Cesta k souboru asaproj.json . |
--testConfigPath |
Cesta k testovacímu konfiguračnímu souboru. Pokud tento argument nezadáte, proces vyhledá soubor v \test pod aktuálním adresářem souboru asaproj.json s výchozím názvem souboru testConfig.json. |
--outputPath |
Cesta výstupní složky výsledků testu. Pokud tento argument nezadáte, proces umístí výstupní soubory výsledků do aktuálního adresáře. |
--customCodeZipFilePath |
Cesta k souboru ZIP pro vlastní kód, například UDF nebo deserializátor, pokud se používají. Musíte zabalit knihovny DLL do souboru ZIP a poté zadat cestu. |
Pokud spustíte testovací případy, najdete soubor testResultSummary.json vygenerovaný ve výstupní složce.
{
"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,
}
Poznámka:
Pokud výsledky dotazu obsahují hodnoty float, můžete zaznamenat mírné rozdíly v vytvořených hodnotách, které vedou k pravděpodobně neúspěšnému testu. Tento rozdíl je založený na různých architekturách .NET, které pohánějí Visual Studio nebo motor Visual Studio a motor pro zpracování testů. Chcete-li zajistit úspěšné spuštění testů, snižte přesnost vytvořených hodnot nebo zarovnejte výsledky, které se mají porovnat ručně s vygenerovanými výsledky testu.
Nasazení do Azure
Pokud chcete nasadit projekt Stream Analytics pomocí šablon ARM, postupujte takto:
Připojte se ke svému účtu Azure:
# Connect to Azure Connect-AzAccount # Set the Azure subscription Set-AzContext [SubscriptionID/SubscriptionName]Nasazení projektu Stream Analytics:
$templateFile = ".\Deploy\ClickStream-Filter.JobTemplate.json" $parameterFile = ".\Deploy\ClickStream-Filter.JobTemplate.parameters.json" New-AzResourceGroupDeployment ` -Name devenvironment ` -ResourceGroupName myResourceGroupDev ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
Další informace o nasazení prostředků pomocí šablon ARM najdete v tématu Deploy se souborem šablony Resource Manager a Azure PowerShell.