Azure API Management API Diagnostic
This page shows how to write Terraform and Azure Resource Manager for API Management API Diagnostic and write them securely.
azurerm_api_management_api_diagnostic (Terraform)
The API Diagnostic in API Management can be configured in Terraform with the resource name azurerm_api_management_api_diagnostic. The following sections describe 6 examples of how to use the resource and its parameters.
Example Usage from GitHub
resource "azurerm_api_management_api_diagnostic" "this" {
identifier = "applicationinsights"
resource_group_name = var.resource_group_name
api_management_name = var.api_management_name
api_name = var.api_name
api_management_logger_id = var.api_management_logger_id
resource "azurerm_api_management_api_diagnostic" "hmi_apim_diag" {
resource_group_name = azurerm_resource_group.hmi_apim_rg.name
api_management_name = azurerm_api_management.hmi_apim.name
api_name = azurerm_api_management_api.hmi_apim_api.name
api_management_logger_id = azurerm_api_management_logger.hmi_apim_logger.id
identifier = "applicationinsights"
resource "azurerm_api_management_api_diagnostic" "pip_apim_diag" {
resource_group_name = azurerm_resource_group.pip_apim_rg.name
api_management_name = azurerm_api_management.pip_apim.name
api_name = azurerm_api_management_api.pip_apim_api.name
api_management_logger_id = azurerm_api_management_logger.pip_apim_logger.id
identifier = "applicationinsights"
resource "azurerm_api_management_api_diagnostic" "api" {
identifier = "applicationinsights"
resource_group_name = var.context.resource_group_name
api_management_name = var.service_settings.endpoint_name
api_name = azurerm_api_management_api.api.name
resource "azurerm_api_management_api_diagnostic" "api_diagnostic" {
resource_group_name = var.resource_group_name
api_management_name = var.api_management_name
api_name = azurerm_api_management_api.api.name
api_management_logger_id = azurerm_api_management_logger.apim_logger.id
identifier = "applicationinsights"
resource "azurerm_api_management_api_diagnostic" "diagnostic" {
for_each = toset(var.api_names)
identifier = "applicationinsights"
resource_group_name = var.resource_group_name
api_management_name = var.api_management_name
api_name = each.key
Parameters
-
always_log_errorsoptional computed - bool -
api_management_logger_idrequired - string -
api_management_namerequired - string -
api_namerequired - string -
http_correlation_protocoloptional computed - string -
idoptional computed - string -
identifierrequired - string -
log_client_ipoptional computed - bool -
resource_group_namerequired - string -
sampling_percentageoptional computed - number -
verbosityoptional computed - string -
backend_requestlist block-
body_bytesoptional - number -
headers_to_logoptional - set of string
-
-
backend_responselist block-
body_bytesoptional - number -
headers_to_logoptional - set of string
-
-
frontend_requestlist block-
body_bytesoptional - number -
headers_to_logoptional - set of string
-
-
frontend_responselist block-
body_bytesoptional - number -
headers_to_logoptional - set of string
-
-
timeoutssingle block
Explanation in Terraform Registry
Manages a API Management Service API Diagnostics Logs.
Microsoft.ApiManagement/service/apis/diagnostics (Azure Resource Manager)
The service/apis/diagnostics in Microsoft.ApiManagement can be configured in Azure Resource Manager with the resource name Microsoft.ApiManagement/service/apis/diagnostics. The following sections describe how to use the resource and its parameters.
Example Usage from GitHub
An example could not be found in GitHub.
Parameters
apiVersionrequired - stringnamerequired - stringDiagnostic identifier. Must be unique in the current API Management service instance.
propertiesrequiredalwaysLogoptional - stringSpecifies for what type of messages sampling settings should not apply.
backendoptionalrequestoptionalbodyoptionalbytesoptional - integerNumber of request body bytes to log.
dataMaskingoptionalheadersoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
queryParamsoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
headersoptional - arrayArray of HTTP Headers to log.
responseoptionalbodyoptionalbytesoptional - integerNumber of request body bytes to log.
dataMaskingoptionalheadersoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
queryParamsoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
headersoptional - arrayArray of HTTP Headers to log.
frontendoptionalrequestoptionalbodyoptionalbytesoptional - integerNumber of request body bytes to log.
dataMaskingoptionalheadersoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
queryParamsoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
headersoptional - arrayArray of HTTP Headers to log.
responseoptionalbodyoptionalbytesoptional - integerNumber of request body bytes to log.
dataMaskingoptionalheadersoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
queryParamsoptional arraymodeoptional - stringData masking mode.
valueoptional - stringThe name of an entity to mask (e.g. a name of a header or a query parameter).
headersoptional - arrayArray of HTTP Headers to log.
httpCorrelationProtocoloptional - stringSets correlation protocol to use for Application Insights diagnostics.
logClientIpoptional - booleanLog the ClientIP. Default is false.
loggerIdrequired - stringResource Id of a target logger.
operationNameFormatoptional - stringThe format of the Operation Name for Application Insights telemetries. Default is Name.
samplingoptionalpercentageoptional - numberRate of sampling for fixed-rate sampling.
samplingTypeoptional - stringSampling type.
verbosityoptional - stringThe verbosity level applied to traces emitted by trace policies.
typerequired - string
Frequently asked questions
What is Azure API Management API Diagnostic?
Azure API Management API Diagnostic is a resource for API Management of Microsoft Azure. Settings can be wrote in Terraform.
Where can I find the example code for the Azure API Management API Diagnostic?
For Terraform, the madsstorm/terraform-commercetools-azure-sample, hmcts/hmi-api-gateway-fh and hmcts/pip-api-gateway source code examples are useful. See the Terraform Example section for further details.