Currently we only support adding an endpoint suffix for azure repositories. This is not enough when a custom Azure DNS  zone is used since the URI that's created using an endpoint suffix is incorrect.
```java
primaryUri = new URI(protocol + "://" + accountName + "." + service + "." + endpointSuffix);
``` 

We should add the ability to provide a custom endpoint to cover this situations.
modules/repository-azure/src/main/java/org/elasticsearch/repositories/azure/AzureRepositoryPlugin.java
public static final String REPOSITORY_THREAD_POOL_NAME = "repository_azure";
    public static final String NETTY_EVENT_LOOP_THREAD_POOL_NAME = "azure_event_loop";
    static {
        
        
        JacksonAdapter.createDefaultSerializerAdapter();
    }
    
    final SetOnce<AzureStorageService> azureStoreService = new SetOnce<>();
    private final Settings settings;
    public AzureRepositoryPlugin(Settings settings) {
        
        AzureStorageSettings.load(settings);
        this.settings = settings;
    }
    @Override
    public Map<String, Repository.Factory> getRepositories(
        Environment env,
        NamedXContentRegistry namedXContentRegistry,
        ClusterService clusterService,
        BigArrays bigArrays,
        RecoverySettings recoverySettings
    ) {
        return Collections.singletonMap(AzureRepository.TYPE, metadata -> {
            AzureStorageService storageService = azureStoreService.get();
            assert storageService != null;
            return new AzureRepository(metadata, namedXContentRegistry, storageService, clusterService, bigArrays, recoverySettings);