getTopics

This data source provides a list of ONS Topics in an Alibaba Cloud account according to the specified filters.

NOTE: Available in 1.53.0+

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "onsInstanceName";
const topic = config.get("topic") || "onsTopicDatasourceName";
const _default = new alicloud.rocketmq.Instance("default", {
instanceName: name,
remark: "default_ons_instance_remark",
});
const defaultTopic = new alicloud.rocketmq.Topic("default", {
topicName: topic,
instanceId: _default.id,
messageType: 0,
remark: "dafault_ons_topic_remark",
});
const topicsDs = alicloud.rocketmq.getTopicsOutput({
instanceId: defaultTopic.instanceId,
nameRegex: topic,
outputFile: "topics.txt",
});
export const firstTopicName = topicsDs.apply(topicsDs => topicsDs.topics?.[0]?.topicName);
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "onsInstanceName"
topic = config.get("topic")
if topic is None:
topic = "onsTopicDatasourceName"
default = alicloud.rocketmq.Instance("default",
instance_name=name,
remark="default_ons_instance_remark")
default_topic = alicloud.rocketmq.Topic("default",
topic_name=topic,
instance_id=default.id,
message_type=0,
remark="dafault_ons_topic_remark")
topics_ds = alicloud.rocketmq.get_topics_output(instance_id=default_topic.instance_id,
name_regex=topic,
output_file="topics.txt")
pulumi.export("firstTopicName", topics_ds.topics[0].topic_name)
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "onsInstanceName";
var topic = config.Get("topic") ?? "onsTopicDatasourceName";
var @default = new AliCloud.RocketMQ.Instance("default", new()
{
InstanceName = name,
Remark = "default_ons_instance_remark",
});
var defaultTopic = new AliCloud.RocketMQ.Topic("default", new()
{
TopicName = topic,
InstanceId = @default.Id,
MessageType = 0,
Remark = "dafault_ons_topic_remark",
});
var topicsDs = AliCloud.RocketMQ.GetTopics.Invoke(new()
{
InstanceId = defaultTopic.InstanceId,
NameRegex = topic,
OutputFile = "topics.txt",
});
return new Dictionary<string, object?>
{
["firstTopicName"] = topicsDs&#46;Apply(getTopicsResult => getTopicsResult&#46;Topics[0]?.TopicName),
};
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/rocketmq"
"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 := "onsInstanceName"
if param := cfg.Get("name"); param != "" {
name = param
}
topic := "onsTopicDatasourceName"
if param := cfg.Get("topic"); param != "" {
topic = param
}
_default, err := rocketmq.NewInstance(ctx, "default", &rocketmq.InstanceArgs{
InstanceName: pulumi.String(name),
Remark: pulumi.String("default_ons_instance_remark"),
})
if err != nil {
return err
}
defaultTopic, err := rocketmq.NewTopic(ctx, "default", &rocketmq.TopicArgs{
TopicName: pulumi.String(topic),
InstanceId: _default.ID(),
MessageType: pulumi.Int(0),
Remark: pulumi.String("dafault_ons_topic_remark"),
})
if err != nil {
return err
}
topicsDs := rocketmq.GetTopicsOutput(ctx, rocketmq.GetTopicsOutputArgs{
InstanceId: defaultTopic.InstanceId,
NameRegex: pulumi.String(topic),
OutputFile: pulumi.String("topics.txt"),
}, nil)
ctx.Export("firstTopicName", topicsDs.ApplyT(func(topicsDs rocketmq.GetTopicsResult) (*string, error) {
return &topicsDs.Topics[0].TopicName, 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.rocketmq.Instance;
import com.pulumi.alicloud.rocketmq.InstanceArgs;
import com.pulumi.alicloud.rocketmq.Topic;
import com.pulumi.alicloud.rocketmq.TopicArgs;
import com.pulumi.alicloud.rocketmq.RocketmqFunctions;
import com.pulumi.alicloud.rocketmq.inputs.GetTopicsArgs;
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("onsInstanceName");
final var topic = config.get("topic").orElse("onsTopicDatasourceName");
var default_ = new Instance("default", InstanceArgs.builder()
.instanceName(name)
.remark("default_ons_instance_remark")
.build());
var defaultTopic = new Topic("defaultTopic", TopicArgs.builder()
.topicName(topic)
.instanceId(default_.id())
.messageType(0)
.remark("dafault_ons_topic_remark")
.build());
final var topicsDs = RocketmqFunctions.getTopics(GetTopicsArgs.builder()
.instanceId(defaultTopic.instanceId())
.nameRegex(topic)
.outputFile("topics.txt")
.build());
ctx.export("firstTopicName", topicsDs.applyValue(getTopicsResult -> getTopicsResult).applyValue(topicsDs -> topicsDs.applyValue(getTopicsResult -> getTopicsResult.topics()[0].topicName())));
}
}
configuration:
name:
type: string
default: onsInstanceName
topic:
type: string
default: onsTopicDatasourceName
resources:
default:
type: alicloud:rocketmq:Instance
properties:
instanceName: ${name}
remark: default_ons_instance_remark
defaultTopic:
type: alicloud:rocketmq:Topic
name: default
properties:
topicName: ${topic}
instanceId: ${default.id}
messageType: 0
remark: dafault_ons_topic_remark
variables:
topicsDs:
fn::invoke:
function: alicloud:rocketmq:getTopics
arguments:
instanceId: ${defaultTopic.instanceId}
nameRegex: ${topic}
outputFile: topics.txt
outputs:
firstTopicName: ${topicsDs.topics[0].topicName}

Return

A collection of values returned by getTopics.

Parameters

argument

A collection of arguments for invoking getTopics.


suspend fun getTopics(enableDetails: Boolean? = null, ids: List<String>? = null, instanceId: String, nameRegex: String? = null, outputFile: String? = null, tags: Map<String, String>? = null): GetTopicsResult

Return

A collection of values returned by getTopics.

Parameters

enableDetails
ids

A list of topic IDs to filter results.

instanceId

ID of the ONS Instance that owns the topics.

nameRegex

A regex string to filter results by the topic name.

outputFile

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

tags

A map of tags assigned to the Ons instance.

See also


suspend fun getTopics(argument: suspend GetTopicsPlainArgsBuilder.() -> Unit): GetTopicsResult

Return

A collection of values returned by getTopics.

Parameters

argument

Builder for com.pulumi.alicloud.rocketmq.kotlin.inputs.GetTopicsPlainArgs.

See also