gpt4 book ai didi

c# - 从ARN获取SQS队列名称或URL,或检查ARN是否存在队列

转载 作者:行者123 更新时间:2023-12-02 11:21:19 24 4
gpt4 key购买 nike

AWS文档一致指出,不应通过名称或URL来以编程方式构造ARN,因为不能保证这些字符串的构造方式在时间上是恒定的。

我的问题是,在SQS上,GetQueueAttributes返回的RedrivePolicy属性仅通过ARN引用死信队列。

我目前正在编写一项服务来创建队列并进行设置,或者验证其设置是否正确(如果已经存在)。但是我看不到验证死信队列ARN与现有队列匹配的方法,除非我进行解析以获取名称。有办法解决吗?

(实际上,公平的是,有一种方法可以遵循“不以编程方式解析ARN”规则,该规则包括调用ListQueues然后遍历每个URL调用的GetQueueAttributes的结果,但这听起来很愚蠢,并且如果帐户上的队列超过1000个,则可能会失败,因此不包括这样做)。

当前正在寻找使用C#的解决方案,但该问题与语言无关。

最佳答案

这是为了使用ARN获取队列URL,

queue_name = queue_arn.split(':')[-1]
account_id = queue_arn.split(':')[-2]
sqs_client = boto3.client('sqs')
url = sqs_client.get_queue_url(
QueueName=queue_name,
QueueOwnerAWSAccountId=account_id
)

如果队列存在:
try:
queue = sqs_client.get_queue_by_name(QueueName=queue_name)
except:
print("Queue doesn't exist!")

关于c# - 从ARN获取SQS队列名称或URL,或检查ARN是否存在队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52258656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com