feat(azure_blob): Add proxy support #24256
Open
+969
−376
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds per-sink proxy support to the
azure_blobsink, matching the behavior already available for AWS S3 and GCP sinks.Highlights:
SinkContext(ProxyConfig), not environment variables.azure_core::http::ClientOptionsand a dedicated, aliasedreqwest0.12 client (reqwest_0_12_24), so it does not impact the project-widereqwestusage.reqwest::Proxy).no_proxypatterns at the sink level to bypass the proxy for matching Azure endpoints.Vector configuration
Example of per-sink proxy settings for Azure Blob:
Notes:
reqwest.no_proxyor the proxy is disabled, the sink makes direct connections and disables any system proxy auto-detection for this client.How did you test this PR?
reqwest0.12 transport and that proxies are applied only for this sink.no_proxyhandling by targeting a host in the exclusion list to ensure direct connections are used.azure_blobsink at it with:no_proxyentry matching the Azurite host to confirm bypass.Change Type
Is this a breaking change?
Does this PR include user facing changes?
reqwest+azure_core::http::ClientOptions(HTTP/HTTPS proxies, honorsno_proxy, supports proxy credentials).no-changeloglabel to this PR.References
Notes
reqwest0.12 client (reqwest_0_12_24) to avoid affecting other components that depend on a differentreqwestversion.ProxyConfig.Cargo.lock), I’ll runmake build-licensesto refresh the license inventory.AccountName:ERROR vector::topology::builder: Configuration error. error=Sink "testing-azure_blob": Account name missing in connection string