Woohoo!!! The Azure Services Training Kit was updated this week. Well, maybe it's not that exciting because it means more work or "fun" training. It all depends on whether the sun is shining and I can ride the Goldwing. It's overcast and very windy so I'm "enjoying" the Azure Services Training Kit Labs. I walked through some of the labs this weekend, primarily the Blobs, Table, and Queue labs to better prepare for our Dallas Azure User Group talk on the 18th of this month. Mike Holdorf, Rob Vettor, and I are teaming up to present the topic of Azure Storage. It should be noted that the labs use the very useful SDK wrapper to abstract all of the REST complexities. So if you want to learn everything about Azure REST calls and how to handle retries and storage details, peek into the SDK example classes. In most cases, people just want to get the job done so these high level labs are very useful.
Now you want the fast track to learning Azure using these labs?
- Watch some videos to get acclimated with what the Windows Azure Platform is. These videos are listed in my previous blog post on Windows Azure Resources.
- Install the Azure Services Training Kit
- Open the file: C:\AzureServicesKit\Labs.htm to list the "Hands-On Labs".
- Perform each lab, starting with the first, to get the basic skills such as debugging in the development environment (Dev Fabric). The simplest way to walk through the labs is to just open the Word DOC and follow the instructions.
Leveraging the Azure SDK
The Azure SDK includes a DLL Wrapper located at "\Program Files\Windows Azure SDK\v1.0\samples\StorageClient". This is well written class library to make Azure Storage development easy. This is an extremely useful component that saves everyone time by avoiding the time to write individual REST interfaces to the Azure API. It's the code that we all would have written with at least a week of free time on our hands. It's also the code we should review to imitate the calls on other platforms such as Mono or non-dotnet environments for our REST calls. For blob calls, we would then look at the RestHelpers.cs, RestBlobStorage.cs, and the higher level calls in BlobStorage.cs.
Lessons Learned While Using the Azure Storage Labs
- Read the Windows Azure SDK CHM file. This is a great resource for limitations and error messages.
- To clear the database when all is done, from the Windows Azure SDK prompt, run "dsinit /forcecreate /server:<SQLServerInstance>"
- From the SDK Documentation: Development storage supports only a single fixed account and a well-known authentication key. This account and key are the only credentials permitted for use with development storage. They are:
- Account name: devstoreaccount1
- Account key: Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==
- I manually changed the SQL Server instance from "localhost\SQLExpress" so I could use my local SQL Server 2008 instance in the development fabric. But when the option is selected during the lab to "Create Test Storage Tables", it uses MSBuild tasks to create the tables. The setting in the Targets file is set for SQL Express.
For future references, after installing an Azure SDK update that overwrites these files, there are three places in two files to specify a different database location for the development fabric.
- C:\Program Files\Windows Azure SDK\v1.0\bin\DevelopmentStorage.exe.config
- C:\Program Files (x86)\MSBuild\Microsoft\Cloud Service\v1.0\ Microsoft.CloudService.targets