Configuring Storage for GeRes2

GeRes2 requires several Azure Storage Services. You can use all services from one storage account or put diagnostics and logging into a separate storage account. This guidance demonstrates, how to setup and configure two storage accounts, one for the main
GeRes2 data and one for GeRes2 diagnostics logging. Splitting main data from logging is the recommended approach for running GeRes2 in real-world environments.

Create a new storage account used for the main data, e.g. yourgeres2mainstorage.

Create a second, new storage account used for the diagnostics data, e.g. yourgeres2diagnostics data.

For both storage accounts, copy the storage account secret to update the storage account connection strings in the GeRes2 configuration files, later. To do so, select one storage account and then click on Manage Access Keys in the bottom-toolbar of the
portal. Copy the primary access key into the clipboard or temporarily keep it in a notepad for later use. Also copy the storage account name. Repeat the same steps for the second account (if you’re working with two accounts instead of just putting all
into one account).

With the copied storage account names and primary access keys, update the GeRes2 configuration. For this purpose, continue with opening the appropriate *.cscfg file in the GeRes2_Cloud project. By default, GeRes2 ships with a ServiceConfiguration.Local.cscfg
for local debugging. You don’t need to update this since it goes to the local Development storage by default. We’d rather suggest you create a new service configuration file since using storage services in Azure is relevant for cloud-based deployments,
only (or if you don’t want to use the emulator).

Update the Geres.Storage.ConnectionString setting with the storage account supposed to be the one you want to use for the main data (job tracking tables, list of batches, list of job hosts etc.). This setting exists 3 times
– for each role in the deployment project as shown below.

The connection string for storage accounts looks as follows:DefaultEndpointsProtocol=https;AccountName=youraccontname;AccountKey=yourkey

Replace “youraccountname” with the account name copied in step 4 for the storage account supposed to be the one for the main data of GeRes2.

Replace “yourkey” with the primary access key copied in step 4 for the storage account supposed to be the one for the main data of GeRes2.

Update the Geres.Diagnostics.StorageConnectionString and the
Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString settings with the storage connection string for the storage account created in step 4 for logging and diagnostics. Each of these two settings is configured for each role,
so you’ll need to update overall 6 configuration settings in the *.cscfg file for GeRes2 as shown below. That means that if you want you can even use different storage accounts for Azure-built-in diagnostics and for GeRes2 diagnostics. But we don’t
think that’s necessary since GeRes2 does not make heavy use of Azure diagnostics and it’s just supposed to be the very last fallback for diagnostics.

Finally in the main storage account you need to create a blob container called
jobprocessorfiles. In this container you’ll deploy your job implementation files in sub-directories / tenant as ZIP-archives.

That’s it. After you’ve finalized this configuration, you should configure Azure Active Directory and Service Bus for GeRes2 if you have not done so earlier. For more details on those topics, please look at: