AWS Classic

Pulumi Official
Package maintained by Pulumi
v5.9.2 published on Friday, Jun 24, 2022 by Pulumi

getAmiIds

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

using Pulumi;
using Aws = Pulumi.Aws;

class MyStack : Stack
{
    public MyStack()
    {
        var groups = Output.Create(Aws.AutoScaling.GetAmiIds.InvokeAsync(new Aws.AutoScaling.GetAmiIdsArgs
        {
            Filters = 
            {
                new Aws.AutoScaling.Inputs.GetAmiIdsFilterArgs
                {
                    Name = "tag:Team",
                    Values = 
                    {
                        "Pets",
                    },
                },
                new Aws.AutoScaling.Inputs.GetAmiIdsFilterArgs
                {
                    Name = "tag-key",
                    Values = 
                    {
                        "Environment",
                    },
                },
            },
        }));
        var slackNotifications = new Aws.AutoScaling.Notification("slackNotifications", new Aws.AutoScaling.NotificationArgs
        {
            GroupNames = groups.Apply(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",
        });
    }

}
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v5/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{
				autoscaling.GetAmiIdsFilter{
					Name: "tag:Team",
					Values: []string{
						"Pets",
					},
				},
				autoscaling.GetAmiIdsFilter{
					Name: "tag-key",
					Values: []string{
						"Environment",
					},
				},
			},
		}, nil)
		if err != nil {
			return err
		}
		_, err = autoscaling.NewNotification(ctx, "slackNotifications", &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
	})
}
package generated_program;

import java.util.*;
import java.io.*;
import java.nio.*;
import com.pulumi.*;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        final var groups = Output.of(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.apply(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());

    }
}
import pulumi
import pulumi_aws as aws

groups = aws.autoscaling.get_ami_ids(filters=[
    aws.autoscaling.GetAmiIdsFilterArgs(
        name="tag:Team",
        values=["Pets"],
    ),
    aws.autoscaling.GetAmiIdsFilterArgs(
        name="tag-key",
        values=["Environment"],
    ),
])
slack_notifications = aws.autoscaling.Notification("slackNotifications",
    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")
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("slackNotifications", {
    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",
});
resources:
  slackNotifications:
    type: aws:autoscaling:Notification
    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<GetAmiIdsFilter>

A filter used to scope the list e.g., by tags. See related docs.

Names List<string>

A list of autoscaling group names

Filters []GetAmiIdsFilter

A filter used to scope the list e.g., by tags. See related docs.

Names []string

A list of autoscaling group names

filters List<GetAmiIdsFilter>

A filter used to scope the list e.g., by tags. See related docs.

names List<String>

A list of autoscaling group names

filters GetAmiIdsFilter[]

A filter used to scope the list e.g., by tags. See related docs.

names string[]

A list of autoscaling group names

filters Sequence[GetAmiIdsFilter]

A filter used to scope the list e.g., by tags. See related docs.

names Sequence[str]

A list of autoscaling group names

filters List<Property Map>

A filter used to scope the list e.g., by tags. See related docs.

names List<String>

A list of autoscaling group names

getAmiIds Result

The following output properties are available:

Arns List<string>

A list of the Autoscaling Groups Arns in the current region.

Id string

The provider-assigned unique ID for this managed resource.

Names List<string>

A list of the Autoscaling Groups in the current region.

Filters List<GetAmiIdsFilter>
Arns []string

A list of the Autoscaling Groups Arns in the current region.

Id string

The provider-assigned unique ID for this managed resource.

Names []string

A list of the Autoscaling Groups in the current region.

Filters []GetAmiIdsFilter
arns List<String>

A list of the Autoscaling Groups Arns in the current region.

id String

The provider-assigned unique ID for this managed resource.

names List<String>

A list of the Autoscaling Groups in the current region.

filters List<GetAmiIdsFilter>
arns string[]

A list of the Autoscaling Groups Arns in the current region.

id string

The provider-assigned unique ID for this managed resource.

names string[]

A list of the Autoscaling Groups in the current region.

filters GetAmiIdsFilter[]
arns Sequence[str]

A list of the Autoscaling Groups Arns in the current region.

id str

The provider-assigned unique ID for this managed resource.

names Sequence[str]

A list of the Autoscaling Groups in the current region.

filters Sequence[GetAmiIdsFilter]
arns List<String>

A list of the Autoscaling Groups Arns in the current region.

id String

The provider-assigned unique ID for this managed resource.

names List<String>

A list of the Autoscaling Groups in the current region.

filters List<Property Map>

Supporting Types

GetAmiIdsFilter

Name string

The name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>

Values List<string>

The value of the filter.

Name string

The name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>

Values []string

The value of the filter.

name String

The name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>

values List<String>

The value of the filter.

name string

The name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>

values string[]

The value of the filter.

name str

The name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>

values Sequence[str]

The value of the filter.

name String

The name of the DescribeAutoScalingGroup filter. The recommended values are: tag-key, tag-value, and tag:<tag name>

values List<String>

The value of the filter.

Package Details

Repository
https://github.com/pulumi/pulumi-aws
License
Apache-2.0
Notes

This Pulumi package is based on the aws Terraform Provider.