クラウド ドライブを使用したデータ アクセス

クラウド ドライブを使用して、アプリケーションのデータにアクセスできます。データを Windows Azure ストレージにアップロードし、クラウド ドライブ API を使用してそのデータにアクセスします。

例えば、デモンストレーション用の AzureBookDemo は、アップロードされた仮想ハード ドライブにあるデータ ファイルにクラウド ドライブを使用してアクセスします。この仮想ハード ドライブには、以前から存在する COBOL データ ファイル (.dat および .idx ファイル) が含まれています。AzureBookDemo の Worker ロールには、次を行うためのコードが含まれています。

VHD のマウント

AzureBookDemo では、Windows Azure API を使用して AzureBookDemo データ (BookData.vhd) 用のクラウド ドライブを作成し、それをマウントします。

クラウド ドライブにはキャッシュが必要です。このキャッシュはロールの局所記憶域プロパティに指定する必要があります。例えば、AzureBookDemo ではキャッシュは BookDataCache という名前で 32Mb に設定されています。

method-id MountVirtualDrive private.
  ...
  set driveCache to type RoleEnvironment::GetLocalResource("BookDataCache")
  invoke type  CloudDrive::InitializeCache(driveCache::RootPath, driveCache::MaximumSizeInMegabytes)
  ...
  *> Get the full name of the VHD and create a Cloud Drive for it
  set blobClient to type CloudStorageAccountStorageClientExtensions::CreateCloudBlobClient(storageAccount)
  ...
  set vhdUri to type String::Concat(vhdUri, "vhd/BookData.VHD")
  set theDrive to type CloudStorageAccountCloudDriveExtensions::CreateCloudDrive(storageAccount, vhdUri)
  ...
  *> Mount the drive with a 16Mb cache
  set driveLetterString to myCloudDrive::Mount(16, type DriveMountOptions::None)
データの場所の定義

AzureBookDemo はデータ (bookfile.dat) の場所をクラウド ドライブで定義します。これは、dd_ 環境変数を仮想ドライブ上のファイル名に設定することで定義され、BookLegacy がそのデータにアクセスできるようになります。次に例を示します。

  set bookPath to type Path::Combine(driveletterString, "bookfile.dat")
  ...
  display "dd_bookfile" upon environment-name
  display bookPath upon environment-value