LbEdgeExtension is a resource that lets the extension service influence the selection of backend services and Cloud CDN cache keys by modifying request headers.
To get more information about LbEdgeExtension, see:
- API documentation
- How-to Guides
Example Usage
Network Services Lb Edge Extension Basic
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const defaultBackendService = new gcp.compute.BackendService("default", {
name: "elb-backend-subnet",
portName: "http",
protocol: "HTTP",
timeoutSec: 10,
loadBalancingScheme: "EXTERNAL_MANAGED",
});
const defaultURLMap = new gcp.compute.URLMap("default", {
name: "elb-url-map",
description: "a description",
defaultService: defaultBackendService.id,
hostRules: [{
hosts: ["mysite.com"],
pathMatcher: "allpaths",
}],
pathMatchers: [{
name: "allpaths",
defaultService: defaultBackendService.id,
pathRules: [{
paths: ["/*"],
service: defaultBackendService.id,
}],
}],
});
const defaultTargetHttpProxy = new gcp.compute.TargetHttpProxy("default", {
name: "elb-target-http-proxy",
description: "a description",
urlMap: defaultURLMap.id,
});
// forwarding rule
const _default = new gcp.compute.GlobalForwardingRule("default", {
name: "elb-forwarding-rule",
target: defaultTargetHttpProxy.id,
portRange: "80",
loadBalancingScheme: "EXTERNAL_MANAGED",
networkTier: "PREMIUM",
});
const wasm_plugin = new gcp.networkservices.WasmPlugin("wasm-plugin", {
name: "elb-wasm-plugin-data",
description: "my wasm plugin",
mainVersionId: "v1",
labels: {
test_label: "test_value",
},
logConfig: {
enable: true,
sampleRate: 1,
minLogLevel: "WARN",
},
versions: [{
versionName: "v1",
description: "v1 version of my wasm plugin",
imageUri: "projects/my-project-name/locations/us-central1/repositories/repository-standard/genericArtifacts/my-wasm-plugin:v1",
labels: {
test_label: "test_value",
},
}],
});
const defaultLbEdgeExtension = new gcp.networkservices.LbEdgeExtension("default", {
name: "elb-edge-ext",
description: "my edge extension",
location: "global",
loadBalancingScheme: "EXTERNAL_MANAGED",
forwardingRules: [_default.selfLink],
extensionChains: [{
name: "chain1",
matchCondition: {
celExpression: "request.host == 'example.com'",
},
extensions: [{
name: "ext11",
service: wasm_plugin.id,
failOpen: false,
supportedEvents: ["REQUEST_HEADERS"],
forwardHeaders: ["custom-header"],
}],
}],
labels: {
foo: "bar",
},
});
import pulumi
import pulumi_gcp as gcp
default_backend_service = gcp.compute.BackendService("default",
name="elb-backend-subnet",
port_name="http",
protocol="HTTP",
timeout_sec=10,
load_balancing_scheme="EXTERNAL_MANAGED")
default_url_map = gcp.compute.URLMap("default",
name="elb-url-map",
description="a description",
default_service=default_backend_service.id,
host_rules=[{
"hosts": ["mysite.com"],
"path_matcher": "allpaths",
}],
path_matchers=[{
"name": "allpaths",
"default_service": default_backend_service.id,
"path_rules": [{
"paths": ["/*"],
"service": default_backend_service.id,
}],
}])
default_target_http_proxy = gcp.compute.TargetHttpProxy("default",
name="elb-target-http-proxy",
description="a description",
url_map=default_url_map.id)
# forwarding rule
default = gcp.compute.GlobalForwardingRule("default",
name="elb-forwarding-rule",
target=default_target_http_proxy.id,
port_range="80",
load_balancing_scheme="EXTERNAL_MANAGED",
network_tier="PREMIUM")
wasm_plugin = gcp.networkservices.WasmPlugin("wasm-plugin",
name="elb-wasm-plugin-data",
description="my wasm plugin",
main_version_id="v1",
labels={
"test_label": "test_value",
},
log_config={
"enable": True,
"sample_rate": 1,
"min_log_level": "WARN",
},
versions=[{
"version_name": "v1",
"description": "v1 version of my wasm plugin",
"image_uri": "projects/my-project-name/locations/us-central1/repositories/repository-standard/genericArtifacts/my-wasm-plugin:v1",
"labels": {
"test_label": "test_value",
},
}])
default_lb_edge_extension = gcp.networkservices.LbEdgeExtension("default",
name="elb-edge-ext",
description="my edge extension",
location="global",
load_balancing_scheme="EXTERNAL_MANAGED",
forwarding_rules=[default.self_link],
extension_chains=[{
"name": "chain1",
"match_condition": {
"cel_expression": "request.host == 'example.com'",
},
"extensions": [{
"name": "ext11",
"service": wasm_plugin.id,
"fail_open": False,
"supported_events": ["REQUEST_HEADERS"],
"forward_headers": ["custom-header"],
}],
}],
labels={
"foo": "bar",
})
package main
import (
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/compute"
"github.com/pulumi/pulumi-gcp/sdk/v9/go/gcp/networkservices"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
defaultBackendService, err := compute.NewBackendService(ctx, "default", &compute.BackendServiceArgs{
Name: pulumi.String("elb-backend-subnet"),
PortName: pulumi.String("http"),
Protocol: pulumi.String("HTTP"),
TimeoutSec: pulumi.Int(10),
LoadBalancingScheme: pulumi.String("EXTERNAL_MANAGED"),
})
if err != nil {
return err
}
defaultURLMap, err := compute.NewURLMap(ctx, "default", &compute.URLMapArgs{
Name: pulumi.String("elb-url-map"),
Description: pulumi.String("a description"),
DefaultService: defaultBackendService.ID(),
HostRules: compute.URLMapHostRuleArray{
&compute.URLMapHostRuleArgs{
Hosts: pulumi.StringArray{
pulumi.String("mysite.com"),
},
PathMatcher: pulumi.String("allpaths"),
},
},
PathMatchers: compute.URLMapPathMatcherArray{
&compute.URLMapPathMatcherArgs{
Name: pulumi.String("allpaths"),
DefaultService: defaultBackendService.ID(),
PathRules: compute.URLMapPathMatcherPathRuleArray{
&compute.URLMapPathMatcherPathRuleArgs{
Paths: pulumi.StringArray{
pulumi.String("/*"),
},
Service: defaultBackendService.ID(),
},
},
},
},
})
if err != nil {
return err
}
defaultTargetHttpProxy, err := compute.NewTargetHttpProxy(ctx, "default", &compute.TargetHttpProxyArgs{
Name: pulumi.String("elb-target-http-proxy"),
Description: pulumi.String("a description"),
UrlMap: defaultURLMap.ID(),
})
if err != nil {
return err
}
// forwarding rule
_default, err := compute.NewGlobalForwardingRule(ctx, "default", &compute.GlobalForwardingRuleArgs{
Name: pulumi.String("elb-forwarding-rule"),
Target: defaultTargetHttpProxy.ID(),
PortRange: pulumi.String("80"),
LoadBalancingScheme: pulumi.String("EXTERNAL_MANAGED"),
NetworkTier: pulumi.String("PREMIUM"),
})
if err != nil {
return err
}
wasm_plugin, err := networkservices.NewWasmPlugin(ctx, "wasm-plugin", &networkservices.WasmPluginArgs{
Name: pulumi.String("elb-wasm-plugin-data"),
Description: pulumi.String("my wasm plugin"),
MainVersionId: pulumi.String("v1"),
Labels: pulumi.StringMap{
"test_label": pulumi.String("test_value"),
},
LogConfig: &networkservices.WasmPluginLogConfigArgs{
Enable: pulumi.Bool(true),
SampleRate: pulumi.Float64(1),
MinLogLevel: pulumi.String("WARN"),
},
Versions: networkservices.WasmPluginVersionArray{
&networkservices.WasmPluginVersionArgs{
VersionName: pulumi.String("v1"),
Description: pulumi.String("v1 version of my wasm plugin"),
ImageUri: pulumi.String("projects/my-project-name/locations/us-central1/repositories/repository-standard/genericArtifacts/my-wasm-plugin:v1"),
Labels: pulumi.StringMap{
"test_label": pulumi.String("test_value"),
},
},
},
})
if err != nil {
return err
}
_, err = networkservices.NewLbEdgeExtension(ctx, "default", &networkservices.LbEdgeExtensionArgs{
Name: pulumi.String("elb-edge-ext"),
Description: pulumi.String("my edge extension"),
Location: pulumi.String("global"),
LoadBalancingScheme: pulumi.String("EXTERNAL_MANAGED"),
ForwardingRules: pulumi.StringArray{
_default.SelfLink,
},
ExtensionChains: networkservices.LbEdgeExtensionExtensionChainArray{
&networkservices.LbEdgeExtensionExtensionChainArgs{
Name: pulumi.String("chain1"),
MatchCondition: &networkservices.LbEdgeExtensionExtensionChainMatchConditionArgs{
CelExpression: pulumi.String("request.host == 'example.com'"),
},
Extensions: networkservices.LbEdgeExtensionExtensionChainExtensionArray{
&networkservices.LbEdgeExtensionExtensionChainExtensionArgs{
Name: pulumi.String("ext11"),
Service: wasm_plugin.ID(),
FailOpen: pulumi.Bool(false),
SupportedEvents: pulumi.StringArray{
pulumi.String("REQUEST_HEADERS"),
},
ForwardHeaders: pulumi.StringArray{
pulumi.String("custom-header"),
},
},
},
},
},
Labels: pulumi.StringMap{
"foo": pulumi.String("bar"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var defaultBackendService = new Gcp.Compute.BackendService("default", new()
{
Name = "elb-backend-subnet",
PortName = "http",
Protocol = "HTTP",
TimeoutSec = 10,
LoadBalancingScheme = "EXTERNAL_MANAGED",
});
var defaultURLMap = new Gcp.Compute.URLMap("default", new()
{
Name = "elb-url-map",
Description = "a description",
DefaultService = defaultBackendService.Id,
HostRules = new[]
{
new Gcp.Compute.Inputs.URLMapHostRuleArgs
{
Hosts = new[]
{
"mysite.com",
},
PathMatcher = "allpaths",
},
},
PathMatchers = new[]
{
new Gcp.Compute.Inputs.URLMapPathMatcherArgs
{
Name = "allpaths",
DefaultService = defaultBackendService.Id,
PathRules = new[]
{
new Gcp.Compute.Inputs.URLMapPathMatcherPathRuleArgs
{
Paths = new[]
{
"/*",
},
Service = defaultBackendService.Id,
},
},
},
},
});
var defaultTargetHttpProxy = new Gcp.Compute.TargetHttpProxy("default", new()
{
Name = "elb-target-http-proxy",
Description = "a description",
UrlMap = defaultURLMap.Id,
});
// forwarding rule
var @default = new Gcp.Compute.GlobalForwardingRule("default", new()
{
Name = "elb-forwarding-rule",
Target = defaultTargetHttpProxy.Id,
PortRange = "80",
LoadBalancingScheme = "EXTERNAL_MANAGED",
NetworkTier = "PREMIUM",
});
var wasm_plugin = new Gcp.NetworkServices.WasmPlugin("wasm-plugin", new()
{
Name = "elb-wasm-plugin-data",
Description = "my wasm plugin",
MainVersionId = "v1",
Labels =
{
{ "test_label", "test_value" },
},
LogConfig = new Gcp.NetworkServices.Inputs.WasmPluginLogConfigArgs
{
Enable = true,
SampleRate = 1,
MinLogLevel = "WARN",
},
Versions = new[]
{
new Gcp.NetworkServices.Inputs.WasmPluginVersionArgs
{
VersionName = "v1",
Description = "v1 version of my wasm plugin",
ImageUri = "projects/my-project-name/locations/us-central1/repositories/repository-standard/genericArtifacts/my-wasm-plugin:v1",
Labels =
{
{ "test_label", "test_value" },
},
},
},
});
var defaultLbEdgeExtension = new Gcp.NetworkServices.LbEdgeExtension("default", new()
{
Name = "elb-edge-ext",
Description = "my edge extension",
Location = "global",
LoadBalancingScheme = "EXTERNAL_MANAGED",
ForwardingRules = new[]
{
@default.SelfLink,
},
ExtensionChains = new[]
{
new Gcp.NetworkServices.Inputs.LbEdgeExtensionExtensionChainArgs
{
Name = "chain1",
MatchCondition = new Gcp.NetworkServices.Inputs.LbEdgeExtensionExtensionChainMatchConditionArgs
{
CelExpression = "request.host == 'example.com'",
},
Extensions = new[]
{
new Gcp.NetworkServices.Inputs.LbEdgeExtensionExtensionChainExtensionArgs
{
Name = "ext11",
Service = wasm_plugin.Id,
FailOpen = false,
SupportedEvents = new[]
{
"REQUEST_HEADERS",
},
ForwardHeaders = new[]
{
"custom-header",
},
},
},
},
},
Labels =
{
{ "foo", "bar" },
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.compute.BackendService;
import com.pulumi.gcp.compute.BackendServiceArgs;
import com.pulumi.gcp.compute.URLMap;
import com.pulumi.gcp.compute.URLMapArgs;
import com.pulumi.gcp.compute.inputs.URLMapHostRuleArgs;
import com.pulumi.gcp.compute.inputs.URLMapPathMatcherArgs;
import com.pulumi.gcp.compute.TargetHttpProxy;
import com.pulumi.gcp.compute.TargetHttpProxyArgs;
import com.pulumi.gcp.compute.GlobalForwardingRule;
import com.pulumi.gcp.compute.GlobalForwardingRuleArgs;
import com.pulumi.gcp.networkservices.WasmPlugin;
import com.pulumi.gcp.networkservices.WasmPluginArgs;
import com.pulumi.gcp.networkservices.inputs.WasmPluginLogConfigArgs;
import com.pulumi.gcp.networkservices.inputs.WasmPluginVersionArgs;
import com.pulumi.gcp.networkservices.LbEdgeExtension;
import com.pulumi.gcp.networkservices.LbEdgeExtensionArgs;
import com.pulumi.gcp.networkservices.inputs.LbEdgeExtensionExtensionChainArgs;
import com.pulumi.gcp.networkservices.inputs.LbEdgeExtensionExtensionChainMatchConditionArgs;
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 defaultBackendService = new BackendService("defaultBackendService", BackendServiceArgs.builder()
.name("elb-backend-subnet")
.portName("http")
.protocol("HTTP")
.timeoutSec(10)
.loadBalancingScheme("EXTERNAL_MANAGED")
.build());
var defaultURLMap = new URLMap("defaultURLMap", URLMapArgs.builder()
.name("elb-url-map")
.description("a description")
.defaultService(defaultBackendService.id())
.hostRules(URLMapHostRuleArgs.builder()
.hosts("mysite.com")
.pathMatcher("allpaths")
.build())
.pathMatchers(URLMapPathMatcherArgs.builder()
.name("allpaths")
.defaultService(defaultBackendService.id())
.pathRules(URLMapPathMatcherPathRuleArgs.builder()
.paths("/*")
.service(defaultBackendService.id())
.build())
.build())
.build());
var defaultTargetHttpProxy = new TargetHttpProxy("defaultTargetHttpProxy", TargetHttpProxyArgs.builder()
.name("elb-target-http-proxy")
.description("a description")
.urlMap(defaultURLMap.id())
.build());
// forwarding rule
var default_ = new GlobalForwardingRule("default", GlobalForwardingRuleArgs.builder()
.name("elb-forwarding-rule")
.target(defaultTargetHttpProxy.id())
.portRange("80")
.loadBalancingScheme("EXTERNAL_MANAGED")
.networkTier("PREMIUM")
.build());
var wasm_plugin = new WasmPlugin("wasm-plugin", WasmPluginArgs.builder()
.name("elb-wasm-plugin-data")
.description("my wasm plugin")
.mainVersionId("v1")
.labels(Map.of("test_label", "test_value"))
.logConfig(WasmPluginLogConfigArgs.builder()
.enable(true)
.sampleRate(1.0)
.minLogLevel("WARN")
.build())
.versions(WasmPluginVersionArgs.builder()
.versionName("v1")
.description("v1 version of my wasm plugin")
.imageUri("projects/my-project-name/locations/us-central1/repositories/repository-standard/genericArtifacts/my-wasm-plugin:v1")
.labels(Map.of("test_label", "test_value"))
.build())
.build());
var defaultLbEdgeExtension = new LbEdgeExtension("defaultLbEdgeExtension", LbEdgeExtensionArgs.builder()
.name("elb-edge-ext")
.description("my edge extension")
.location("global")
.loadBalancingScheme("EXTERNAL_MANAGED")
.forwardingRules(default_.selfLink())
.extensionChains(LbEdgeExtensionExtensionChainArgs.builder()
.name("chain1")
.matchCondition(LbEdgeExtensionExtensionChainMatchConditionArgs.builder()
.celExpression("request.host == 'example.com'")
.build())
.extensions(LbEdgeExtensionExtensionChainExtensionArgs.builder()
.name("ext11")
.service(wasm_plugin.id())
.failOpen(false)
.supportedEvents("REQUEST_HEADERS")
.forwardHeaders("custom-header")
.build())
.build())
.labels(Map.of("foo", "bar"))
.build());
}
}
resources:
# forwarding rule
default:
type: gcp:compute:GlobalForwardingRule
properties:
name: elb-forwarding-rule
target: ${defaultTargetHttpProxy.id}
portRange: '80'
loadBalancingScheme: EXTERNAL_MANAGED
networkTier: PREMIUM
defaultTargetHttpProxy:
type: gcp:compute:TargetHttpProxy
name: default
properties:
name: elb-target-http-proxy
description: a description
urlMap: ${defaultURLMap.id}
defaultURLMap:
type: gcp:compute:URLMap
name: default
properties:
name: elb-url-map
description: a description
defaultService: ${defaultBackendService.id}
hostRules:
- hosts:
- mysite.com
pathMatcher: allpaths
pathMatchers:
- name: allpaths
defaultService: ${defaultBackendService.id}
pathRules:
- paths:
- /*
service: ${defaultBackendService.id}
defaultBackendService:
type: gcp:compute:BackendService
name: default
properties:
name: elb-backend-subnet
portName: http
protocol: HTTP
timeoutSec: 10
loadBalancingScheme: EXTERNAL_MANAGED
defaultLbEdgeExtension:
type: gcp:networkservices:LbEdgeExtension
name: default
properties:
name: elb-edge-ext
description: my edge extension
location: global
loadBalancingScheme: EXTERNAL_MANAGED
forwardingRules:
- ${default.selfLink}
extensionChains:
- name: chain1
matchCondition:
celExpression: request.host == 'example.com'
extensions:
- name: ext11
service: ${["wasm-plugin"].id}
failOpen: false
supportedEvents:
- REQUEST_HEADERS
forwardHeaders:
- custom-header
labels:
foo: bar
wasm-plugin:
type: gcp:networkservices:WasmPlugin
properties:
name: elb-wasm-plugin-data
description: my wasm plugin
mainVersionId: v1
labels:
test_label: test_value
logConfig:
enable: true
sampleRate: 1
minLogLevel: WARN
versions:
- versionName: v1
description: v1 version of my wasm plugin
imageUri: projects/my-project-name/locations/us-central1/repositories/repository-standard/genericArtifacts/my-wasm-plugin:v1
labels:
test_label: test_value
Create LbEdgeExtension Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new LbEdgeExtension(name: string, args: LbEdgeExtensionArgs, opts?: CustomResourceOptions);@overload
def LbEdgeExtension(resource_name: str,
args: LbEdgeExtensionArgs,
opts: Optional[ResourceOptions] = None)
@overload
def LbEdgeExtension(resource_name: str,
opts: Optional[ResourceOptions] = None,
extension_chains: Optional[Sequence[LbEdgeExtensionExtensionChainArgs]] = None,
forwarding_rules: Optional[Sequence[str]] = None,
load_balancing_scheme: Optional[str] = None,
location: Optional[str] = None,
description: Optional[str] = None,
labels: Optional[Mapping[str, str]] = None,
name: Optional[str] = None,
project: Optional[str] = None)func NewLbEdgeExtension(ctx *Context, name string, args LbEdgeExtensionArgs, opts ...ResourceOption) (*LbEdgeExtension, error)public LbEdgeExtension(string name, LbEdgeExtensionArgs args, CustomResourceOptions? opts = null)
public LbEdgeExtension(String name, LbEdgeExtensionArgs args)
public LbEdgeExtension(String name, LbEdgeExtensionArgs args, CustomResourceOptions options)
type: gcp:networkservices:LbEdgeExtension
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args LbEdgeExtensionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args LbEdgeExtensionArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args LbEdgeExtensionArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args LbEdgeExtensionArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args LbEdgeExtensionArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var lbEdgeExtensionResource = new Gcp.NetworkServices.LbEdgeExtension("lbEdgeExtensionResource", new()
{
ExtensionChains = new[]
{
new Gcp.NetworkServices.Inputs.LbEdgeExtensionExtensionChainArgs
{
Extensions = new[]
{
new Gcp.NetworkServices.Inputs.LbEdgeExtensionExtensionChainExtensionArgs
{
Name = "string",
Service = "string",
FailOpen = false,
ForwardHeaders = new[]
{
"string",
},
SupportedEvents = new[]
{
"string",
},
},
},
MatchCondition = new Gcp.NetworkServices.Inputs.LbEdgeExtensionExtensionChainMatchConditionArgs
{
CelExpression = "string",
},
Name = "string",
},
},
ForwardingRules = new[]
{
"string",
},
LoadBalancingScheme = "string",
Location = "string",
Description = "string",
Labels =
{
{ "string", "string" },
},
Name = "string",
Project = "string",
});
example, err := networkservices.NewLbEdgeExtension(ctx, "lbEdgeExtensionResource", &networkservices.LbEdgeExtensionArgs{
ExtensionChains: networkservices.LbEdgeExtensionExtensionChainArray{
&networkservices.LbEdgeExtensionExtensionChainArgs{
Extensions: networkservices.LbEdgeExtensionExtensionChainExtensionArray{
&networkservices.LbEdgeExtensionExtensionChainExtensionArgs{
Name: pulumi.String("string"),
Service: pulumi.String("string"),
FailOpen: pulumi.Bool(false),
ForwardHeaders: pulumi.StringArray{
pulumi.String("string"),
},
SupportedEvents: pulumi.StringArray{
pulumi.String("string"),
},
},
},
MatchCondition: &networkservices.LbEdgeExtensionExtensionChainMatchConditionArgs{
CelExpression: pulumi.String("string"),
},
Name: pulumi.String("string"),
},
},
ForwardingRules: pulumi.StringArray{
pulumi.String("string"),
},
LoadBalancingScheme: pulumi.String("string"),
Location: pulumi.String("string"),
Description: pulumi.String("string"),
Labels: pulumi.StringMap{
"string": pulumi.String("string"),
},
Name: pulumi.String("string"),
Project: pulumi.String("string"),
})
var lbEdgeExtensionResource = new LbEdgeExtension("lbEdgeExtensionResource", LbEdgeExtensionArgs.builder()
.extensionChains(LbEdgeExtensionExtensionChainArgs.builder()
.extensions(LbEdgeExtensionExtensionChainExtensionArgs.builder()
.name("string")
.service("string")
.failOpen(false)
.forwardHeaders("string")
.supportedEvents("string")
.build())
.matchCondition(LbEdgeExtensionExtensionChainMatchConditionArgs.builder()
.celExpression("string")
.build())
.name("string")
.build())
.forwardingRules("string")
.loadBalancingScheme("string")
.location("string")
.description("string")
.labels(Map.of("string", "string"))
.name("string")
.project("string")
.build());
lb_edge_extension_resource = gcp.networkservices.LbEdgeExtension("lbEdgeExtensionResource",
extension_chains=[{
"extensions": [{
"name": "string",
"service": "string",
"fail_open": False,
"forward_headers": ["string"],
"supported_events": ["string"],
}],
"match_condition": {
"cel_expression": "string",
},
"name": "string",
}],
forwarding_rules=["string"],
load_balancing_scheme="string",
location="string",
description="string",
labels={
"string": "string",
},
name="string",
project="string")
const lbEdgeExtensionResource = new gcp.networkservices.LbEdgeExtension("lbEdgeExtensionResource", {
extensionChains: [{
extensions: [{
name: "string",
service: "string",
failOpen: false,
forwardHeaders: ["string"],
supportedEvents: ["string"],
}],
matchCondition: {
celExpression: "string",
},
name: "string",
}],
forwardingRules: ["string"],
loadBalancingScheme: "string",
location: "string",
description: "string",
labels: {
string: "string",
},
name: "string",
project: "string",
});
type: gcp:networkservices:LbEdgeExtension
properties:
description: string
extensionChains:
- extensions:
- failOpen: false
forwardHeaders:
- string
name: string
service: string
supportedEvents:
- string
matchCondition:
celExpression: string
name: string
forwardingRules:
- string
labels:
string: string
loadBalancingScheme: string
location: string
name: string
project: string
LbEdgeExtension Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The LbEdgeExtension resource accepts the following input properties:
- Extension
Chains List<LbEdge Extension Extension Chain> - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- Forwarding
Rules List<string> - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- Load
Balancing stringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - Location string
- The location of the edge extension
- Description string
- A human-readable description of the resource.
- Labels Dictionary<string, string>
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - Name string
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Extension
Chains []LbEdge Extension Extension Chain Args - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- Forwarding
Rules []string - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- Load
Balancing stringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - Location string
- The location of the edge extension
- Description string
- A human-readable description of the resource.
- Labels map[string]string
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - Name string
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- extension
Chains List<LbEdge Extension Extension Chain> - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding
Rules List<String> - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- load
Balancing StringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location String
- The location of the edge extension
- description String
- A human-readable description of the resource.
- labels Map<String,String>
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - name String
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- extension
Chains LbEdge Extension Extension Chain[] - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding
Rules string[] - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- load
Balancing stringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location string
- The location of the edge extension
- description string
- A human-readable description of the resource.
- labels {[key: string]: string}
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - name string
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- extension_
chains Sequence[LbEdge Extension Extension Chain Args] - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding_
rules Sequence[str] - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- load_
balancing_ strscheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location str
- The location of the edge extension
- description str
- A human-readable description of the resource.
- labels Mapping[str, str]
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - name str
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- extension
Chains List<Property Map> - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding
Rules List<String> - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- load
Balancing StringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location String
- The location of the edge extension
- description String
- A human-readable description of the resource.
- labels Map<String>
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - name String
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
Outputs
All input properties are implicitly available as output properties. Additionally, the LbEdgeExtension resource produces the following output properties:
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Id string
- The provider-assigned unique ID for this managed resource.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id string
- The provider-assigned unique ID for this managed resource.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id str
- The provider-assigned unique ID for this managed resource.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- id String
- The provider-assigned unique ID for this managed resource.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
Look up Existing LbEdgeExtension Resource
Get an existing LbEdgeExtension resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: LbEdgeExtensionState, opts?: CustomResourceOptions): LbEdgeExtension@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
description: Optional[str] = None,
effective_labels: Optional[Mapping[str, str]] = None,
extension_chains: Optional[Sequence[LbEdgeExtensionExtensionChainArgs]] = None,
forwarding_rules: Optional[Sequence[str]] = None,
labels: Optional[Mapping[str, str]] = None,
load_balancing_scheme: Optional[str] = None,
location: Optional[str] = None,
name: Optional[str] = None,
project: Optional[str] = None,
pulumi_labels: Optional[Mapping[str, str]] = None) -> LbEdgeExtensionfunc GetLbEdgeExtension(ctx *Context, name string, id IDInput, state *LbEdgeExtensionState, opts ...ResourceOption) (*LbEdgeExtension, error)public static LbEdgeExtension Get(string name, Input<string> id, LbEdgeExtensionState? state, CustomResourceOptions? opts = null)public static LbEdgeExtension get(String name, Output<String> id, LbEdgeExtensionState state, CustomResourceOptions options)resources: _: type: gcp:networkservices:LbEdgeExtension get: id: ${id}- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Description string
- A human-readable description of the resource.
- Effective
Labels Dictionary<string, string> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Extension
Chains List<LbEdge Extension Extension Chain> - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- Forwarding
Rules List<string> - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- Labels Dictionary<string, string>
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - Load
Balancing stringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - Location string
- The location of the edge extension
- Name string
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels Dictionary<string, string> - The combination of labels configured directly on the resource and default labels configured on the provider.
- Description string
- A human-readable description of the resource.
- Effective
Labels map[string]string - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- Extension
Chains []LbEdge Extension Extension Chain Args - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- Forwarding
Rules []string - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- Labels map[string]string
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - Load
Balancing stringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - Location string
- The location of the edge extension
- Name string
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- Project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- Pulumi
Labels map[string]string - The combination of labels configured directly on the resource and default labels configured on the provider.
- description String
- A human-readable description of the resource.
- effective
Labels Map<String,String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- extension
Chains List<LbEdge Extension Extension Chain> - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding
Rules List<String> - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- labels Map<String,String>
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - load
Balancing StringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location String
- The location of the edge extension
- name String
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String,String> - The combination of labels configured directly on the resource and default labels configured on the provider.
- description string
- A human-readable description of the resource.
- effective
Labels {[key: string]: string} - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- extension
Chains LbEdge Extension Extension Chain[] - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding
Rules string[] - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- labels {[key: string]: string}
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - load
Balancing stringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location string
- The location of the edge extension
- name string
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project string
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels {[key: string]: string} - The combination of labels configured directly on the resource and default labels configured on the provider.
- description str
- A human-readable description of the resource.
- effective_
labels Mapping[str, str] - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- extension_
chains Sequence[LbEdge Extension Extension Chain Args] - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding_
rules Sequence[str] - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- labels Mapping[str, str]
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - load_
balancing_ strscheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location str
- The location of the edge extension
- name str
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project str
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi_
labels Mapping[str, str] - The combination of labels configured directly on the resource and default labels configured on the provider.
- description String
- A human-readable description of the resource.
- effective
Labels Map<String> - All of labels (key/value pairs) present on the resource in GCP, including the labels configured through Pulumi, other clients and services.
- extension
Chains List<Property Map> - A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource. Structure is documented below.
- forwarding
Rules List<String> - A list of references to the forwarding rules to which this service extension is attached. At least one forwarding rule is required. Only one LbEdgeExtension resource can be associated with a forwarding rule.
- labels Map<String>
- Set of labels associated with the LbEdgeExtension resource.
Note: This field is non-authoritative, and will only manage the labels present in your configuration.
Please refer to the field
effective_labelsfor all of the labels present on the resource. - load
Balancing StringScheme - All forwarding rules referenced by this extension must share the same load balancing scheme.
Possible values are:
EXTERNAL_MANAGED. - location String
- The location of the edge extension
- name String
- Name of the LbEdgeExtension resource in the following format: projects/{project}/locations/{location}/lbEdgeExtensions/{lbEdgeExtensions}
- project String
- The ID of the project in which the resource belongs. If it is not provided, the provider project is used.
- pulumi
Labels Map<String> - The combination of labels configured directly on the resource and default labels configured on the provider.
Supporting Types
LbEdgeExtensionExtensionChain, LbEdgeExtensionExtensionChainArgs
- Extensions
List<Lb
Edge Extension Extension Chain Extension> - A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain. Structure is documented below.
- Match
Condition LbEdge Extension Extension Chain Match Condition - Conditions under which this chain is invoked for a request. Structure is documented below.
- Name string
- The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last character must be a letter or a number.
- Extensions
[]Lb
Edge Extension Extension Chain Extension - A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain. Structure is documented below.
- Match
Condition LbEdge Extension Extension Chain Match Condition - Conditions under which this chain is invoked for a request. Structure is documented below.
- Name string
- The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last character must be a letter or a number.
- extensions
List<Lb
Edge Extension Extension Chain Extension> - A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain. Structure is documented below.
- match
Condition LbEdge Extension Extension Chain Match Condition - Conditions under which this chain is invoked for a request. Structure is documented below.
- name String
- The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last character must be a letter or a number.
- extensions
Lb
Edge Extension Extension Chain Extension[] - A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain. Structure is documented below.
- match
Condition LbEdge Extension Extension Chain Match Condition - Conditions under which this chain is invoked for a request. Structure is documented below.
- name string
- The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last character must be a letter or a number.
- extensions
Sequence[Lb
Edge Extension Extension Chain Extension] - A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain. Structure is documented below.
- match_
condition LbEdge Extension Extension Chain Match Condition - Conditions under which this chain is invoked for a request. Structure is documented below.
- name str
- The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last character must be a letter or a number.
- extensions List<Property Map>
- A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for LbTrafficExtension resource. LbRouteExtension chains are limited to 1 extension per extension chain. Structure is documented below.
- match
Condition Property Map - Conditions under which this chain is invoked for a request. Structure is documented below.
- name String
- The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last character must be a letter or a number.
LbEdgeExtensionExtensionChainExtension, LbEdgeExtensionExtensionChainExtensionArgs
- Name string
- The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.
- Service string
- The reference to the service that runs the extension.
- To configure a callout extension, service must be a fully-qualified reference to a backend service.
- To configure a plugin extension, service must be a reference to a WasmPlugin resource.
- Fail
Open bool - Determines how the proxy behaves if the call to the extension fails or times out. When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
- Forward
Headers List<string> - List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.
- Supported
Events List<string> - A set of events during request or response processing for which this extension is called.
This field is required for the LbEdgeExtension resource and only supports the value
REQUEST_HEADERS.
- Name string
- The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.
- Service string
- The reference to the service that runs the extension.
- To configure a callout extension, service must be a fully-qualified reference to a backend service.
- To configure a plugin extension, service must be a reference to a WasmPlugin resource.
- Fail
Open bool - Determines how the proxy behaves if the call to the extension fails or times out. When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
- Forward
Headers []string - List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.
- Supported
Events []string - A set of events during request or response processing for which this extension is called.
This field is required for the LbEdgeExtension resource and only supports the value
REQUEST_HEADERS.
- name String
- The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.
- service String
- The reference to the service that runs the extension.
- To configure a callout extension, service must be a fully-qualified reference to a backend service.
- To configure a plugin extension, service must be a reference to a WasmPlugin resource.
- fail
Open Boolean - Determines how the proxy behaves if the call to the extension fails or times out. When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
- forward
Headers List<String> - List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.
- supported
Events List<String> - A set of events during request or response processing for which this extension is called.
This field is required for the LbEdgeExtension resource and only supports the value
REQUEST_HEADERS.
- name string
- The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.
- service string
- The reference to the service that runs the extension.
- To configure a callout extension, service must be a fully-qualified reference to a backend service.
- To configure a plugin extension, service must be a reference to a WasmPlugin resource.
- fail
Open boolean - Determines how the proxy behaves if the call to the extension fails or times out. When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
- forward
Headers string[] - List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.
- supported
Events string[] - A set of events during request or response processing for which this extension is called.
This field is required for the LbEdgeExtension resource and only supports the value
REQUEST_HEADERS.
- name str
- The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.
- service str
- The reference to the service that runs the extension.
- To configure a callout extension, service must be a fully-qualified reference to a backend service.
- To configure a plugin extension, service must be a reference to a WasmPlugin resource.
- fail_
open bool - Determines how the proxy behaves if the call to the extension fails or times out. When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
- forward_
headers Sequence[str] - List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.
- supported_
events Sequence[str] - A set of events during request or response processing for which this extension is called.
This field is required for the LbEdgeExtension resource and only supports the value
REQUEST_HEADERS.
- name String
- The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.
- service String
- The reference to the service that runs the extension.
- To configure a callout extension, service must be a fully-qualified reference to a backend service.
- To configure a plugin extension, service must be a reference to a WasmPlugin resource.
- fail
Open Boolean - Determines how the proxy behaves if the call to the extension fails or times out. When set to TRUE, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to FALSE: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer.
- forward
Headers List<String> - List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.
- supported
Events List<String> - A set of events during request or response processing for which this extension is called.
This field is required for the LbEdgeExtension resource and only supports the value
REQUEST_HEADERS.
LbEdgeExtensionExtensionChainMatchCondition, LbEdgeExtensionExtensionChainMatchConditionArgs
- Cel
Expression string - A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
- Cel
Expression string - A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
- cel
Expression String - A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
- cel
Expression string - A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
- cel_
expression str - A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
- cel
Expression String - A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed.
Import
LbEdgeExtension can be imported using any of these accepted formats:
projects/{{project}}/locations/{{location}}/lbEdgeExtensions/{{name}}{{project}}/{{location}}/{{name}}{{location}}/{{name}}
When using the pulumi import command, LbEdgeExtension can be imported using one of the formats above. For example:
$ pulumi import gcp:networkservices/lbEdgeExtension:LbEdgeExtension default projects/{{project}}/locations/{{location}}/lbEdgeExtensions/{{name}}
$ pulumi import gcp:networkservices/lbEdgeExtension:LbEdgeExtension default {{project}}/{{location}}/{{name}}
$ pulumi import gcp:networkservices/lbEdgeExtension:LbEdgeExtension default {{location}}/{{name}}
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-betaTerraform Provider.
