AWS Powershell - 按名称获取 SNS TOPIC
AWS Powershell - Get SNS TOPIC by name
除了对已创建的主题执行以下操作外,我找不到按名称检索 SNS 主题的方法:
$topicarn = New-SNSTopic -Name "$deployedAppVersion-$environment-Events"
上面的问题是,如果我弄错 $deployedAppVersion 它会在不应该创建的 SNS 主题上创建一个。
我一直在寻找 "Get-SNSTopic",但我认为它不存在。我所能看到的唯一替代方法是所有主题的大脏列表,并在其中搜索包含我想要的名称的 arn。
有没有更好的方法?
Get-SNSTopic does exist, but it looks like it maps to the list topics API 和简单的 returns ARN 列表——您所描述的行为。 API 和 CLI 似乎有类似的限制。
您可以通过包装 Get-SNSTopicAttribute 将 arn 分成几部分来在功能上获得您想要的内容:
Function Get-SNSTopicByName
{
param
(
[string]$Region = 'us-east-1',
[string]$AWSAccountNumber = '123456781234',
[string]$TopicName
)
$topicArn = "arn:aws:sns:$($Region):$($AWSAccountNumber):$($TopicName)"
Get-SNSTopicAttribute -TopicArn $topicArn
}
Get-SNSTopicByName -TopicName "my-topic"
Get-SNSTopicAttribute returns 关于该主题的 Dictionary<string, string>
有用信息,如果该主题不存在,也会出错。这似乎更接近你的意思。
您可以通过密钥访问获得单个零件:
PS C:/> $result = Get-SNSTopicByName -TopicName "my-topic"
PS C:/> $result["TopicArn"]
arn:aws:sns:us-east-1:123456781234:my-topic
PS C:/> $result["DisplayName"]
My Test Topic (Dev)
除了对已创建的主题执行以下操作外,我找不到按名称检索 SNS 主题的方法:
$topicarn = New-SNSTopic -Name "$deployedAppVersion-$environment-Events"
上面的问题是,如果我弄错 $deployedAppVersion 它会在不应该创建的 SNS 主题上创建一个。
我一直在寻找 "Get-SNSTopic",但我认为它不存在。我所能看到的唯一替代方法是所有主题的大脏列表,并在其中搜索包含我想要的名称的 arn。
有没有更好的方法?
Get-SNSTopic does exist, but it looks like it maps to the list topics API 和简单的 returns ARN 列表——您所描述的行为。 API 和 CLI 似乎有类似的限制。
您可以通过包装 Get-SNSTopicAttribute 将 arn 分成几部分来在功能上获得您想要的内容:
Function Get-SNSTopicByName
{
param
(
[string]$Region = 'us-east-1',
[string]$AWSAccountNumber = '123456781234',
[string]$TopicName
)
$topicArn = "arn:aws:sns:$($Region):$($AWSAccountNumber):$($TopicName)"
Get-SNSTopicAttribute -TopicArn $topicArn
}
Get-SNSTopicByName -TopicName "my-topic"
Get-SNSTopicAttribute returns 关于该主题的 Dictionary<string, string>
有用信息,如果该主题不存在,也会出错。这似乎更接近你的意思。
您可以通过密钥访问获得单个零件:
PS C:/> $result = Get-SNSTopicByName -TopicName "my-topic"
PS C:/> $result["TopicArn"]
arn:aws:sns:us-east-1:123456781234:my-topic
PS C:/> $result["DisplayName"]
My Test Topic (Dev)