Table: azure_frontdoor - Query Azure Front Door Services using SQL
Azure Front Door Service is a scalable and secure entry point that uses the global network infrastructure of Azure. It enables you to define, manage, and monitor the global routing for your web traffic by optimizing for best performance and instant global failover for high availability. With Azure Front Door Service, you can transform your global (multi-region) consumer and enterprise applications into robust, high-performance personalized modern applications.
Table Usage Guide
The azure_frontdoor
table provides insights into Azure Front Door Services within Azure. As a network engineer or a system administrator, explore details about your front door services such as resource group, subscription ID, and health probe settings through this table. Utilize it to uncover information about your front door services, such as the load balancing settings, routing rules, and backend pools, enabling you to optimize your web traffic routing and acceleration.
Examples
Basic info
Explore which Azure Front Door resources are currently being provisioned, providing insights into the state of your network infrastructure and helping to identify any potential issues or bottlenecks.
select name, id, type, provisioning_state, cnamefrom azure_frontdoor;
select name, id, type, provisioning_state, cnamefrom azure_frontdoor;
List backend pools settings details
Determine the enforcement of certificate name checks and the send/receive timeout settings within your Azure Front Door service. This can help ensure secure connections and manage response times for your web applications.
select name, id, backend_pools_settings -> 'enforceCertificateNameCheck' as settings_enforce_certificate_name_check, backend_pools_settings -> 'sendRecvTimeoutSeconds' as settings_send_recv_timeout_secondsfrom azure_frontdoor;
select name, id, json_extract( backend_pools_settings, '$.enforceCertificateNameCheck' ) as settings_enforce_certificate_name_check, json_extract( backend_pools_settings, '$.sendRecvTimeoutSeconds' ) as settings_send_recv_timeout_secondsfrom azure_frontdoor;
List routing rules details
This query is useful for gaining insights into the specifics of routing rules within the Azure Front Door service. It allows users to analyze factors such as enabled states, resource states, accepted protocols, and route configurations, aiding in the optimization of network traffic routing.
select name, id, rule ->> 'id' as rule_id, rule ->> 'name' as rule_name, rule -> 'properties' ->> 'enabledState' as rule_property_enabled_state, rule -> 'properties' ->> 'resourceState' as rule_property_resource_state, jsonb_pretty(rule -> 'properties' -> 'acceptedProtocols') as rule_property_accepted_protocols, jsonb_pretty(rule -> 'properties' -> 'frontendEndpoints') as rule_property_frontend_endpoints, jsonb_pretty(rule -> 'properties' -> 'patternsToMatch') as rule_property_patterns_to_match, jsonb_pretty(rule -> 'properties' -> 'routeConfiguration') as rule_property_route_configurationfrom azure_frontdoor, jsonb_array_elements(routing_rules) as rule;
select name, id, json_extract(rule.value, '$.id') as rule_id, json_extract(rule.value, '$.name') as rule_name, json_extract(rule.value, '$.properties.enabledState') as rule_property_enabled_state, json_extract(rule.value, '$.properties.resourceState') as rule_property_resource_state, rule.value || json_extract(rule.value, '$.properties.acceptedProtocols') as rule_property_accepted_protocols, rule.value || json_extract(rule.value, '$.properties.frontendEndpoints') as rule_property_frontend_endpoints, rule.value || json_extract(rule.value, '$.properties.patternsToMatch') as rule_property_patterns_to_match, rule.value || json_extract(rule.value, '$.properties.routeConfiguration') as rule_property_route_configurationfrom azure_frontdoor, json_each(routing_rules) as rule;
List load balancing settings details
Analyze the settings to understand the details of load balancing configurations in Azure Front Door. This is useful for assessing performance tuning and troubleshooting issues related to load distribution.
select name, id, setting ->> 'id' as setting_id, setting ->> 'name' as setting_name, setting -> 'properties' -> 'additionalLatencyMilliseconds' as setting_property_additional_latency_milliseconds, setting -> 'properties' -> 'successfulSamplesRequired' as setting_property_successful_samples_required, setting -> 'properties' -> 'sampleSize' as setting_property_sample_size, setting -> 'properties' ->> 'resourceState' as setting_property_resource_statefrom azure_frontdoor, jsonb_array_elements(load_balancing_settings) as setting;
select name, f.id, json_extract(setting.value, '$.id') as setting_id, json_extract(setting.value, '$.name') as setting_name, json_extract( setting.value, '$.properties.additionalLatencyMilliseconds' ) as setting_property_additional_latency_milliseconds, json_extract( setting.value, '$.properties.successfulSamplesRequired' ) as setting_property_successful_samples_required, json_extract(setting.value, '$.properties.sampleSize') as setting_property_sample_size, json_extract(setting.value, '$.properties.resourceState') as setting_property_resource_statefrom azure_frontdoor as f, json_each(load_balancing_settings) as setting;
List frontend endpoints details
Explore the specifics of your frontend endpoints to understand their configuration and properties. This can be useful for assessing the status, security settings, and session affinity details of your web application's frontend endpoints.
select name, id, endpoint ->> 'id' as endpoint_id, endpoint ->> 'name' as endpoint_name, endpoint -> 'properties' ->> 'hostName' as endpoint_property_host_name, endpoint -> 'properties' ->> 'sessionAffinityEnabledState' as endpoint_property_session_affinity_enabled_state, endpoint -> 'properties' -> 'sessionAffinityTtlSeconds' as endpoint_property_session_affinity_ttl_seconds, endpoint -> 'properties' ->> 'resourceState' as endpoint_property_resource_state, jsonb_pretty( endpoint -> 'properties' -> 'webApplicationFirewallPolicyLink' ) as endpoint_property_web_application_firewall_policy_linkfrom azure_frontdoor, jsonb_array_elements(frontend_endpoints) as endpoint;
select name, f.id, json_extract(endpoint.value, '$.id') as endpoint_id, json_extract(endpoint.value, '$.name') as endpoint_name, json_extract(endpoint.value, '$.properties.hostName') as endpoint_property_host_name, json_extract( endpoint.value, '$.properties.sessionAffinityEnabledState' ) as endpoint_property_session_affinity_enabled_state, json_extract( endpoint.value, '$.properties.sessionAffinityTtlSeconds' ) as endpoint_property_session_affinity_ttl_seconds, json_extract(endpoint.value, '$.properties.resourceState') as endpoint_property_resource_state, endpoint.value as endpoint_property_web_application_firewall_policy_linkfrom azure_frontdoor as f, json_each(frontend_endpoints) as endpoint;
List health probe settings details
Discover the specifics of health probe settings in your Azure Front Door service. This can help identify potential issues and optimize your network's performance by understanding the intervals, methods, and states of your health probes.
select name, id, setting ->> 'id' as setting_id, setting ->> 'name' as setting_name, setting -> 'properties' -> 'intervalInSeconds' as setting_property_interval_in_seconds, setting -> 'properties' ->> 'healthProbeMethod' as setting_property_health_probe_method, setting -> 'properties' ->> 'enabledState' as setting_property_enabled_state, setting -> 'properties' ->> 'path' as setting_property_path, setting -> 'properties' ->> 'protocol' as setting_property_protocol, setting -> 'properties' ->> 'resourceState' as setting_property_resource_statefrom azure_frontdoor, jsonb_array_elements(health_probe_settings) as setting;
select name, f.id, json_extract(setting.value, '$.id') as setting_id, json_extract(setting.value, '$.name') as setting_name, json_extract(setting.value, '$.properties.intervalInSeconds') as setting_property_interval_in_seconds, json_extract(setting.value, '$.properties.healthProbeMethod') as setting_property_health_probe_method, json_extract(setting.value, '$.properties.enabledState') as setting_property_enabled_state, json_extract(setting.value, '$.properties.path') as setting_property_path, json_extract(setting.value, '$.properties.protocol') as setting_property_protocol, json_extract(setting.value, '$.properties.resourceState') as setting_property_resource_statefrom azure_frontdoor as f, json_each(health_probe_settings) as setting;
Schema for azure_frontdoor
Name | Type | Operators | Description |
---|---|---|---|
_ctx | jsonb | Steampipe context in JSON form. | |
akas | jsonb | Array of globally unique identifier strings (also known as) for the resource. | |
backend_pools | jsonb | Backend pools available to routing rules. | |
backend_pools_settings | jsonb | Settings for all backend pools | |
cloud_environment | text | The Azure Cloud Environment. | |
cname | text | The host that each frontendEndpoint must CNAME to. | |
diagnostic_settings | jsonb | A list of active diagnostic settings for the resource. | |
enabled_state | text | Operational status of the front door load balancer. Possible values include: 'Enabled', 'Disabled'. | |
friendly_name | text | A friendly name for the front door. | |
front_door_id | text | The ID of the front door. | |
frontend_endpoints | jsonb | Frontend endpoints available to routing rules. | |
health_probe_settings | jsonb | Health probe settings associated with this Front Door instance. | |
id | text | Fully qualified resource ID for the resource. | |
load_balancing_settings | jsonb | Load balancing settings associated with this front door instance. | |
name | text | = | The name of the resource. |
provisioning_state | text | Provisioning state of the front door. | |
region | text | The Azure region/location in which the resource is located. | |
resource_group | text | = | The resource group which holds this resource. |
resource_state | text | Resource status of the front door. Possible values include: 'Creating', 'Enabling', 'Enabled', 'Disabling', 'Disabled', 'Deleting'. | |
routing_rules | jsonb | Routing rules associated with this front door. | |
rules_engines | jsonb | Rules engine configurations available to routing rules. | |
sp_connection_name | text | =, !=, ~~, ~~*, !~~, !~~* | Steampipe connection name. |
sp_ctx | jsonb | Steampipe context in JSON form. | |
subscription_id | text | =, !=, ~~, ~~*, !~~, !~~* | The Azure Subscription ID in which the resource is located. |
tags | jsonb | A map of tags for the resource. | |
title | text | Title of the resource. | |
type | text | The type of the resource. |
Export
This table is available as a standalone Exporter CLI. Steampipe exporters are stand-alone binaries that allow you to extract data using Steampipe plugins without a database.
You can download the tarball for your platform from the Releases page, but it is simplest to install them with the steampipe_export_installer.sh
script:
/bin/sh -c "$(curl -fsSL https://steampipe.io/install/export.sh)" -- azure
You can pass the configuration to the command with the --config
argument:
steampipe_export_azure --config '<your_config>' azure_frontdoor