V3Provision Config
Provides a FCV3 Provision Config resource. Function Reservation Configuration. For information about FCV3 Provision Config and how to use it, see What is Provision Config.
NOTE: Available since v1.230.0.
Example Usage
Basic Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
import * as time from "@pulumi/time";
const config = new pulumi.Config();
const name = config.get("name") || "terraform-example";
const _default = new random.index.Integer("default", {
min: 10000,
max: 99999,
});
const defaultProject = new alicloud.log.Project("default", {
projectName: `${name}-${_default.result}`,
description: name,
});
const defaultStore = new alicloud.log.Store("default", {
projectName: defaultProject.name,
logstoreName: `${name}-${_default.result}`,
shardCount: 3,
autoSplit: true,
maxSplitShardCount: 60,
appendMeta: true,
});
const wait10Minutes = new time.index.Sleep("wait_10_minutes", {createDuration: "10m"}, {
dependsOn: [defaultStore],
});
const _function = new alicloud.fc.V3Function("function", {
memorySize: 512,
cpu: 0.5,
handler: "index.handler",
functionName: `${name}-${_default.result}`,
runtime: "python3.10",
diskSize: 512,
code: {
zipFile: "UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=",
},
logConfig: {
enableInstanceMetrics: true,
enableRequestMetrics: true,
project: defaultProject.projectName,
logstore: defaultStore.logstoreName,
logBeginRule: "None",
},
}, {
dependsOn: [wait10Minutes],
});
const defaultV3ProvisionConfig = new alicloud.fc.V3ProvisionConfig("default", {
target: 1,
targetTrackingPolicies: [
{
name: "t1",
startTime: "2030-10-10T10:10:10Z",
endTime: "2035-10-10T10:10:10Z",
minCapacity: 0,
maxCapacity: 1,
metricTarget: 1,
metricType: "ProvisionedConcurrencyUtilization",
},
{
metricTarget: 1,
metricType: "ProvisionedConcurrencyUtilization",
name: "t2",
startTime: "2030-10-10T10:10:10Z",
endTime: "2035-10-10T10:10:10Z",
minCapacity: 0,
maxCapacity: 1,
},
{
metricType: "ProvisionedConcurrencyUtilization",
timeZone: "Asia/Shanghai",
name: "t3",
startTime: "2030-10-10T10:10:10",
endTime: "2035-10-10T10:10:10",
minCapacity: 0,
maxCapacity: 1,
metricTarget: 1,
},
],
scheduledActions: [
{
target: 0,
name: "s1",
startTime: "2030-10-10T10:10:10Z",
endTime: "2035-10-10T10:10:10Z",
scheduleExpression: "cron(0 0 4 * * *)",
},
{
name: "s2",
startTime: "2030-10-10T10:10:10Z",
endTime: "2035-10-10T10:10:10Z",
scheduleExpression: "cron(0 0 6 * * *)",
target: 1,
},
{
startTime: "2030-10-10T10:10:10",
endTime: "2035-10-10T10:10:10",
scheduleExpression: "cron(0 0 7 * * *)",
target: 0,
timeZone: "Asia/Shanghai",
name: "s3",
},
],
qualifier: "LATEST",
alwaysAllocateGpu: true,
functionName: _function.functionName,
alwaysAllocateCpu: true,
});
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
import pulumi_time as time
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "terraform-example"
default = random.index.Integer("default",
min=10000,
max=99999)
default_project = alicloud.log.Project("default",
project_name=f"{name}-{default['result']}",
description=name)
default_store = alicloud.log.Store("default",
project_name=default_project.name,
logstore_name=f"{name}-{default['result']}",
shard_count=3,
auto_split=True,
max_split_shard_count=60,
append_meta=True)
wait10_minutes = time.index.Sleep("wait_10_minutes", create_duration=10m,
opts = pulumi.ResourceOptions(depends_on=[default_store]))
function = alicloud.fc.V3Function("function",
memory_size=512,
cpu=0.5,
handler="index.handler",
function_name=f"{name}-{default['result']}",
runtime="python3.10",
disk_size=512,
code={
"zip_file": "UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=",
},
log_config={
"enable_instance_metrics": True,
"enable_request_metrics": True,
"project": default_project.project_name,
"logstore": default_store.logstore_name,
"log_begin_rule": "None",
},
opts = pulumi.ResourceOptions(depends_on=[wait10_minutes]))
default_v3_provision_config = alicloud.fc.V3ProvisionConfig("default",
target=1,
target_tracking_policies=[
{
"name": "t1",
"start_time": "2030-10-10T10:10:10Z",
"end_time": "2035-10-10T10:10:10Z",
"min_capacity": 0,
"max_capacity": 1,
"metric_target": 1,
"metric_type": "ProvisionedConcurrencyUtilization",
},
{
"metric_target": 1,
"metric_type": "ProvisionedConcurrencyUtilization",
"name": "t2",
"start_time": "2030-10-10T10:10:10Z",
"end_time": "2035-10-10T10:10:10Z",
"min_capacity": 0,
"max_capacity": 1,
},
{
"metric_type": "ProvisionedConcurrencyUtilization",
"time_zone": "Asia/Shanghai",
"name": "t3",
"start_time": "2030-10-10T10:10:10",
"end_time": "2035-10-10T10:10:10",
"min_capacity": 0,
"max_capacity": 1,
"metric_target": 1,
},
],
scheduled_actions=[
{
"target": 0,
"name": "s1",
"start_time": "2030-10-10T10:10:10Z",
"end_time": "2035-10-10T10:10:10Z",
"schedule_expression": "cron(0 0 4 * * *)",
},
{
"name": "s2",
"start_time": "2030-10-10T10:10:10Z",
"end_time": "2035-10-10T10:10:10Z",
"schedule_expression": "cron(0 0 6 * * *)",
"target": 1,
},
{
"start_time": "2030-10-10T10:10:10",
"end_time": "2035-10-10T10:10:10",
"schedule_expression": "cron(0 0 7 * * *)",
"target": 0,
"time_zone": "Asia/Shanghai",
"name": "s3",
},
],
qualifier="LATEST",
always_allocate_gpu=True,
function_name=function.function_name,
always_allocate_cpu=True)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
using Time = Pulumi.Time;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "terraform-example";
var @default = new Random.Index.Integer("default", new()
{
Min = 10000,
Max = 99999,
});
var defaultProject = new AliCloud.Log.Project("default", new()
{
ProjectName = $"{name}-{@default.Result}",
Description = name,
});
var defaultStore = new AliCloud.Log.Store("default", new()
{
ProjectName = defaultProject.Name,
LogstoreName = $"{name}-{@default.Result}",
ShardCount = 3,
AutoSplit = true,
MaxSplitShardCount = 60,
AppendMeta = true,
});
var wait10Minutes = new Time.Index.Sleep("wait_10_minutes", new()
{
CreateDuration = "10m",
}, new CustomResourceOptions
{
DependsOn =
{
defaultStore,
},
});
var function = new AliCloud.FC.V3Function("function", new()
{
MemorySize = 512,
Cpu = 0.5,
Handler = "index.handler",
FunctionName = $"{name}-{@default.Result}",
Runtime = "python3.10",
DiskSize = 512,
Code = new AliCloud.FC.Inputs.V3FunctionCodeArgs
{
ZipFile = "UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=",
},
LogConfig = new AliCloud.FC.Inputs.V3FunctionLogConfigArgs
{
EnableInstanceMetrics = true,
EnableRequestMetrics = true,
Project = defaultProject.ProjectName,
Logstore = defaultStore.LogstoreName,
LogBeginRule = "None",
},
}, new CustomResourceOptions
{
DependsOn =
{
wait10Minutes,
},
});
var defaultV3ProvisionConfig = new AliCloud.FC.V3ProvisionConfig("default", new()
{
Target = 1,
TargetTrackingPolicies = new[]
{
new AliCloud.FC.Inputs.V3ProvisionConfigTargetTrackingPolicyArgs
{
Name = "t1",
StartTime = "2030-10-10T10:10:10Z",
EndTime = "2035-10-10T10:10:10Z",
MinCapacity = 0,
MaxCapacity = 1,
MetricTarget = 1,
MetricType = "ProvisionedConcurrencyUtilization",
},
new AliCloud.FC.Inputs.V3ProvisionConfigTargetTrackingPolicyArgs
{
MetricTarget = 1,
MetricType = "ProvisionedConcurrencyUtilization",
Name = "t2",
StartTime = "2030-10-10T10:10:10Z",
EndTime = "2035-10-10T10:10:10Z",
MinCapacity = 0,
MaxCapacity = 1,
},
new AliCloud.FC.Inputs.V3ProvisionConfigTargetTrackingPolicyArgs
{
MetricType = "ProvisionedConcurrencyUtilization",
TimeZone = "Asia/Shanghai",
Name = "t3",
StartTime = "2030-10-10T10:10:10",
EndTime = "2035-10-10T10:10:10",
MinCapacity = 0,
MaxCapacity = 1,
MetricTarget = 1,
},
},
ScheduledActions = new[]
{
new AliCloud.FC.Inputs.V3ProvisionConfigScheduledActionArgs
{
Target = 0,
Name = "s1",
StartTime = "2030-10-10T10:10:10Z",
EndTime = "2035-10-10T10:10:10Z",
ScheduleExpression = "cron(0 0 4 * * *)",
},
new AliCloud.FC.Inputs.V3ProvisionConfigScheduledActionArgs
{
Name = "s2",
StartTime = "2030-10-10T10:10:10Z",
EndTime = "2035-10-10T10:10:10Z",
ScheduleExpression = "cron(0 0 6 * * *)",
Target = 1,
},
new AliCloud.FC.Inputs.V3ProvisionConfigScheduledActionArgs
{
StartTime = "2030-10-10T10:10:10",
EndTime = "2035-10-10T10:10:10",
ScheduleExpression = "cron(0 0 7 * * *)",
Target = 0,
TimeZone = "Asia/Shanghai",
Name = "s3",
},
},
Qualifier = "LATEST",
AlwaysAllocateGpu = true,
FunctionName = function.FunctionName,
AlwaysAllocateCpu = true,
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/fc"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"github.com/pulumi/pulumi-time/sdk/go/time"
"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 := "terraform-example"
if param := cfg.Get("name"); param != "" {
name = param
}
_default, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Min: 10000,
Max: 99999,
})
if err != nil {
return err
}
defaultProject, err := log.NewProject(ctx, "default", &log.ProjectArgs{
ProjectName: pulumi.Sprintf("%v-%v", name, _default.Result),
Description: pulumi.String(name),
})
if err != nil {
return err
}
defaultStore, err := log.NewStore(ctx, "default", &log.StoreArgs{
ProjectName: defaultProject.Name,
LogstoreName: pulumi.Sprintf("%v-%v", name, _default.Result),
ShardCount: pulumi.Int(3),
AutoSplit: pulumi.Bool(true),
MaxSplitShardCount: pulumi.Int(60),
AppendMeta: pulumi.Bool(true),
})
if err != nil {
return err
}
wait10Minutes, err := time.NewSleep(ctx, "wait_10_minutes", &time.SleepArgs{
CreateDuration: "10m",
}, pulumi.DependsOn([]pulumi.Resource{
defaultStore,
}))
if err != nil {
return err
}
function, err := fc.NewV3Function(ctx, "function", &fc.V3FunctionArgs{
MemorySize: pulumi.Int(512),
Cpu: pulumi.Float64(0.5),
Handler: pulumi.String("index.handler"),
FunctionName: pulumi.Sprintf("%v-%v", name, _default.Result),
Runtime: pulumi.String("python3.10"),
DiskSize: pulumi.Int(512),
Code: &fc.V3FunctionCodeArgs{
ZipFile: pulumi.String("UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA="),
},
LogConfig: &fc.V3FunctionLogConfigArgs{
EnableInstanceMetrics: pulumi.Bool(true),
EnableRequestMetrics: pulumi.Bool(true),
Project: defaultProject.ProjectName,
Logstore: defaultStore.LogstoreName,
LogBeginRule: pulumi.String("None"),
},
}, pulumi.DependsOn([]pulumi.Resource{
wait10Minutes,
}))
if err != nil {
return err
}
_, err = fc.NewV3ProvisionConfig(ctx, "default", &fc.V3ProvisionConfigArgs{
Target: pulumi.Int(1),
TargetTrackingPolicies: fc.V3ProvisionConfigTargetTrackingPolicyArray{
&fc.V3ProvisionConfigTargetTrackingPolicyArgs{
Name: pulumi.String("t1"),
StartTime: pulumi.String("2030-10-10T10:10:10Z"),
EndTime: pulumi.String("2035-10-10T10:10:10Z"),
MinCapacity: pulumi.Int(0),
MaxCapacity: pulumi.Int(1),
MetricTarget: pulumi.Float64(1),
MetricType: pulumi.String("ProvisionedConcurrencyUtilization"),
},
&fc.V3ProvisionConfigTargetTrackingPolicyArgs{
MetricTarget: pulumi.Float64(1),
MetricType: pulumi.String("ProvisionedConcurrencyUtilization"),
Name: pulumi.String("t2"),
StartTime: pulumi.String("2030-10-10T10:10:10Z"),
EndTime: pulumi.String("2035-10-10T10:10:10Z"),
MinCapacity: pulumi.Int(0),
MaxCapacity: pulumi.Int(1),
},
&fc.V3ProvisionConfigTargetTrackingPolicyArgs{
MetricType: pulumi.String("ProvisionedConcurrencyUtilization"),
TimeZone: pulumi.String("Asia/Shanghai"),
Name: pulumi.String("t3"),
StartTime: pulumi.String("2030-10-10T10:10:10"),
EndTime: pulumi.String("2035-10-10T10:10:10"),
MinCapacity: pulumi.Int(0),
MaxCapacity: pulumi.Int(1),
MetricTarget: pulumi.Float64(1),
},
},
ScheduledActions: fc.V3ProvisionConfigScheduledActionArray{
&fc.V3ProvisionConfigScheduledActionArgs{
Target: pulumi.Int(0),
Name: pulumi.String("s1"),
StartTime: pulumi.String("2030-10-10T10:10:10Z"),
EndTime: pulumi.String("2035-10-10T10:10:10Z"),
ScheduleExpression: pulumi.String("cron(0 0 4 * * *)"),
},
&fc.V3ProvisionConfigScheduledActionArgs{
Name: pulumi.String("s2"),
StartTime: pulumi.String("2030-10-10T10:10:10Z"),
EndTime: pulumi.String("2035-10-10T10:10:10Z"),
ScheduleExpression: pulumi.String("cron(0 0 6 * * *)"),
Target: pulumi.Int(1),
},
&fc.V3ProvisionConfigScheduledActionArgs{
StartTime: pulumi.String("2030-10-10T10:10:10"),
EndTime: pulumi.String("2035-10-10T10:10:10"),
ScheduleExpression: pulumi.String("cron(0 0 7 * * *)"),
Target: pulumi.Int(0),
TimeZone: pulumi.String("Asia/Shanghai"),
Name: pulumi.String("s3"),
},
},
Qualifier: pulumi.String("LATEST"),
AlwaysAllocateGpu: pulumi.Bool(true),
FunctionName: function.FunctionName,
AlwaysAllocateCpu: 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.random.integer;
import com.pulumi.random.integerArgs;
import com.pulumi.alicloud.log.Project;
import com.pulumi.alicloud.log.ProjectArgs;
import com.pulumi.alicloud.log.Store;
import com.pulumi.alicloud.log.StoreArgs;
import com.pulumi.time.sleep;
import com.pulumi.time.sleepArgs;
import com.pulumi.alicloud.fc.V3Function;
import com.pulumi.alicloud.fc.V3FunctionArgs;
import com.pulumi.alicloud.fc.inputs.V3FunctionCodeArgs;
import com.pulumi.alicloud.fc.inputs.V3FunctionLogConfigArgs;
import com.pulumi.alicloud.fc.V3ProvisionConfig;
import com.pulumi.alicloud.fc.V3ProvisionConfigArgs;
import com.pulumi.alicloud.fc.inputs.V3ProvisionConfigTargetTrackingPolicyArgs;
import com.pulumi.alicloud.fc.inputs.V3ProvisionConfigScheduledActionArgs;
import com.pulumi.resources.CustomResourceOptions;
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("terraform-example");
var default_ = new Integer("default", IntegerArgs.builder()
.min(10000)
.max(99999)
.build());
var defaultProject = new Project("defaultProject", ProjectArgs.builder()
.projectName(String.format("%s-%s", name,default_.result()))
.description(name)
.build());
var defaultStore = new Store("defaultStore", StoreArgs.builder()
.projectName(defaultProject.name())
.logstoreName(String.format("%s-%s", name,default_.result()))
.shardCount(3)
.autoSplit(true)
.maxSplitShardCount(60)
.appendMeta(true)
.build());
var wait10Minutes = new Sleep("wait10Minutes", SleepArgs.builder()
.createDuration("10m")
.build(), CustomResourceOptions.builder()
.dependsOn(List.of(defaultStore))
.build());
var function = new V3Function("function", V3FunctionArgs.builder()
.memorySize(512)
.cpu(0.5)
.handler("index.handler")
.functionName(String.format("%s-%s", name,default_.result()))
.runtime("python3.10")
.diskSize(512)
.code(V3FunctionCodeArgs.builder()
.zipFile("UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=")
.build())
.logConfig(V3FunctionLogConfigArgs.builder()
.enableInstanceMetrics(true)
.enableRequestMetrics(true)
.project(defaultProject.projectName())
.logstore(defaultStore.logstoreName())
.logBeginRule("None")
.build())
.build(), CustomResourceOptions.builder()
.dependsOn(wait10Minutes)
.build());
var defaultV3ProvisionConfig = new V3ProvisionConfig("defaultV3ProvisionConfig", V3ProvisionConfigArgs.builder()
.target(1)
.targetTrackingPolicies(
V3ProvisionConfigTargetTrackingPolicyArgs.builder()
.name("t1")
.startTime("2030-10-10T10:10:10Z")
.endTime("2035-10-10T10:10:10Z")
.minCapacity(0)
.maxCapacity(1)
.metricTarget(1.0)
.metricType("ProvisionedConcurrencyUtilization")
.build(),
V3ProvisionConfigTargetTrackingPolicyArgs.builder()
.metricTarget(1.0)
.metricType("ProvisionedConcurrencyUtilization")
.name("t2")
.startTime("2030-10-10T10:10:10Z")
.endTime("2035-10-10T10:10:10Z")
.minCapacity(0)
.maxCapacity(1)
.build(),
V3ProvisionConfigTargetTrackingPolicyArgs.builder()
.metricType("ProvisionedConcurrencyUtilization")
.timeZone("Asia/Shanghai")
.name("t3")
.startTime("2030-10-10T10:10:10")
.endTime("2035-10-10T10:10:10")
.minCapacity(0)
.maxCapacity(1)
.metricTarget(1.0)
.build())
.scheduledActions(
V3ProvisionConfigScheduledActionArgs.builder()
.target(0)
.name("s1")
.startTime("2030-10-10T10:10:10Z")
.endTime("2035-10-10T10:10:10Z")
.scheduleExpression("cron(0 0 4 * * *)")
.build(),
V3ProvisionConfigScheduledActionArgs.builder()
.name("s2")
.startTime("2030-10-10T10:10:10Z")
.endTime("2035-10-10T10:10:10Z")
.scheduleExpression("cron(0 0 6 * * *)")
.target(1)
.build(),
V3ProvisionConfigScheduledActionArgs.builder()
.startTime("2030-10-10T10:10:10")
.endTime("2035-10-10T10:10:10")
.scheduleExpression("cron(0 0 7 * * *)")
.target(0)
.timeZone("Asia/Shanghai")
.name("s3")
.build())
.qualifier("LATEST")
.alwaysAllocateGpu(true)
.functionName(function.functionName())
.alwaysAllocateCpu(true)
.build());
}
}
configuration:
name:
type: string
default: terraform-example
resources:
default:
type: random:integer
properties:
min: 10000
max: 99999
defaultProject:
type: alicloud:log:Project
name: default
properties:
projectName: ${name}-${default.result}
description: ${name}
defaultStore:
type: alicloud:log:Store
name: default
properties:
projectName: ${defaultProject.name}
logstoreName: ${name}-${default.result}
shardCount: 3
autoSplit: true
maxSplitShardCount: 60
appendMeta: true
wait10Minutes:
type: time:sleep
name: wait_10_minutes
properties:
createDuration: 10m
options:
dependsOn:
- ${defaultStore}
function:
type: alicloud:fc:V3Function
properties:
memorySize: '512'
cpu: 0.5
handler: index.handler
functionName: ${name}-${default.result}
runtime: python3.10
diskSize: '512'
code:
zipFile: UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXgucHmEkEFKxEAQRfd9ig9ZTCJOooIwDMwNXLqXnnQlaalUhU5lRj2KZ/FOXkESGR114bJ/P/7jV4b1xRq1hijtFpM1682cuNgPmgysbRulPT0fRxXnMtwrSPyeCdYRokSLnuMLJTTkbUqEvDMbxm1VdcRD6Tk+T1LW2ldB66knsYdA5iNX17ebm6tN2VnPhcswMPmREPuBacb+CiapLarAj9gT6/H97dVlCNScY3mtYvRkxdZlwDKDEnanPWVLdrdkeXEGlFEazVdfPVHaVeHc3N15CUwppwOJXeK7HshAB8NuOU7J6sP4SRXuH/EvbUfMiqMmDqv5M5FNSfAj/wgAAP//UEsHCPl//NYAAQAArwEAAFBLAQIUABQACAAIAAAAAAD5f/zWAAEAAK8BAAAIAAAAAAAAAAAAAAAAAAAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAAA2AQAAAAA=
logConfig:
enableInstanceMetrics: true
enableRequestMetrics: true
project: ${defaultProject.projectName}
logstore: ${defaultStore.logstoreName}
logBeginRule: None
options:
dependsOn:
- ${wait10Minutes}
defaultV3ProvisionConfig:
type: alicloud:fc:V3ProvisionConfig
name: default
properties:
target: '1'
targetTrackingPolicies:
- name: t1
startTime: 2030-10-10T10:10:10Z
endTime: 2035-10-10T10:10:10Z
minCapacity: '0'
maxCapacity: '1'
metricTarget: '1'
metricType: ProvisionedConcurrencyUtilization
- metricTarget: '1'
metricType: ProvisionedConcurrencyUtilization
name: t2
startTime: 2030-10-10T10:10:10Z
endTime: 2035-10-10T10:10:10Z
minCapacity: '0'
maxCapacity: '1'
- metricType: ProvisionedConcurrencyUtilization
timeZone: Asia/Shanghai
name: t3
startTime: 2030-10-10T10:10:10
endTime: 2035-10-10T10:10:10
minCapacity: '0'
maxCapacity: '1'
metricTarget: '1'
scheduledActions:
- target: '0'
name: s1
startTime: 2030-10-10T10:10:10Z
endTime: 2035-10-10T10:10:10Z
scheduleExpression: cron(0 0 4 * * *)
- name: s2
startTime: 2030-10-10T10:10:10Z
endTime: 2035-10-10T10:10:10Z
scheduleExpression: cron(0 0 6 * * *)
target: '1'
- startTime: 2030-10-10T10:10:10
endTime: 2035-10-10T10:10:10
scheduleExpression: cron(0 0 7 * * *)
target: '0'
timeZone: Asia/Shanghai
name: s3
qualifier: LATEST
alwaysAllocateGpu: 'true'
functionName: ${function.functionName}
alwaysAllocateCpu: 'true'
Import
FCV3 Provision Config can be imported using the id, e.g.
$ pulumi import alicloud:fc/v3ProvisionConfig:V3ProvisionConfig example <id>
Properties
Whether the CPU is always allocated. The default value is true.
Whether to always assign GPU to function instance
(Available since v1.234.0) Error message when a Reserved Instance creation fails
(Available since v1.234.0) Resource Description of the function
The name of the function. If this parameter is not specified, the provisioned configurations of all functions are listed.
Timing policy configuration See scheduled_actions
below.
Metric tracking scaling policy configuration See target_tracking_policies
below.