As part of an existing Azure Functions app that has some HTTP Functions that generate Excel files and return them as a byte array, I wanted to add an integration tests web project that when run would download the resulting Excel files. This Azure Functions app is automatically deployed from a GitHub repo.
Kudu and deployment scripts
When using GitHub to deploy any Azure App Service app (including Azure Function apps), Kudu chooses which deployment script to use based on your project type. As it states in the Customizing deployments article in the Kudu wiki, if you happen to have a web project in the repository, then it chooses to build and deploy that project. Continue reading →
WordPress.com is excited to announce our newest offering: a course just for beginning bloggers where you’ll learn everything you need to know about blogging from the most trusted experts in the industry. We have helped millions of blogs get up and running, we know what works, and we want you to to know everything we know. This course provides all the fundamental skills and inspiration you need to get your blog started, an interactive community forum, and content updated annually.
Application Insights is an awesome monitoring tool, but it considers all 4xx and 5xx HTTP Status Codes as errors, and when writing REST APIs some of these codes have a special meaning and are not errors. A 404 (Not found) response from a REST API usually means there are no results for a given action, not that you have hit a non-existent page.
So, how do we tell Application Insights to ignore those 404s? Simple: we write what is called a Telemetry processor. Continue reading →
Are you designing applications for the cloud? This Cloud Design Patterns infographic created by Microsoft provides a great reference of cloud architecture design patterns and guidance for cloud-hosted applications in Microsoft Azure!
Azure Web Apps have a great feature: continuous deployment from different kinds of repositories: Visual Studio Online, OneDrive, a local Git repo, GitHub, Bitbucket, Dropbox or an external repo. You also have built-in alert notifications, but there’s no built-in notifications for deployments, and that’s where Kudu web hooks come to the rescue.
But first, what is Kudu?
Project Kudu is an open source project hosted in GitHub that is the engine behind Git/Mercurial deployments, WebJobs, and various other features in Azure Web Apps. And, it can also run outside of Azure.
What are Web Hooks?
A Web Hook is an HTTP callback: an HTTP POST that occurs when something happens; a simple event-notification via HTTP POST. Web Hooks are a way to receive valuable information when it happens, rather than continually polling for that data and receiving nothing valuable most of the time. Continue reading →
Managing an HDInsight cluster, or running an HDInsight job, from an Azure WebJob, requires you to set up a certificate to access the HDInsight cluster. This post shows how to upload the certificate to the Azure management portal, and how to configure our WebJob.
To generate the certificate file we need, you can follow the steps for the .pfx certificate file generation here.
Uploading the certificate file
The .pfx file should be uploaded in the “Configure” section in your Web App. To do so, follow these steps: Continue reading →
Those of you who look at SQL database connection logs, or at tools like New Relic to monitor your Cloud Service applications, may have noticed that the list of servers running the application have names like “RD000D3A107CFC” (this is the host name in the network).
This name isn’t very useful when trying to identify which of the instances we see in the Azure Management Portal is the one that corresponds to that name. All instances in the portal are named as the role name followed by a number (e.g.: CloudService.Web_IN_1). Continue reading →
Managing an HDInsight cluster, or running an HDInsight job, from an Azure worker role, requires you to set up a certificate to access the HDInsight cluster. This post shows how to upload the certificates to the Azure management portal, and how to configure our cloud service. The previous post (Setting up a cloud service to run HDInsight jobs – Part 1) showed the steps to generate the certificate files we need.
Uploading the certificate files
The .cer file should be uploaded to the Azure portal under the “Management Certificates” section. To do so, follow these steps: Continue reading →
Managing an HDInsight cluster, or running an HDInsight job, from an Azure worker role, requires you to set up a certificate to access the HDInsight cluster. This post shows the steps to generate the certificate files we need. The next one will show you how to upload the certificates to the Azure management portal, and how to configure your cloud service (Setting up a cloud service to run HDInsight jobs – Part 2).
Creating the certificate files
The certificates you download from your Azure subscription will not allow you to generate a pfx file, so we’ll need to create our own. This can be done in two ways: we can buy a certificate from firms like VeriSign or Entrust, or, we can create one ourselves with IIS, for free! Continue reading →
This post will show you how we improved the performance of the car classified listing at Autocosmos.com, working with Miguel Ángel Saez and Matías Quaranta. The objective is to show the solution from an architectural point of view, so it may help others with a similar problem.
Autocosmos.com is an auto shopping and information website that serves Hispanic America, and runs entirely on Microsoft Azure. You can learn about the migration from on-premises to the cloud at this Microsoft Customer Story.
As most traditional software solutions, Autocosmos uses a relational database to store most of its data. As it is hosted in Azure, the RDBMS in use is the Azure SQL Database service.
The classified car listing, one of the fundamental parts of the site, consists of a list of filters, with the amount of results in each filter, and a paged results list, that looks like the image below:
Site layout: filters on the left (red) and the paged results on the right (blue).