OriginPool

class OriginPool : KotlinCustomResource

Provides a ESA Origin Pool resource. For information about ESA Origin Pool and how to use it, see What is Origin Pool.

NOTE: Available since v1.244.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "example.site";
const _default = alicloud.esa.getSites({
planSubscribeType: "enterpriseplan",
});
const defaultSite = new alicloud.esa.Site("default", {
siteName: name,
instanceId: _default.then(_default => _default.sites?.[0]?.instanceId),
coverage: "overseas",
accessType: "NS",
});
const defaultOriginPool = new alicloud.esa.OriginPool("default", {
origins: [
{
type: "OSS",
address: "example.oss-cn-beijing.aliyuncs.com",
header: "{\"Host\":[\"example.oss-cn-beijing.aliyuncs.com\"]}",
enabled: true,
authConf: {
secretKey: "<SecretKeyId>",
authType: "private_cross_account",
accessKey: "<AccessKeyId>",
},
weight: 50,
name: "origin1",
},
{
address: "example.s3.com",
header: "{\"Host\": [\"example1&#46;com\"]}",
enabled: true,
authConf: {
version: "v2",
region: "us-east-1",
authType: "private",
accessKey: "<AccessKeyId>",
secretKey: "<SecretKeyId>",
},
weight: 50,
name: "origin2",
type: "S3",
},
{
type: "S3",
address: "example1111.s3.com",
header: "{\"Host\":[\"example1111&#46;com\"]}",
enabled: true,
authConf: {
secretKey: "<SecretKeyId>",
version: "v2",
region: "us-east-1",
authType: "private",
accessKey: "<AccessKeyId>",
},
weight: 30,
name: "origin3",
},
],
siteId: defaultSite.id,
originPoolName: "exampleoriginpool",
enabled: true,
});
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "example.site"
default = alicloud.esa.get_sites(plan_subscribe_type="enterpriseplan")
default_site = alicloud.esa.Site("default",
site_name=name,
instance_id=default.sites[0].instance_id,
coverage="overseas",
access_type="NS")
default_origin_pool = alicloud.esa.OriginPool("default",
origins=[
{
"type": "OSS",
"address": "example.oss-cn-beijing.aliyuncs.com",
"header": "{\"Host\":[\"example&#46;oss-cn-beijing&#46;aliyuncs&#46;com\"]}",
"enabled": True,
"auth_conf": {
"secret_key": "<SecretKeyId>",
"auth_type": "private_cross_account",
"access_key": "<AccessKeyId>",
},
"weight": 50,
"name": "origin1",
},
{
"address": "example.s3.com",
"header": "{\"Host\": [\"example1&#46;com\"]}",
"enabled": True,
"auth_conf": {
"version": "v2",
"region": "us-east-1",
"auth_type": "private",
"access_key": "<AccessKeyId>",
"secret_key": "<SecretKeyId>",
},
"weight": 50,
"name": "origin2",
"type": "S3",
},
{
"type": "S3",
"address": "example1111.s3.com",
"header": "{\"Host\":[\"example1111&#46;com\"]}",
"enabled": True,
"auth_conf": {
"secret_key": "<SecretKeyId>",
"version": "v2",
"region": "us-east-1",
"auth_type": "private",
"access_key": "<AccessKeyId>",
},
"weight": 30,
"name": "origin3",
},
],
site_id=default_site.id,
origin_pool_name="exampleoriginpool",
enabled=True)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "example.site";
var @default = AliCloud.Esa.GetSites.Invoke(new()
{
PlanSubscribeType = "enterpriseplan",
});
var defaultSite = new AliCloud.Esa.Site("default", new()
{
SiteName = name,
InstanceId = @default.Apply(@default => @default.Apply(getSitesResult => getSitesResult.Sites[0]?.InstanceId)),
Coverage = "overseas",
AccessType = "NS",
});
var defaultOriginPool = new AliCloud.Esa.OriginPool("default", new()
{
Origins = new[]
{
new AliCloud.Esa.Inputs.OriginPoolOriginArgs
{
Type = "OSS",
Address = "example.oss-cn-beijing.aliyuncs.com",
Header = "{\"Host\":[\"example&#46;oss-cn-beijing&#46;aliyuncs&#46;com\"]}",
Enabled = true,
AuthConf = new AliCloud.Esa.Inputs.OriginPoolOriginAuthConfArgs
{
SecretKey = "<SecretKeyId>",
AuthType = "private_cross_account",
AccessKey = "<AccessKeyId>",
},
Weight = 50,
Name = "origin1",
},
new AliCloud.Esa.Inputs.OriginPoolOriginArgs
{
Address = "example.s3.com",
Header = "{\"Host\": [\"example1&#46;com\"]}",
Enabled = true,
AuthConf = new AliCloud.Esa.Inputs.OriginPoolOriginAuthConfArgs
{
Version = "v2",
Region = "us-east-1",
AuthType = "private",
AccessKey = "<AccessKeyId>",
SecretKey = "<SecretKeyId>",
},
Weight = 50,
Name = "origin2",
Type = "S3",
},
new AliCloud.Esa.Inputs.OriginPoolOriginArgs
{
Type = "S3",
Address = "example1111.s3.com",
Header = "{\"Host\":[\"example1111&#46;com\"]}",
Enabled = true,
AuthConf = new AliCloud.Esa.Inputs.OriginPoolOriginAuthConfArgs
{
SecretKey = "<SecretKeyId>",
Version = "v2",
Region = "us-east-1",
AuthType = "private",
AccessKey = "<AccessKeyId>",
},
Weight = 30,
Name = "origin3",
},
},
SiteId = defaultSite.Id,
OriginPoolName = "exampleoriginpool",
Enabled = true,
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/esa"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "example.site"
if param := cfg.Get("name"); param != "" {
name = param
}
_default, err := esa.GetSites(ctx, &esa.GetSitesArgs{
PlanSubscribeType: pulumi.StringRef("enterpriseplan"),
}, nil)
if err != nil {
return err
}
defaultSite, err := esa.NewSite(ctx, "default", &esa.SiteArgs{
SiteName: pulumi.String(name),
InstanceId: pulumi.String(_default.Sites[0].InstanceId),
Coverage: pulumi.String("overseas"),
AccessType: pulumi.String("NS"),
})
if err != nil {
return err
}
_, err = esa.NewOriginPool(ctx, "default", &esa.OriginPoolArgs{
Origins: esa.OriginPoolOriginArray{
&esa.OriginPoolOriginArgs{
Type: pulumi.String("OSS"),
Address: pulumi.String("example.oss-cn-beijing.aliyuncs.com"),
Header: pulumi.String("{\"Host\":[\"example&#46;oss-cn-beijing&#46;aliyuncs&#46;com\"]}"),
Enabled: pulumi.Bool(true),
AuthConf: &esa.OriginPoolOriginAuthConfArgs{
SecretKey: pulumi.String("<SecretKeyId>"),
AuthType: pulumi.String("private_cross_account"),
AccessKey: pulumi.String("<AccessKeyId>"),
},
Weight: pulumi.Int(50),
Name: pulumi.String("origin1"),
},
&esa.OriginPoolOriginArgs{
Address: pulumi.String("example.s3.com"),
Header: pulumi.String("{\"Host\": [\"example1&#46;com\"]}"),
Enabled: pulumi.Bool(true),
AuthConf: &esa.OriginPoolOriginAuthConfArgs{
Version: pulumi.String("v2"),
Region: pulumi.String("us-east-1"),
AuthType: pulumi.String("private"),
AccessKey: pulumi.String("<AccessKeyId>"),
SecretKey: pulumi.String("<SecretKeyId>"),
},
Weight: pulumi.Int(50),
Name: pulumi.String("origin2"),
Type: pulumi.String("S3"),
},
&esa.OriginPoolOriginArgs{
Type: pulumi.String("S3"),
Address: pulumi.String("example1111.s3.com"),
Header: pulumi.String("{\"Host\":[\"example1111&#46;com\"]}"),
Enabled: pulumi.Bool(true),
AuthConf: &esa.OriginPoolOriginAuthConfArgs{
SecretKey: pulumi.String("<SecretKeyId>"),
Version: pulumi.String("v2"),
Region: pulumi.String("us-east-1"),
AuthType: pulumi.String("private"),
AccessKey: pulumi.String("<AccessKeyId>"),
},
Weight: pulumi.Int(30),
Name: pulumi.String("origin3"),
},
},
SiteId: defaultSite.ID(),
OriginPoolName: pulumi.String("exampleoriginpool"),
Enabled: pulumi.Bool(true),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.esa.EsaFunctions;
import com.pulumi.alicloud.esa.inputs.GetSitesArgs;
import com.pulumi.alicloud.esa.Site;
import com.pulumi.alicloud.esa.SiteArgs;
import com.pulumi.alicloud.esa.OriginPool;
import com.pulumi.alicloud.esa.OriginPoolArgs;
import com.pulumi.alicloud.esa.inputs.OriginPoolOriginArgs;
import com.pulumi.alicloud.esa.inputs.OriginPoolOriginAuthConfArgs;
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) {
final var config = ctx.config();
final var name = config.get("name").orElse("example.site");
final var default = EsaFunctions.getSites(GetSitesArgs.builder()
.planSubscribeType("enterpriseplan")
.build());
var defaultSite = new Site("defaultSite", SiteArgs.builder()
.siteName(name)
.instanceId(default_.sites()[0].instanceId())
.coverage("overseas")
.accessType("NS")
.build());
var defaultOriginPool = new OriginPool("defaultOriginPool", OriginPoolArgs.builder()
.origins(
OriginPoolOriginArgs.builder()
.type("OSS")
.address("example.oss-cn-beijing.aliyuncs.com")
.header("{\"Host\":[\"example&#46;oss-cn-beijing&#46;aliyuncs&#46;com\"]}")
.enabled("true")
.authConf(OriginPoolOriginAuthConfArgs.builder()
.secretKey("<SecretKeyId>")
.authType("private_cross_account")
.accessKey("<AccessKeyId>")
.build())
.weight("50")
.name("origin1")
.build(),
OriginPoolOriginArgs.builder()
.address("example.s3.com")
.header("{\"Host\": [\"example1&#46;com\"]}")
.enabled("true")
.authConf(OriginPoolOriginAuthConfArgs.builder()
.version("v2")
.region("us-east-1")
.authType("private")
.accessKey("<AccessKeyId>")
.secretKey("<SecretKeyId>")
.build())
.weight("50")
.name("origin2")
.type("S3")
.build(),
OriginPoolOriginArgs.builder()
.type("S3")
.address("example1111.s3.com")
.header("{\"Host\":[\"example1111&#46;com\"]}")
.enabled("true")
.authConf(OriginPoolOriginAuthConfArgs.builder()
.secretKey("<SecretKeyId>")
.version("v2")
.region("us-east-1")
.authType("private")
.accessKey("<AccessKeyId>")
.build())
.weight("30")
.name("origin3")
.build())
.siteId(defaultSite.id())
.originPoolName("exampleoriginpool")
.enabled("true")
.build());
}
}
configuration:
name:
type: string
default: example.site
resources:
defaultSite:
type: alicloud:esa:Site
name: default
properties:
siteName: ${name}
instanceId: ${default.sites[0].instanceId}
coverage: overseas
accessType: NS
defaultOriginPool:
type: alicloud:esa:OriginPool
name: default
properties:
origins:
- type: OSS
address: example.oss-cn-beijing.aliyuncs.com
header: '{"Host":["example&#46;oss-cn-beijing&#46;aliyuncs&#46;com"]}'
enabled: 'true'
authConf:
secretKey: <SecretKeyId>
authType: private_cross_account
accessKey: <AccessKeyId>
weight: '50'
name: origin1
- address: example.s3.com
header: '{"Host": ["example1&#46;com"]}'
enabled: 'true'
authConf:
version: v2
region: us-east-1
authType: private
accessKey: <AccessKeyId>
secretKey: <SecretKeyId>
weight: '50'
name: origin2
type: S3
- type: S3
address: example1111.s3.com
header: '{"Host":["example1111&#46;com"]}'
enabled: 'true'
authConf:
secretKey: <SecretKeyId>
version: v2
region: us-east-1
authType: private
accessKey: <AccessKeyId>
weight: '30'
name: origin3
siteId: ${defaultSite.id}
originPoolName: exampleoriginpool
enabled: 'true'
variables:
default:
fn::invoke:
function: alicloud:esa:getSites
arguments:
planSubscribeType: enterpriseplan

Import

ESA Origin Pool can be imported using the id, e.g.

$ pulumi import alicloud:esa/originPool:OriginPool example <site_id>:<origin_pool_id>

Properties

Link copied to clipboard
val enabled: Output<Boolean>?

Whether the source address pool is enabled:

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val originPoolId: Output<Int>

OriginPool Id

Link copied to clipboard
val originPoolName: Output<String>

The source address pool name.

Link copied to clipboard

The Source station information added to the source address pool. Multiple Source stations use arrays to transfer values. See origins below.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val siteId: Output<Int>

The site ID.

Link copied to clipboard
val urn: Output<String>