get Security Groups
This data source provides a list of Security Groups in an Alibaba Cloud account according to the specified filters.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
// Filter security groups and print the results into a file
const secGroupsDs = alicloud.ecs.getSecurityGroups({
nameRegex: "^web-",
outputFile: "web_access.json",
});
// In conjunction with a VPC
const primaryVpcDs = new alicloud.vpc.Network("primary_vpc_ds", {});
const primarySecGroupsDs = alicloud.ecs.getSecurityGroupsOutput({
vpcId: primaryVpcDs.id,
});
export const firstGroupId = primarySecGroupsDs.apply(primarySecGroupsDs => primarySecGroupsDs.groups?.[0]?.id);
import pulumi
import pulumi_alicloud as alicloud
# Filter security groups and print the results into a file
sec_groups_ds = alicloud.ecs.get_security_groups(name_regex="^web-",
output_file="web_access.json")
# In conjunction with a VPC
primary_vpc_ds = alicloud.vpc.Network("primary_vpc_ds")
primary_sec_groups_ds = alicloud.ecs.get_security_groups_output(vpc_id=primary_vpc_ds.id)
pulumi.export("firstGroupId", primary_sec_groups_ds.groups[0].id)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
// Filter security groups and print the results into a file
var secGroupsDs = AliCloud.Ecs.GetSecurityGroups.Invoke(new()
{
NameRegex = "^web-",
OutputFile = "web_access.json",
});
// In conjunction with a VPC
var primaryVpcDs = new AliCloud.Vpc.Network("primary_vpc_ds");
var primarySecGroupsDs = AliCloud.Ecs.GetSecurityGroups.Invoke(new()
{
VpcId = primaryVpcDs.Id,
});
return new Dictionary<string, object?>
{
["firstGroupId"] = primarySecGroupsDs.Apply(getSecurityGroupsResult => getSecurityGroupsResult.Groups[0]?.Id),
};
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/vpc"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Filter security groups and print the results into a file
_, err := ecs.GetSecurityGroups(ctx, &ecs.GetSecurityGroupsArgs{
NameRegex: pulumi.StringRef("^web-"),
OutputFile: pulumi.StringRef("web_access.json"),
}, nil)
if err != nil {
return err
}
// In conjunction with a VPC
primaryVpcDs, err := vpc.NewNetwork(ctx, "primary_vpc_ds", nil)
if err != nil {
return err
}
primarySecGroupsDs := ecs.GetSecurityGroupsOutput(ctx, ecs.GetSecurityGroupsOutputArgs{
VpcId: primaryVpcDs.ID(),
}, nil)
ctx.Export("firstGroupId", primarySecGroupsDs.ApplyT(func(primarySecGroupsDs ecs.GetSecurityGroupsResult) (*string, error) {
return &primarySecGroupsDs.Groups[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.alicloud.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;
import com.pulumi.alicloud.vpc.Network;
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) {
// Filter security groups and print the results into a file
final var secGroupsDs = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()
.nameRegex("^web-")
.outputFile("web_access.json")
.build());
// In conjunction with a VPC
var primaryVpcDs = new Network("primaryVpcDs");
final var primarySecGroupsDs = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()
.vpcId(primaryVpcDs.id())
.build());
ctx.export("firstGroupId", primarySecGroupsDs.applyValue(_primarySecGroupsDs -> _primarySecGroupsDs.groups()[0].id()));
}
}
resources:
# In conjunction with a VPC
primaryVpcDs:
type: alicloud:vpc:Network
name: primary_vpc_ds
variables:
# Filter security groups and print the results into a file
secGroupsDs:
fn::invoke:
function: alicloud:ecs:getSecurityGroups
arguments:
nameRegex: ^web-
outputFile: web_access.json
primarySecGroupsDs:
fn::invoke:
function: alicloud:ecs:getSecurityGroups
arguments:
vpcId: ${primaryVpcDs.id}
outputs:
firstGroupId: ${primarySecGroupsDs.groups[0].id}
Return
A collection of values returned by getSecurityGroups.
Parameters
A collection of arguments for invoking getSecurityGroups.
Return
A collection of values returned by getSecurityGroups.
Parameters
A list of Security Group IDs.
A regex string to filter the resulting security groups by their names.
File name where to save data source results (after running pulumi preview
).
The Id of resource group which the security_group belongs.
A map of tags assigned to the ECS instances. It must be in the format:
import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const taggedSecurityGroups = alicloud.ecs.getSecurityGroups({
tags: {
tagKey1: "tagValue1",
tagKey2: "tagValue2",
},
});
import pulumi
import pulumi_alicloud as alicloud
tagged_security_groups = alicloud.ecs.get_security_groups(tags={
"tagKey1": "tagValue1",
"tagKey2": "tagValue2",
})
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var taggedSecurityGroups = AliCloud.Ecs.GetSecurityGroups.Invoke(new()
{
Tags =
{
{ "tagKey1", "tagValue1" },
{ "tagKey2", "tagValue2" },
},
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ecs.GetSecurityGroups(ctx, &ecs.GetSecurityGroupsArgs{
Tags: map[string]interface{}{
"tagKey1": "tagValue1",
"tagKey2": "tagValue2",
},
}, nil)
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.ecs.EcsFunctions;
import com.pulumi.alicloud.ecs.inputs.GetSecurityGroupsArgs;
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 taggedSecurityGroups = EcsFunctions.getSecurityGroups(GetSecurityGroupsArgs.builder()
.tags(Map.ofEntries(
Map.entry("tagKey1", "tagValue1"),
Map.entry("tagKey2", "tagValue2")
))
.build());
}
}
variables:
taggedSecurityGroups:
fn::invoke:
function: alicloud:ecs:getSecurityGroups
arguments:
tags:
tagKey1: tagValue1
tagKey2: tagValue2
Used to retrieve security groups that belong to the specified VPC ID.
See also
Return
A collection of values returned by getSecurityGroups.
Parameters
Builder for com.pulumi.alicloud.ecs.kotlin.inputs.GetSecurityGroupsPlainArgs.