Windows Azure Companionのソースが、ダウンロードできます。WindowsAzure Companion
の概要は、「ここ」で紹介しています。この投稿では、ソースコードから5箇所取り上げて、説明します。ソリューションアーキテクチャーを理解するのに重要な5箇所です。簡単な機能拡張をしたいときに、触る可能性がある箇所です。
1. Azure Companion 管理アプリケーション:
WorkerRole\WorkerRole.cs
// Start ASP .NET Admin WebSite
private void StartAdminWebSite()
2. Web CoreでPHPを実行する:
VMManagerService\WindowsAzureVMManager.cs
public static string HWCForPHPProcessName = "HWCForPHP.exe";
VMManagerService\WindowsAzureVMManager.cs
// setting the file name and arguments
hwcServerProcess.StartInfo.FileName = Path.Combine(approot,
WindowsAzureVMManager.HWCForPHPProcessName);
hwcServerProcess.StartInfo.Arguments =
Path.Combine(configPath, "php_applicationHost.config") + " "
+ Path.Combine(configPath, "php_web.config");
hwcServerProcess.Start();
// Start the asynchronous read of the output stream.
hwcServerProcess.BeginOutputReadLine();
Trace.TraceInformation("Started Hosted Web Core Server for PHP Applications
on port {0}", endpoint.Port.ToString());
3. RAM パフォーマンスカウンター:
WorkerRole\WorkerRole.cs
// Add performance counter monitoring
cfg.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\Processor(_Total)\% Processor Time",
SampleRate = timeSpan
});
cfg.PerformanceCounters.DataSources.Add(
new PerformanceCounterConfiguration()
{
CounterSpecifier = @"\Memory\Available Mbytes",
SampleRate = timeSpan
});
cfg.PerformanceCounters.ScheduledTransferPeriod = timeSpan;
4. Cloud Driveを作成し、 backup.vhd をマウントする:
VMManagerService\WindowsAzureVMManager.cs
// Get Windows Azure Drive container and blob names from service configuration file
string xdriveContainerName = RoleEnvironment.GetConfigurationSettingValue("PHPApplicationsBackupContainerName");
string xdriveBlobName = RoleEnvironment.GetConfigurationSettingValue("XDrivePageBlobName");
5. Cloud Drive の名前とサイズなどの設定:
ServiceConfiguration.cscfg
<!– Settings for Windows Azure Drive used for durability –>
<Setting name="PHPApplicationsBackupContainerName" value="phpapps" />
<Setting name="InstallationStatusConfigFileBlob" value="status.xml" />
<Setting name="ProgressInformationFileBlob" value="progress.xml" />
<Setting name="XDrivePageBlobName" value="backup.vhd" />
<Setting name="XDriveSizeInMB" value="2000" />