Sign up through http://dev.windowsazure.com to get a token for the service. Turnaround is pretty quick, so you should have one in about a day or so. If you don't see it in a day, make sure you check your SPAM folder to ensure that the message we send you is not trapped in purgatory there.
Navigate to the Windows Azure Portal and sign-in with the LiveID that you would like to use to manage your Windows Azure applications. Today, in the CTP, only a single LiveID can manage your Windows Azure project and we cannot reassociate the token with another LiveID once redeemed. As such, make sure you use the LiveID that you want long term to manage the solution.
The first time you login to the portal, you will be asked to associate your LiveID.
Click 'I Agree' to continue and once the association has been successful click 'Continue' again. At this point, you will be presented with an option to redeem a token. Here is where you input the token you received in Step 1.
Enter the token and click 'Next'. You will then be presented with some EULAs to peruse. Read them carefully (or don't) and then click 'Accept'. You will get another confirmation screen, so click 'Continue'.
At this point, you can now create your first hosted solution. You should be on the main Project page and you should see 2 and 1 project(s) remaining for Storage Account and Hosted Services, respectively.
Click 'Hosted Services' and provide a Project label and description.
Click 'Next' and provide a globally unique name that will be the basis for your public URL. Click 'Check Availability' and ensure that the name hasn't been taken. Next, you will need to create an Affinity Group in order to later get your storage account co-located with your hosted service.
Click the 'Yes' radio button and the option to create a new Affinity Group. Give the Affinity Group a name and select a region where you would like this Affinity Group located. Click 'Create' to finish the process.
Click the 'New Project' link near the left corner of the portal and this time, select the Storage Account option.
Similar to before, give a project label and description and click Next.
Enter a globally unique name for your storage account and click 'Check Availability'. Since performance is best when the data is near the compute, you should make sure that you opt to have your storage co-located with your service. We can do this with the Affinity Group we created earlier. Click the 'Yes' radio button and use the existing Affinity group. Click 'Create' to finish.
At this time, you should note that your endpoints have been created for your storage account and two access keys are provided for you to use for authentication.
At this point, I will skip past the minor detail of actually building an application for this tutorial and assume you have one (or you choose to use one from the SDK). For Visual Studio users, you would want to right click your project and select 'Publish' to generate the service package you need to upload. Alternatively, you can use the cspack.exe tool to create your package.
Using either method you will eventually have two files: the actual service package (cspkg) and a configuration file (cscfg).
From the portal, select the hosted service project you just created in Step 3 and click the 'Deploy' button.
Browse to the cspkg location and upload both the package and the configuration settings file (cscfg). Click 'Deploy'.
Over the next minute or so, you will see that your package is deploying. Hold tight and you will see it come back with the status of "Allocated". At this point, click the 'Configure' button**.
In order to use your storage account you created in Step 4, you will need to update this information from the local development fabric settings to your storage account settings. An easy way to get this is to right click your Storage Account project link in the left hand navigation tabs and open it in a new tab. With the storage settings in one tab and the configuration in another, you can easily switch between the two and cut & paste what you need.
Inside the XML configuration, replace the 'AccountName' setting with your storage account name. If you are confused, teh account name is the one that is part of the unique global URL, i.e. <youraccountname>.blob.core.windows.net. Enter the 'AccountSharedKey' using the primary access key found on the storage project page (in your new tab). Update the endpoints from the loop-back addresses to the cloud settings: https://blob.core.windows.net, https://queue.core.windows.net, https://table.core.windows.net respectively. Note that the endpoints here do not include your account name and we are using https. Set the 'allowInsecureRemoteEndpoints' to either false or just delete that XML element.
Finally, update the 'Instances' element to 2 (the limit in the CTP today). It is strongly recommended that you run at least 2 instances at all times. This ensures that you always have at least one instance running at all times if something fails or we need to do updates (we update by fault zones and your instances are automatically placed across fault zones). Click 'Save' and you will see that your package is listed as 'Package is updating'.
When your package is back in the 'Allocated' state (a min later or so), click the 'Run' button. Your service will then go to the 'Initializing' state and you will need to wait a few mins while it gets your instances up and running. Eventually, your app will have a 'Started' status. Congratulations, your app is deployed in the Staging environment.
Once deployed to staging, you should click the staging hyperlink for your app (the one with the GUID in the DNS name) and test your app. If you get a hostname not found error, wait a few more seconds and try again - it is likely that you are waiting for DNS to update and propagate your GUID hostname. When you are comfortable, click the big circular button in between the two environments (it has two arrows on it) and promote your application to the 'production' URL.
Congratulations, you have deployed your first app in Windows Azure.
** Note, this part of the process might be optional for you. If you have already configured your developer environment to run against cloud storage or you are not using the StorageClient sample at all, you might not need to do this as the uploaded configuration file will already include the appropriate cloud settings. Of course, if you are not using these options, you are already likely a savvy user and this tutorial is unnecessary for you.
May 22, 2009
This is the personal site of Ryan Dunn, former Windows Azure Technical Evangelist and co-author of the
The .NET Developers Guide to Directory Services Programming.
Ryan works for Aditi where he builds software for Windows Azure
Buy the Book