Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med Azure Stream Analytics (ASA) CI/CD npm-paketet kan du automatiskt skapa, testa och distribuera dina Stream Analytics-projekt. Den här artikeln visar hur du använder npm-paketet med valfritt CI/CD-system. Information om hur du konfigurerar en pipeline med hjälp av Azure DevOps finns i Använd Azure DevOps för att skapa en CI/CD-pipeline för ett Stream Analytics-jobb.
Om du inte har ett Stream Analytics-projekt skapar du ett med Visual Studio Code eller exporterar ett befintligt från Azure Portal.
Installation
Du kan ladda ned paketet från npm-platsen eller köra följande kommando i terminalen.
npm install -g azure-streamanalytics-cicd
Skapa projekt
Kommentar
Använd alternativet --v2 för det uppdaterade ARM-mallschemat. Det uppdaterade schemat har färre parametrar men behåller samma funktioner som den tidigare versionen.
Den gamla ARM-mallen är inaktuell. Endast mallar som skapas via build --v2 ta emot uppdateringar eller felkorrigeringar.
azure-streamanalytics-cicd build --v2 --project <projectFullPath> [--outputPath <outputPath>]
Kommandot build utför en nyckelordssyntaxkontroll och genererar arm-mallar (Azure Resource Manager).
| Argument | beskrivning |
|---|---|
--project |
Ange filen asaproj.json med hjälp av en absolut eller relativ sökväg. |
--outputPath |
Ange utdatamappen för lagring av ARM-mallar med hjälp av en absolut eller relativ sökväg. Om du inte anger outputPathgår mallarna i den aktuella katalogen. |
Exempel:
# Go to the project directory
cd <path-to-the-project>
# Build project
azure-streamanalytics-cicd build --v2 --project ./asaproj.json --outputPath ./Deploy
Om projektet byggs framgångsrikt, ser du två nya JSON-filer skapas under utdatamappen.
- ARM-mallfil:
[ProjectName].JobTemplate.json - Azure Resource Manager-parameterfil:
[ProjectName].JobTemplate.parameters.json
Standardvärdena för parameters.json-filen kommer från projektinställningarna. Om du vill distribuera till en annan miljö ersätter du värdena i enlighet med detta.
Standardvärdena för alla autentiseringsuppgifter är null. Ange värdena innan du distribuerar till Azure.
"Input_EntryStream_sharedAccessPolicyKey": {
"value": null
}
Om du vill använda Hanterad identitet för Azure Data Lake Store Gen1 som utdatamottagare måste du ge åtkomst till tjänstens huvudkonto med hjälp av PowerShell innan distribution till Azure. Mer information finns i distribuera ADLS Gen1 med hanterad identitet med Resource Manager mall.
Kör lokalt
Om projektet innehåller lokala indatafiler använder du localrun kommandot för att köra ett Stream Analytics-skript lokalt.
azure-streamanalytics-cicd localrun -project <projectFullPath> [-outputPath <outputPath>] [-customCodeZipFilePath <zipFilePath>]
| Argument | beskrivning |
|---|---|
--project |
Ange filen asaproj.json med hjälp av en absolut eller relativ sökväg. |
--outputPath |
Ange utdatamappen för lagring av ARM-mallar med absolut eller relativ sökväg. Om outputPath inte anges placeras mallarna i den aktuella katalogen. |
--customCodeZipFilePath |
Sökvägen till zip-filen för anpassad C#-kod, som till exempel UDF eller deserializer, om den används. Paketera DLL:erna i en zip-fil och ange den här sökvägen. |
Exempel:
# Go to the project directory
cd <path-to-the-project>
# Run project locally
azure-streamanalytics-cicd localrun --project ./asaproj.json"
Kommentar
JavaScript-UDF:er fungerar bara på Windows.
Automatiserat test
Använd CI/CD npm-paketet för att konfigurera och köra automatiserade tester för ditt Stream Analytics-projekt.
Lägga till ett testfall
azure-streamanalytics-cicd addtestcase --project <projectFullPath> [-testConfigPath <testConfigFileFullPath>]
Du hittar testfallen i testkonfigurationsfilen.
| Argument | beskrivning |
|---|---|
--project |
Ange filen asaproj.json med absolut eller relativ sökväg. |
--testConfigPath |
Sökvägen till testkonfigurationsfilen. Om du inte anger det här argumentet söker verktyget efter filen i \test under den aktuella katalogen i filenasaproj.json , med standardfilnamnet testConfig.json. Om filen inte finns skapar verktyget en ny fil. |
Exempel:
# Go to the project directory
cd <path-to-the-project>
# Add a test case
azure-streamanalytics-cicd addtestcase --project ./asaproj.json
Om testkonfigurationsfilen är tom lägger du till följande innehåll i filen. Annars lägger du till ett testfall i en TestCases-matris . Verktyget fyller automatiskt i nödvändiga indatakonfigurationer enligt indatakonfigurationsfilen. Du måste ange FilePath för varje indata och förväntade utdata innan du kör testet. Du kan ändra den här konfigurationen manuellt.
Om du vill att testverifieringen ska ignorera ett visst utdata anger du fältet Obligatoriskt för förväntade utdata till 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
}
]
}
]
}
Kör enhetstest
Använd följande kommando för att köra flera testfall för projektet. Processen genererar en sammanfattning av testresultaten i utdatamappen. Processen avslutas med kod 0 om alla tester godkänns, -1 om ett undantag inträffar och -2 om testerna misslyckas.
azure-streamanalytics-cicd test --project <projectFullPath> [--testConfigPath <testConfigFileFullPath>] [--outputPath <outputPath>] [--customCodeZipFilePath <zipFilePath>]
| Argument | beskrivning |
|---|---|
--project |
Sökvägen till filen asaproj.json. |
--testConfigPath |
Sökvägen till testkonfigurationsfilen. Om du inte anger det här argumentet söker processen efter filen i \test under den aktuella katalogen i filenasaproj.json , med standardfilnamnet testConfig.json. |
--outputPath |
Sökvägen till utdatakatalogen för testresultat. Om du inte anger det här argumentet placerar processen utdataresultatfilerna i den aktuella katalogen. |
--customCodeZipFilePath |
Sökvägen till zip-filen för anpassad kod, såsom en UDF eller deserialiserare, om de används. Du måste paketera DLL:erna till en zip-fil och ange sökvägen. |
Om du kör testfall kan du hitta filen testResultSummary.json som har genererats i utdatamappen.
{
"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,
}
Kommentar
Om frågeresultatet innehåller flyttalsvärden kan det uppstå små skillnader i de genererade värdena som leder till ett förmodligen misslyckat test. Den här skillnaden baseras på de olika .NET-frameworks som driver Visual Studio-motorn respektive testbearbetningsmotorn. För att säkerställa att testerna körs korrekt kan du minska precisionen för dina genererade värden eller justera resultaten så att de jämförs manuellt med de genererade testresultaten.
Distribuera till Azure
Följ dessa steg för att distribuera Stream Analytics-projektet med hjälp av ARM-mallar:
Anslut till ditt Azure-konto:
# Connect to Azure Connect-AzAccount # Set the Azure subscription Set-AzContext [SubscriptionID/SubscriptionName]Distribuera ditt Stream Analytics-projekt:
$templateFile = ".\Deploy\ClickStream-Filter.JobTemplate.json" $parameterFile = ".\Deploy\ClickStream-Filter.JobTemplate.parameters.json" New-AzResourceGroupDeployment ` -Name devenvironment ` -ResourceGroupName myResourceGroupDev ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
Mer information om hur du distribuerar resurser med arm-mallar finns i Distribution med en Resource Manager mallfil och Azure PowerShell.