{"id":1752,"date":"2019-01-28T00:00:00","date_gmt":"2019-01-28T00:00:00","guid":{"rendered":""},"modified":"2025-06-11T05:41:28","modified_gmt":"2025-06-11T12:41:28","slug":"development-source-control-and-ci-cd-for-azure-stream-analytics-jobs","status":"publish","type":"post","link":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/","title":{"rendered":"Development, source control, and CI\/CD for Azure Stream Analytics jobs"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments? <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=ADLTools.AzureDataLakeandStreamAnalyticsTools\" target=\"_blank\" rel=\"noopener\">Stream Analytics Visual Studio tools<\/a> together with <a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/devops\/pipelines\/\" target=\"_blank\" rel=\"noopener\">Azure Pipelines<\/a> provides an integrated environment that helps you accomplish all these scenarios. This article will show you how and point you to the right places in order to get started using these tools.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the past it was difficult to use Azure Data Lake Store Gen1 as the output sink for ASA jobs, and to set up the related automated CI\/CD process. This was because the OAuth model did not allow automated authentication for this kind of storage. The tools being released in January 2019 support <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-managed-identities-adls#stream-analytics-tools-for-visual-studio\" target=\"_blank\" rel=\"noopener\">Managed Identities for Azure Data Lake Storage Gen1 output sink<\/a> and now enable this important scenario.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This article covers the end-to-end development and CI\/CD process using Stream Analytics Visual Studio tools, <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.StreamAnalytics.CICD\/\" target=\"_blank\" rel=\"noopener\">Stream Analytics CI.CD NuGet package<\/a>, and Azure Pipelines. Currently Visual Studio 2019, 2017, and 2015 are all supported. If you haven\u2019t tried the tools, follow the installation instructions to get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"job-development\">Job development<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let\u2019s get started by creating a job. Stream Analytics Visual Studio tools allows you to manage your jobs using a project. Each project consists of an ASA query script, a job configuration, and several input and output configurations. Query editing is very efficient when using all the IntelliSense features like error markers, auto completion, and syntax highlighting. For more details about how to author a job, see the <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-quick-create-vs\" target=\"_blank\" rel=\"noopener\">quick start guide with Visual Studio<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp\" alt=\"Screenshot of Azure Stream Analytics query script\" style=\"border-radius:0px\" title=\"Screenshot of Azure Stream Analytics query script\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you have existing jobs and want to develop them in Visual Studio or add source control, just export them to local projects first. You can do this from the server explorer context menu for a given ASA job. This feature can also be used to easily copy a job across regions without authoring everything from scratch.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/9a3f3539-33a5-4903-9383-fc922475a6f8.webp\" alt=\"Screenshot of exporting to new Stream Analytics project\" style=\"border-radius:0px\" title=\"Screenshot of exporting to new Stream Analytics project\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Developing in Visual Studio also provides you with the best native authoring and debugging experience when you are writing <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-javascript-user-defined-functions\" target=\"_blank\" rel=\"noopener\">JavaScript user defined functions<\/a> in cloud jobs or <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-edge-csharp-udf-methods\" target=\"_blank\" rel=\"noopener\">C# user defined functions in Edge jobs<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"source-control\">Source control<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When created as projects, the query and other artifacts sit on the local disk of your development computer. You can use the Azure DevOps, formerly Visual Studio Team Service, for version control or commit code directly to any repositories you want. By doing this you can save different versions of the .asaql query as well as inputs, outputs, and job configurations while easily reverting to previous versions when needed.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/0156e25e-e00c-4600-b06c-330cbbc99fd2.webp\" alt=\"Screenshot of home screen on Team Explorer\" style=\"border-radius:0px\" title=\"Screenshot of home screen on Team Explorer\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"testing-locally\">Testing locally<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">During development, use local testing to iteratively <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-vs-tools-local-run\" target=\"_blank\" rel=\"noopener\">run and fix code with local sample data<\/a> or <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-live-data-local-testing\" target=\"_blank\" rel=\"noopener\">live streaming input data<\/a>. Running locally starts the query in seconds and makes the testing cycle much shorter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"testing-in-the-cloud\">Testing in the cloud<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Once the query works well on your local machine, it\u2019s time to submit to the cloud for performance and scalability testing. Select \u201cSubmit to Azure\u201d in the query editor to upload the query and start the job running. You can then view the job metrics and job flow diagram from within Visual Studio.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/8cec8e3b-237a-404e-8529-21557b593fa7.webp\" alt=\"Screenshot of submitting query to Azure\" style=\"border-radius:0px\" title=\"Screenshot of submitting query to Azure\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/ec9aeed4-5051-4a74-997b-e357eb9bfd26.webp\" alt=\"Screenshot of Stream Analytics job summary\" style=\"border-radius:0px\" title=\"Screenshot of Stream Analytics job summary\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setup-ci-cd-pipelines\">Setup CI\/CD pipelines<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">When your query testing is complete, the next step is to setup your CI\/CD pipelines for production environments. ASA jobs are deployed as Azure resources using Azure Resource Manager (ARM) templates. Each job is defined by an <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/azure-resource-manager\/resource-manager-templates-parameters\" target=\"_blank\" rel=\"noopener\">ARM template definition file and a parameter file<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are two ways to generate the two files mentioned above:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li class=\"wp-block-list-item\">In Visual Studio, right click your project name and select \u201cBuild.\u201d<\/li>\n\n\n\n<li class=\"wp-block-list-item\">On an arbitrary build machine, install <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.StreamAnalytics.CICD\/\" target=\"_blank\" rel=\"noopener\">Stream Analytics CI.CD NuGet package<\/a> and run the command \u201cbuild\u201d only supported on Windows at this time. This is needed for an automated build process.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Performing a \u201cbuild\u201d generates the two files under the \u201cbin\u201d folder and lets you save them wherever you want.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/3bb545f0-27ba-4e65-8295-4be54fe38e0c.webp\" alt=\"Screenshot of the deployment folder\" style=\"border-radius:0px\" title=\"Screenshot of the deployment folder\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">The default values in the parameter file are the ones from the inputs\/outputs job configuration files in your Visual Studio project. To deploy in multiple environments, replace the values via a simple power shell script in the parameter file to generate different versions of this file to specify the target environment. In this way you can deploy into dev, test, and eventually production environments.<\/p>\n\n\n\n<figure class=\"wp-block-image has-custom-border\"><img decoding=\"async\" src=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/06e4e8dc-4f26-410d-9e46-6e9504731097.webp\" alt=\"Example code for power shell script\" style=\"border-radius:0px\" title=\"Example code for power shell script\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">As stated above, the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.StreamAnalytics.CICD\/\" target=\"_blank\" rel=\"noopener\">Stream Analytics CI.CD NuGet package<\/a> can be used independently or in the CI\/CD systems such as Azure Pipelines to automate the build and test process of your Stream Analytics Visual Studio project. Check out the \u201c<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-tools-for-visual-studio-cicd\" target=\"_blank\" rel=\"noopener\">Continuously integrate and develop with Stream Analytics tools<\/a>\u201dand \u201c<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-tools-visual-studio-cicd-vsts\" target=\"_blank\" rel=\"noopener\">Deploy Stream Analytics jobs with CI\/CD using Azure Pipelines Tutorial<\/a>\u201d for more details.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"providing-feedback-and-ideas\">Providing feedback and ideas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Azure Stream Analytics team is highly committed to listening to your feedback. We welcome you to join the conversation and make your voice heard via our <a href=\"https:\/\/feedback.azure.com\/forums\/270577-stream-analytics\/filters\/top\" target=\"_blank\" rel=\"noopener\">UserVoice<\/a>. For tools feedback, you can also reach out to <a href=\"mailto:ASAToolsFeedback@microsoft.com\">ASAToolsFeedback@microsoft.com<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Did you know we have more than ten new features in public preview? <a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/stream-analytics\/stream-analytics-previews\" target=\"_blank\" rel=\"noopener\">Sign up for our preview programs<\/a> to try them out. Also, follow us on Twitter <a href=\"https:\/\/twitter.com\/azurestreaming\" target=\"_blank\" rel=\"noopener\">@AzureStreaming<\/a> to stay updated on the latest features.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","footnotes":"","msx_community_cta_settings":[]},"categories":[1474,1485],"tags":[48],"audience":[3054,3057,3053],"content-type":[1511],"product":[1514],"tech-community":[],"topic":[],"coauthors":[550],"class_list":["post-1752","post","type-post","status-publish","format-standard","hentry","category-analytics","category-internet-of-things","tag-big-data","audience-business-decision-makers","audience-data-professionals","audience-it-decision-makers","content-type-best-practices","product-azure-stream-analytics","review-flag-1680286581-295","review-flag-integ-1680286579-214","review-flag-new-1680286579-546","review-flag-publi-1680286584-566"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Development, source control, and CI\/CD for Azure Stream Analytics jobs | Microsoft Azure Blog<\/title>\n<meta name=\"description\" content=\"Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Development, source control, and CI\/CD for Azure Stream Analytics jobs | Microsoft Azure Blog\" \/>\n<meta property=\"og:description\" content=\"Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Azure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/microsoftazure\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-28T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T12:41:28+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp\" \/>\n<meta name=\"author\" content=\"Jie Su\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@azure\" \/>\n<meta name=\"twitter:site\" content=\"@azure\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jie Su\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\"},\"author\":[{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/jie-su\/\",\"@type\":\"Person\",\"@name\":\"Jie Su\"}],\"headline\":\"Development, source control, and CI\/CD for Azure Stream Analytics jobs\",\"datePublished\":\"2019-01-28T00:00:00+00:00\",\"dateModified\":\"2025-06-11T12:41:28+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\"},\"wordCount\":866,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp\",\"keywords\":[\"Big Data\"],\"articleSection\":[\"Analytics\",\"Internet of things\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\",\"name\":\"Development, source control, and CI\/CD for Azure Stream Analytics jobs | Microsoft Azure Blog\",\"isPartOf\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp\",\"datePublished\":\"2019-01-28T00:00:00+00:00\",\"dateModified\":\"2025-06-11T12:41:28+00:00\",\"description\":\"Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?\",\"breadcrumb\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog home\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Analytics\",\"item\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/analytics\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Development, source control, and CI\/CD for Azure Stream Analytics jobs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#website\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"name\":\"Microsoft Azure Blog\",\"description\":\"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.\",\"publisher\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization\",\"name\":\"Microsoft Azure Blog\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"contentUrl\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp\",\"width\":512,\"height\":512,\"caption\":\"Microsoft Azure Blog\"},\"image\":{\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/microsoftazure\",\"https:\/\/x.com\/azure\",\"https:\/\/www.instagram.com\/microsoftdeveloper\/\",\"https:\/\/www.linkedin.com\/company\/16188386\",\"https:\/\/www.youtube.com\/user\/windowsazure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117\",\"name\":\"shakir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g\",\"caption\":\"shakir\"},\"sameAs\":[\"https:\/\/azure.microsoft.com\"],\"url\":\"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Development, source control, and CI\/CD for Azure Stream Analytics jobs | Microsoft Azure Blog","description":"Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/","og_locale":"en_US","og_type":"article","og_title":"Development, source control, and CI\/CD for Azure Stream Analytics jobs | Microsoft Azure Blog","og_description":"Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?","og_url":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/","og_site_name":"Microsoft Azure Blog","article_publisher":"https:\/\/www.facebook.com\/microsoftazure","article_published_time":"2019-01-28T00:00:00+00:00","article_modified_time":"2025-06-11T12:41:28+00:00","og_image":[{"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp","type":"","width":"","height":""}],"author":"Jie Su","twitter_card":"summary_large_image","twitter_creator":"@azure","twitter_site":"@azure","twitter_misc":{"Written by":"Jie Su","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#article","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/"},"author":[{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/jie-su\/","@type":"Person","@name":"Jie Su"}],"headline":"Development, source control, and CI\/CD for Azure Stream Analytics jobs","datePublished":"2019-01-28T00:00:00+00:00","dateModified":"2025-06-11T12:41:28+00:00","mainEntityOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/"},"wordCount":866,"commentCount":0,"publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp","keywords":["Big Data"],"articleSection":["Analytics","Internet of things"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/","name":"Development, source control, and CI\/CD for Azure Stream Analytics jobs | Microsoft Azure Blog","isPartOf":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage"},"thumbnailUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp","datePublished":"2019-01-28T00:00:00+00:00","dateModified":"2025-06-11T12:41:28+00:00","description":"Do you know how to develop and source control your Microsoft Azure Stream Analytics (ASA) jobs? Do you know how to setup automated processes to build, test, and deploy these jobs to multiple environments?","breadcrumb":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#primaryimage","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2019\/01\/7c9d99c0-86ea-4fcf-b252-19da02476ec1.webp"},{"@type":"BreadcrumbList","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/development-source-control-and-ci-cd-for-azure-stream-analytics-jobs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog home","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/"},{"@type":"ListItem","position":2,"name":"Analytics","item":"https:\/\/azure.microsoft.com\/en-us\/blog\/category\/analytics\/"},{"@type":"ListItem","position":3,"name":"Development, source control, and CI\/CD for Azure Stream Analytics jobs"}]},{"@type":"WebSite","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#website","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","name":"Microsoft Azure Blog","description":"Get the latest Azure news, updates, and announcements from the Azure blog. From product updates to hot topics, hear from the Azure experts.","publisher":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/azure.microsoft.com\/en-us\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#organization","name":"Microsoft Azure Blog","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","contentUrl":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-content\/uploads\/2024\/06\/microsoft_logo.webp","width":512,"height":512,"caption":"Microsoft Azure Blog"},"image":{"@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/microsoftazure","https:\/\/x.com\/azure","https:\/\/www.instagram.com\/microsoftdeveloper\/","https:\/\/www.linkedin.com\/company\/16188386","https:\/\/www.youtube.com\/user\/windowsazure"]},{"@type":"Person","@id":"https:\/\/azure.microsoft.com\/en-us\/blog\/#\/schema\/person\/c702e5edd662b328b49b7e1180cab117","name":"shakir","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g7664e653ea371ce16eaf75e9fa8952c4","url":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9342c7c05bb16548741bc5cd3a3e3b7ee0c8e746844ad2cc582db5beb5514c6f?s=96&d=mm&r=g","caption":"shakir"},"sameAs":["https:\/\/azure.microsoft.com"],"url":"https:\/\/azure.microsoft.com\/en-us\/blog\/author\/shakir\/"}]}},"msxcm_display_generated_audio":false,"msxcm_animated_featured_image":null,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Azure Blog","distributor_original_site_url":"https:\/\/azure.microsoft.com\/en-us\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/1752","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/comments?post=1752"}],"version-history":[{"count":1,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/1752\/revisions"}],"predecessor-version":[{"id":41429,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/posts\/1752\/revisions\/41429"}],"wp:attachment":[{"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/media?parent=1752"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/categories?post=1752"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tags?post=1752"},{"taxonomy":"audience","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/audience?post=1752"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/content-type?post=1752"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/product?post=1752"},{"taxonomy":"tech-community","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/tech-community?post=1752"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/topic?post=1752"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/azure.microsoft.com\/en-us\/blog\/wp-json\/wp\/v2\/coauthors?post=1752"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}