getFlowlogs

This data source provides CEN flow logs available to the user.

NOTE: Available since v1.78.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
import * as random from "@pulumi/random";
const config = new pulumi.Config();
const name = config.get("name") || "tf-example";
const defaultInteger = new random.index.Integer("default", {
min: 10000,
max: 99999,
});
const defaultc5kxyC = new alicloud.cen.Instance("defaultc5kxyC", {cenInstanceName: name});
const defaultVw2U9u = new alicloud.cen.TransitRouter("defaultVw2U9u", {cenId: defaultc5kxyC.id});
const defaultProject = new alicloud.log.Project("default", {
projectName: `${name}-${defaultInteger.result}`,
description: "terraform-example",
});
const defaultStore = new alicloud.log.Store("default", {
projectName: defaultProject.projectName,
logstoreName: `${name}-${defaultInteger.result}`,
shardCount: 3,
autoSplit: true,
maxSplitShardCount: 60,
appendMeta: true,
});
const defaultFlowLog = new alicloud.cen.FlowLog("default", {
projectName: defaultStore.projectName,
flowLogName: `${name}-${defaultInteger.result}`,
logFormatString: "${srcaddr}${dstaddr}${bytes}",
cenId: defaultc5kxyC.id,
logStoreName: defaultStore.logstoreName,
interval: 600,
status: "Active",
transitRouterId: defaultVw2U9u.transitRouterId,
description: "flowlog-resource-example-1",
});
const _default = alicloud.cen.getFlowlogsOutput({
ids: [defaultFlowLog.id],
});
export const firstCenFlowlogId = _default.apply(_default => _default.flowlogs?.[0]?.id);
import pulumi
import pulumi_alicloud as alicloud
import pulumi_random as random
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "tf-example"
default_integer = random.index.Integer("default",
min=10000,
max=99999)
defaultc5kxy_c = alicloud.cen.Instance("defaultc5kxyC", cen_instance_name=name)
default_vw2_u9u = alicloud.cen.TransitRouter("defaultVw2U9u", cen_id=defaultc5kxy_c.id)
default_project = alicloud.log.Project("default",
project_name=f"{name}-{default_integer['result']}",
description="terraform-example")
default_store = alicloud.log.Store("default",
project_name=default_project.project_name,
logstore_name=f"{name}-{default_integer['result']}",
shard_count=3,
auto_split=True,
max_split_shard_count=60,
append_meta=True)
default_flow_log = alicloud.cen.FlowLog("default",
project_name=default_store.project_name,
flow_log_name=f"{name}-{default_integer['result']}",
log_format_string="${srcaddr}${dstaddr}${bytes}",
cen_id=defaultc5kxy_c.id,
log_store_name=default_store.logstore_name,
interval=600,
status="Active",
transit_router_id=default_vw2_u9u.transit_router_id,
description="flowlog-resource-example-1")
default = alicloud.cen.get_flowlogs_output(ids=[default_flow_log.id])
pulumi.export("firstCenFlowlogId", default.flowlogs[0].id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
using Random = Pulumi.Random;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "tf-example";
var defaultInteger = new Random.Index.Integer("default", new()
{
Min = 10000,
Max = 99999,
});
var defaultc5kxyC = new AliCloud.Cen.Instance("defaultc5kxyC", new()
{
CenInstanceName = name,
});
var defaultVw2U9u = new AliCloud.Cen.TransitRouter("defaultVw2U9u", new()
{
CenId = defaultc5kxyC.Id,
});
var defaultProject = new AliCloud.Log.Project("default", new()
{
ProjectName = $"{name}-{defaultInteger.Result}",
Description = "terraform-example",
});
var defaultStore = new AliCloud.Log.Store("default", new()
{
ProjectName = defaultProject.ProjectName,
LogstoreName = $"{name}-{defaultInteger.Result}",
ShardCount = 3,
AutoSplit = true,
MaxSplitShardCount = 60,
AppendMeta = true,
});
var defaultFlowLog = new AliCloud.Cen.FlowLog("default", new()
{
ProjectName = defaultStore.ProjectName,
FlowLogName = $"{name}-{defaultInteger.Result}",
LogFormatString = "${srcaddr}${dstaddr}${bytes}",
CenId = defaultc5kxyC.Id,
LogStoreName = defaultStore.LogstoreName,
Interval = 600,
Status = "Active",
TransitRouterId = defaultVw2U9u.TransitRouterId,
Description = "flowlog-resource-example-1",
});
var @default = AliCloud.Cen.GetFlowlogs.Invoke(new()
{
Ids = new[]
{
defaultFlowLog.Id,
},
});
return new Dictionary<string, object?>
{
["firstCenFlowlogId"] = @default&#46;Apply(@default => @default&#46;Apply(getFlowlogsResult => getFlowlogsResult&#46;Flowlogs[0]?.Id)),
};
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/cen"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/log"
"github.com/pulumi/pulumi-random/sdk/v4/go/random"
"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 := "tf-example";
if param := cfg.Get("name"); param != ""{
name = param
}
defaultInteger, err := random.NewInteger(ctx, "default", &random.IntegerArgs{
Min: 10000,
Max: 99999,
})
if err != nil {
return err
}
defaultc5kxyC, err := cen.NewInstance(ctx, "defaultc5kxyC", &cen.InstanceArgs{
CenInstanceName: pulumi.String(name),
})
if err != nil {
return err
}
defaultVw2U9u, err := cen.NewTransitRouter(ctx, "defaultVw2U9u", &cen.TransitRouterArgs{
CenId: defaultc5kxyC.ID(),
})
if err != nil {
return err
}
defaultProject, err := log.NewProject(ctx, "default", &log.ProjectArgs{
ProjectName: pulumi.Sprintf("%v-%v", name, defaultInteger.Result),
Description: pulumi.String("terraform-example"),
})
if err != nil {
return err
}
defaultStore, err := log.NewStore(ctx, "default", &log.StoreArgs{
ProjectName: defaultProject.ProjectName,
LogstoreName: pulumi.Sprintf("%v-%v", name, defaultInteger.Result),
ShardCount: pulumi.Int(3),
AutoSplit: pulumi.Bool(true),
MaxSplitShardCount: pulumi.Int(60),
AppendMeta: pulumi.Bool(true),
})
if err != nil {
return err
}
defaultFlowLog, err := cen.NewFlowLog(ctx, "default", &cen.FlowLogArgs{
ProjectName: defaultStore.ProjectName,
FlowLogName: pulumi.Sprintf("%v-%v", name, defaultInteger.Result),
LogFormatString: pulumi.String("${srcaddr}${dstaddr}${bytes}"),
CenId: defaultc5kxyC.ID(),
LogStoreName: defaultStore.LogstoreName,
Interval: pulumi.Int(600),
Status: pulumi.String("Active"),
TransitRouterId: defaultVw2U9u.TransitRouterId,
Description: pulumi.String("flowlog-resource-example-1"),
})
if err != nil {
return err
}
_default := cen.GetFlowlogsOutput(ctx, cen.GetFlowlogsOutputArgs{
Ids: pulumi.StringArray{
defaultFlowLog.ID(),
},
}, nil);
ctx.Export("firstCenFlowlogId", _default.ApplyT(func(_default cen.GetFlowlogsResult) (*string, error) {
return &default.Flowlogs[0].Id, nil
}).(pulumi.StringPtrOutput))
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.cen.Instance;
import com.pulumi.alicloud.cen.InstanceArgs;
import com.pulumi.alicloud.cen.TransitRouter;
import com.pulumi.alicloud.cen.TransitRouterArgs;
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.alicloud.cen.FlowLog;
import com.pulumi.alicloud.cen.FlowLogArgs;
import com.pulumi.alicloud.cen.CenFunctions;
import com.pulumi.alicloud.cen.inputs.GetFlowlogsArgs;
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("tf-example");
var defaultInteger = new Integer("defaultInteger", IntegerArgs.builder()
.min(10000)
.max(99999)
.build());
var defaultc5kxyC = new Instance("defaultc5kxyC", InstanceArgs.builder()
.cenInstanceName(name)
.build());
var defaultVw2U9u = new TransitRouter("defaultVw2U9u", TransitRouterArgs.builder()
.cenId(defaultc5kxyC.id())
.build());
var defaultProject = new Project("defaultProject", ProjectArgs.builder()
.projectName(String.format("%s-%s", name,defaultInteger.result()))
.description("terraform-example")
.build());
var defaultStore = new Store("defaultStore", StoreArgs.builder()
.projectName(defaultProject.projectName())
.logstoreName(String.format("%s-%s", name,defaultInteger.result()))
.shardCount(3)
.autoSplit(true)
.maxSplitShardCount(60)
.appendMeta(true)
.build());
var defaultFlowLog = new FlowLog("defaultFlowLog", FlowLogArgs.builder()
.projectName(defaultStore.projectName())
.flowLogName(String.format("%s-%s", name,defaultInteger.result()))
.logFormatString("${srcaddr}${dstaddr}${bytes}")
.cenId(defaultc5kxyC.id())
.logStoreName(defaultStore.logstoreName())
.interval("600")
.status("Active")
.transitRouterId(defaultVw2U9u.transitRouterId())
.description("flowlog-resource-example-1")
.build());
final var default = CenFunctions.getFlowlogs(GetFlowlogsArgs.builder()
.ids(defaultFlowLog.id())
.build());
ctx.export("firstCenFlowlogId", default_.applyValue(default_ -> default_.flowlogs()[0].id()));
}
}
configuration:
name:
type: string
default: tf-example
resources:
defaultInteger:
type: random:integer
name: default
properties:
min: 10000
max: 99999
defaultc5kxyC:
type: alicloud:cen:Instance
properties:
cenInstanceName: ${name}
defaultVw2U9u:
type: alicloud:cen:TransitRouter
properties:
cenId: ${defaultc5kxyC.id}
defaultProject:
type: alicloud:log:Project
name: default
properties:
projectName: ${name}-${defaultInteger.result}
description: terraform-example
defaultStore:
type: alicloud:log:Store
name: default
properties:
projectName: ${defaultProject.projectName}
logstoreName: ${name}-${defaultInteger.result}
shardCount: 3
autoSplit: true
maxSplitShardCount: 60
appendMeta: true
defaultFlowLog:
type: alicloud:cen:FlowLog
name: default
properties:
projectName: ${defaultStore.projectName}
flowLogName: ${name}-${defaultInteger.result}
logFormatString: $${srcaddr}$${dstaddr}$${bytes}
cenId: ${defaultc5kxyC.id}
logStoreName: ${defaultStore.logstoreName}
interval: '600'
status: Active
transitRouterId: ${defaultVw2U9u.transitRouterId}
description: flowlog-resource-example-1
variables:
default:
fn::invoke:
function: alicloud:cen:getFlowlogs
arguments:
ids:
- ${defaultFlowLog.id}
outputs:
firstCenFlowlogId: ${default.flowlogs[0].id}

Return

A collection of values returned by getFlowlogs.

Parameters

argument

A collection of arguments for invoking getFlowlogs.


suspend fun getFlowlogs(cenId: String? = null, description: String? = null, flowLogId: String? = null, flowLogName: String? = null, flowLogVersion: String? = null, ids: List<String>? = null, interval: Int? = null, logStoreName: String? = null, nameRegex: String? = null, outputFile: String? = null, pageNumber: Int? = null, pageSize: Int? = null, projectName: String? = null, regionId: String? = null, status: String? = null, transitRouterId: String? = null): GetFlowlogsResult

Return

A collection of values returned by getFlowlogs.

Parameters

cenId

The ID of Cen instance.

description

The description of the flowlog.

flowLogId

The ID of FlowLog.

flowLogName

The name of the flowlog.

flowLogVersion

Flowlog Version.

ids

A list of Flow Log IDs.

interval

The duration of the capture window for the flow log to capture traffic. Unit: seconds. Valid values: 60 or **600 * *. Default value: **600 * *.

logStoreName

The LogStore that stores the flowlog.

nameRegex

A regex string to filter results by Group Metric Rule name.

outputFile

File name where to save data source results (after running pulumi preview).

pageNumber

Current page number.

pageSize

Number of records per page.

projectName

The Project that stores the flowlog.

regionId

Region id

status

The status of the flow log. Valid values:-Active: started.-InActive: not started.

transitRouterId

Transit Router ID

See also


suspend fun getFlowlogs(argument: suspend GetFlowlogsPlainArgsBuilder.() -> Unit): GetFlowlogsResult

Return

A collection of values returned by getFlowlogs.

Parameters

argument

Builder for com.pulumi.alicloud.cen.kotlin.inputs.GetFlowlogsPlainArgs.

See also