AzureBlob::Client checks that at least one of secret_key and principal_id are present upon instantiation. While this is a useful check, it also means that every environment that loads the app must set such values, even if Azure Storage is not created. For example, build tasks (e.g. precompiling assets) or rake tasks need to set a (possibly fake) value of secret_key or principal_id in order to avoid the error, even though they do not need to make calls to Azure Storage. This is especially a problem for applications that inject such credentials as environment variables, because currently one needs to set such variables even when not strictly needed.
One way to fix this would be to delay the check for secret_key and principal_id to the first actual API call. This is the approach followed in #7
P.S.: thanks for this library, it's great to see a high quality open-souce effort to replace the deprecated Azure library, and that the implementation is trying to avoid pitfalls of the previous solution (e.g. dependencies on HTTP libraries)