Thursday, December 18, 2008

Important Windows Azure Documentation Hidden in the MSDN Library

As a result of searching for what I believed was an undocumented requirement for conformance between <Setting name="*Endpoint …> elements in ServiceConfiguration.cscfg and ServiceDefinition.csdef, I ran across the following group of Azure documentation files hidden in the MSDN Library’s Visual Studio 2008 Developer Center:

Quick Lap around the Windows Azure Tools for Microsoft Visual Studio

Jim Nakashima’s tutorial describing how to use the Windows Azure Tools for Visual Studio 2008 that covers the following topics:

  • Creating a new Cloud Service
  • Modify the web role project
  • Building and Debugging the Cloud Service
  • Modify the number of instances to run.
  • Debug the project
  • Publishing the Cloud Service

Using the Cloud Service Project Roles Node

Joe Nalewabau’s tutorial shows you how to use the tools with VS 2008 to:

  • Change a project associated with a role
  • Associate a role with a new project
  • Associate with an existing role project
  • Add or Remove Roles from a Cloud Service
  • Add a Role to a Cloud Service
  • Remove a Role from a Cloud Service

Windows Azure Tools Development Fabric and Storage Integration

Jim Nakashima’s tutorial explains how to use the Development Fabric and Development Storage features:

  • Development Fabric Integration
  • Development Storage Integration
  • Blob and Queue Storage Service Integration
  • Table Storage Service Integration

Deploying a Service on Windows Azure

Jim Nakashima explains the “Click Twice” deployment approach for Web applications running under Windows Azure:

  • Prerequisites
  • Workflow
  • Moving from Developer Storage to a Windows Azure Storage Account
  • Creating a Storage Account
  • Configuration Changes to use Windows Azure Storage
  • Debug your Cloud Service Locally Running against Windows Azure Storage
  • Create a Hosted Service
  • Setting the API Key in Visual Studio
  • Deploying the Package from Visual Studio

Enabling SSL Connections on Windows Azure

Jim Nakashima describes the ins and outs of moving from clear-text HTTP to encrypted HTTPS:

  • SSL Certificate Workflow
  • Create the Cloud Service Project
  • Customize your Web Role
  • Test an HTTPS Endpoint in the Local Development Fabric
  • Select a Certificate
  • Specify an HTTPS Endpoint for a Service on Windows Azure

Jim notes that the certificate used with the Development Fabric must be self-signed because in that scenario the private key is not securely protected. He also mentions that you can provide two <InputEndpoint> elements to enable both HTTP and HTTPS protocols for a service.

Issues and Constraints in the Windows Azure Tools and SDK

An anonymous author (probably Jim Nakashima) provides the following miscellaneous issues, tips and workarounds for Azure Services:

  • Visual Studio must be run as an Administrator
  • Cloud Services run in a modified medium trust
  • Solution and Projects: Cannot create a compute project within a solution folder
  • Debugging and Running from Visual Studio: Need to keep the Cloud Service project set to the StartUp project when running or debugging
  • Service Configuration and Definition: Configuration Settings must match in the Service Definition and Service Configuration Files*
  • Development Storage: A Blob container name must be a valid Domain Name System (DNS) name
  • Development Storage: A queue name must be a valid Domain Name System (DNS) name
  • Development Storage: Table and Property name Constraints
  • To use Development Storage with SQL Server Express 2008: Add yourself to the sysadmin role in order to use the Development Storage Services on SQL Server Express 2008.

* This is the topic I was searching for when I found this collection of white papers.

Azure testers owe a debt of gratitude to Jim Nakashima for the preceding documentation and the “lavishly illustrated” tutorials contained in his Cloudy in Seattle blog posts.

Additional keywords for searching: BlobStorageEndpoint, QueueStorageEndpoint, TableStorageEndpoint, “Invalid configuration file”