Try AWS Native preview for resources not in the classic version.
aws.autoscaling.getAmiIds
Explore with Pulumi AI
Try AWS Native preview for resources not in the classic version.
The Autoscaling Groups data source allows access to the list of AWS ASGs within a specific region. This will allow you to pass a list of AutoScaling Groups to other resources.
Example Usage
import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const groups = aws.autoscaling.getAmiIds({
filters: [
{
name: "tag:Team",
values: ["Pets"],
},
{
name: "tag-key",
values: ["Environment"],
},
],
});
const slackNotifications = new aws.autoscaling.Notification("slack_notifications", {
groupNames: groups.then(groups => groups.names),
notifications: [
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
],
topicArn: "TOPIC ARN",
});
import pulumi
import pulumi_aws as aws
groups = aws.autoscaling.get_ami_ids(filters=[
{
"name": "tag:Team",
"values": ["Pets"],
},
{
"name": "tag-key",
"values": ["Environment"],
},
])
slack_notifications = aws.autoscaling.Notification("slack_notifications",
group_names=groups.names,
notifications=[
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
],
topic_arn="TOPIC ARN")
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/autoscaling"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
groups, err := autoscaling.GetAmiIds(ctx, &autoscaling.GetAmiIdsArgs{
Filters: []autoscaling.GetAmiIdsFilter{
{
Name: "tag:Team",
Values: []string{
"Pets",
},
},
{
Name: "tag-key",
Values: []string{
"Environment",
},
},
},
}, nil)
if err != nil {
return err
}
_, err = autoscaling.NewNotification(ctx, "slack_notifications", &autoscaling.NotificationArgs{
GroupNames: interface{}(groups.Names),
Notifications: pulumi.StringArray{
pulumi.String("autoscaling:EC2_INSTANCE_LAUNCH"),
pulumi.String("autoscaling:EC2_INSTANCE_TERMINATE"),
pulumi.String("autoscaling:EC2_INSTANCE_LAUNCH_ERROR"),
pulumi.String("autoscaling:EC2_INSTANCE_TERMINATE_ERROR"),
},
TopicArn: pulumi.String("TOPIC ARN"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var groups = Aws.AutoScaling.GetAmiIds.Invoke(new()
{
Filters = new[]
{
new Aws.AutoScaling.Inputs.GetAmiIdsFilterInputArgs
{
Name = "tag:Team",
Values = new[]
{
"Pets",
},
},
new Aws.AutoScaling.Inputs.GetAmiIdsFilterInputArgs
{
Name = "tag-key",
Values = new[]
{
"Environment",
},
},
},
});
var slackNotifications = new Aws.AutoScaling.Notification("slack_notifications", new()
{
GroupNames = groups.Apply(getAmiIdsResult => getAmiIdsResult.Names),
Notifications = new[]
{
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR",
},
TopicArn = "TOPIC ARN",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.autoscaling.AutoscalingFunctions;
import com.pulumi.aws.autoscaling.inputs.GetAmiIdsArgs;
import com.pulumi.aws.autoscaling.Notification;
import com.pulumi.aws.autoscaling.NotificationArgs;
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 groups = AutoscalingFunctions.getAmiIds(GetAmiIdsArgs.builder()
.filters(
GetAmiIdsFilterArgs.builder()
.name("tag:Team")
.values("Pets")
.build(),
GetAmiIdsFilterArgs.builder()
.name("tag-key")
.values("Environment")
.build())
.build());
var slackNotifications = new Notification("slackNotifications", NotificationArgs.builder()
.groupNames(groups.applyValue(getAmiIdsResult -> getAmiIdsResult.names()))
.notifications(
"autoscaling:EC2_INSTANCE_LAUNCH",
"autoscaling:EC2_INSTANCE_TERMINATE",
"autoscaling:EC2_INSTANCE_LAUNCH_ERROR",
"autoscaling:EC2_INSTANCE_TERMINATE_ERROR")
.topicArn("TOPIC ARN")
.build());
}
}
resources:
slackNotifications:
type: aws:autoscaling:Notification
name: slack_notifications
properties:
groupNames: ${groups.names}
notifications:
- autoscaling:EC2_INSTANCE_LAUNCH
- autoscaling:EC2_INSTANCE_TERMINATE
- autoscaling:EC2_INSTANCE_LAUNCH_ERROR
- autoscaling:EC2_INSTANCE_TERMINATE_ERROR
topicArn: TOPIC ARN
variables:
groups:
fn::invoke:
Function: aws:autoscaling:getAmiIds
Arguments:
filters:
- name: tag:Team
values:
- Pets
- name: tag-key
values:
- Environment
Using getAmiIds
Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.
function getAmiIds(args: GetAmiIdsArgs, opts?: InvokeOptions): Promise<GetAmiIdsResult>
function getAmiIdsOutput(args: GetAmiIdsOutputArgs, opts?: InvokeOptions): Output<GetAmiIdsResult>
def get_ami_ids(filters: Optional[Sequence[GetAmiIdsFilter]] = None,
names: Optional[Sequence[str]] = None,
opts: Optional[InvokeOptions] = None) -> GetAmiIdsResult
def get_ami_ids_output(filters: Optional[pulumi.Input[Sequence[pulumi.Input[GetAmiIdsFilterArgs]]]] = None,
names: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
opts: Optional[InvokeOptions] = None) -> Output[GetAmiIdsResult]
func GetAmiIds(ctx *Context, args *GetAmiIdsArgs, opts ...InvokeOption) (*GetAmiIdsResult, error)
func GetAmiIdsOutput(ctx *Context, args *GetAmiIdsOutputArgs, opts ...InvokeOption) GetAmiIdsResultOutput
> Note: This function is named GetAmiIds
in the Go SDK.
public static class GetAmiIds
{
public static Task<GetAmiIdsResult> InvokeAsync(GetAmiIdsArgs args, InvokeOptions? opts = null)
public static Output<GetAmiIdsResult> Invoke(GetAmiIdsInvokeArgs args, InvokeOptions? opts = null)
}
public static CompletableFuture<GetAmiIdsResult> getAmiIds(GetAmiIdsArgs args, InvokeOptions options)
// Output-based functions aren't available in Java yet
fn::invoke:
function: aws:autoscaling/getAmiIds:getAmiIds
arguments:
# arguments dictionary
The following arguments are supported:
- Filters
List<Get
Ami Ids Filter> - Filter used to scope the list e.g., by tags. See related docs.
- Names List<string>
- List of autoscaling group names
- Filters
[]Get
Ami Ids Filter - Filter used to scope the list e.g., by tags. See related docs.
- Names []string
- List of autoscaling group names
- filters
List<Get
Ami Ids Filter> - Filter used to scope the list e.g., by tags. See related docs.
- names List<String>
- List of autoscaling group names
- filters
Get
Ami Ids Filter[] - Filter used to scope the list e.g., by tags. See related docs.
- names string[]
- List of autoscaling group names
- filters
Sequence[Get
Ami Ids Filter] - Filter used to scope the list e.g., by tags. See related docs.
- names Sequence[str]
- List of autoscaling group names
- filters List<Property Map>
- Filter used to scope the list e.g., by tags. See related docs.
- names List<String>
- List of autoscaling group names
getAmiIds Result
The following output properties are available:
- Arns List<string>
- List of the Autoscaling Groups Arns in the current region.
- Id string
- The provider-assigned unique ID for this managed resource.
- Names List<string>
- List of the Autoscaling Groups in the current region.
- Filters
List<Get
Ami Ids Filter>
- Arns []string
- List of the Autoscaling Groups Arns in the current region.
- Id string
- The provider-assigned unique ID for this managed resource.
- Names []string
- List of the Autoscaling Groups in the current region.
- Filters
[]Get
Ami Ids Filter
- arns List<String>
- List of the Autoscaling Groups Arns in the current region.
- id String
- The provider-assigned unique ID for this managed resource.
- names List<String>
- List of the Autoscaling Groups in the current region.
- filters
List<Get
Ami Ids Filter>
- arns string[]
- List of the Autoscaling Groups Arns in the current region.
- id string
- The provider-assigned unique ID for this managed resource.
- names string[]
- List of the Autoscaling Groups in the current region.
- filters
Get
Ami Ids Filter[]
- arns Sequence[str]
- List of the Autoscaling Groups Arns in the current region.
- id str
- The provider-assigned unique ID for this managed resource.
- names Sequence[str]
- List of the Autoscaling Groups in the current region.
- filters
Sequence[Get
Ami Ids Filter]
- arns List<String>
- List of the Autoscaling Groups Arns in the current region.
- id String
- The provider-assigned unique ID for this managed resource.
- names List<String>
- List of the Autoscaling Groups in the current region.
- filters List<Property Map>
Supporting Types
GetAmiIdsFilter
Package Details
- Repository
- AWS Classic pulumi/pulumi-aws
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
aws
Terraform Provider.
Try AWS Native preview for resources not in the classic version.