App Resiliency
Configuration to setup App Resiliency Azure REST API version: 2023-08-01-preview.
Example Usage
Create or Update App Resiliency
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var appResiliency = new AzureNative.App.AppResiliency("appResiliency", new()
{
AppName = "testcontainerApp0",
CircuitBreakerPolicy = new AzureNative.App.Inputs.CircuitBreakerPolicyArgs
{
ConsecutiveErrors = 5,
IntervalInSeconds = 10,
MaxEjectionPercent = 50,
},
HttpConnectionPool = new AzureNative.App.Inputs.HttpConnectionPoolArgs
{
Http1MaxPendingRequests = 1024,
Http2MaxRequests = 1024,
},
HttpRetryPolicy = new AzureNative.App.Inputs.HttpRetryPolicyArgs
{
Errors = new[]
{
"5xx",
"connect-failure",
"reset",
"retriable-headers",
"retriable-status-codes",
},
Headers = new[]
{
new AzureNative.App.Inputs.HeaderMatchArgs
{
Header = "X-Content-Type",
PrefixMatch = "GOATS",
},
},
HttpStatusCodes = new[]
{
502,
503,
},
InitialDelayInMilliseconds = 1000,
MaxIntervalInMilliseconds = 10000,
MaxRetries = 5,
},
Name = "resiliency-policy-1",
ResourceGroupName = "rg",
TcpConnectionPool = new AzureNative.App.Inputs.TcpConnectionPoolArgs
{
MaxConnections = 100,
},
TcpRetryPolicy = new AzureNative.App.Inputs.TcpRetryPolicyArgs
{
MaxConnectAttempts = 3,
},
TimeoutPolicy = new AzureNative.App.Inputs.TimeoutPolicyArgs
{
ConnectionTimeoutInSeconds = 5,
ResponseTimeoutInSeconds = 15,
},
});
});Content copied to clipboard
package main
import (
"github.com/pulumi/pulumi-azure-native-sdk/app/v2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := app.NewAppResiliency(ctx, "appResiliency", &app.AppResiliencyArgs{
AppName: pulumi.String("testcontainerApp0"),
CircuitBreakerPolicy: &app.CircuitBreakerPolicyArgs{
ConsecutiveErrors: pulumi.Int(5),
IntervalInSeconds: pulumi.Int(10),
MaxEjectionPercent: pulumi.Int(50),
},
HttpConnectionPool: &app.HttpConnectionPoolArgs{
Http1MaxPendingRequests: pulumi.Int(1024),
Http2MaxRequests: pulumi.Int(1024),
},
HttpRetryPolicy: app.HttpRetryPolicyResponse{
Errors: pulumi.StringArray{
pulumi.String("5xx"),
pulumi.String("connect-failure"),
pulumi.String("reset"),
pulumi.String("retriable-headers"),
pulumi.String("retriable-status-codes"),
},
Headers: app.HeaderMatchArray{
&app.HeaderMatchArgs{
Header: pulumi.String("X-Content-Type"),
PrefixMatch: pulumi.String("GOATS"),
},
},
HttpStatusCodes: pulumi.IntArray{
pulumi.Int(502),
pulumi.Int(503),
},
InitialDelayInMilliseconds: pulumi.Float64(1000),
MaxIntervalInMilliseconds: pulumi.Float64(10000),
MaxRetries: pulumi.Int(5),
},
Name: pulumi.String("resiliency-policy-1"),
ResourceGroupName: pulumi.String("rg"),
TcpConnectionPool: &app.TcpConnectionPoolArgs{
MaxConnections: pulumi.Int(100),
},
TcpRetryPolicy: &app.TcpRetryPolicyArgs{
MaxConnectAttempts: pulumi.Int(3),
},
TimeoutPolicy: &app.TimeoutPolicyArgs{
ConnectionTimeoutInSeconds: pulumi.Int(5),
ResponseTimeoutInSeconds: pulumi.Int(15),
},
})
if err != nil {
return err
}
return nil
})
}Content copied to clipboard
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.app.AppResiliency;
import com.pulumi.azurenative.app.AppResiliencyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var appResiliency = new AppResiliency("appResiliency", AppResiliencyArgs.builder()
.appName("testcontainerApp0")
.circuitBreakerPolicy(Map.ofEntries(
Map.entry("consecutiveErrors", 5),
Map.entry("intervalInSeconds", 10),
Map.entry("maxEjectionPercent", 50)
))
.httpConnectionPool(Map.ofEntries(
Map.entry("http1MaxPendingRequests", 1024),
Map.entry("http2MaxRequests", 1024)
))
.httpRetryPolicy(Map.ofEntries(
Map.entry("errors",
"5xx",
"connect-failure",
"reset",
"retriable-headers",
"retriable-status-codes"),
Map.entry("headers", Map.ofEntries(
Map.entry("header", "X-Content-Type"),
Map.entry("prefixMatch", "GOATS")
)),
Map.entry("httpStatusCodes",
502,
503),
Map.entry("initialDelayInMilliseconds", 1000),
Map.entry("maxIntervalInMilliseconds", 10000),
Map.entry("maxRetries", 5)
))
.name("resiliency-policy-1")
.resourceGroupName("rg")
.tcpConnectionPool(Map.of("maxConnections", 100))
.tcpRetryPolicy(Map.of("maxConnectAttempts", 3))
.timeoutPolicy(Map.ofEntries(
Map.entry("connectionTimeoutInSeconds", 5),
Map.entry("responseTimeoutInSeconds", 15)
))
.build());
}
}Content copied to clipboard
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:app:AppResiliency resiliency-policy-1 /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{appName}/resiliencyPolicies/{name}Content copied to clipboard