๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป/aws

[AWS] SNS Topics์— ๋“ฑ๋กํ•œ Pending confirmation ์ƒํƒœ์˜ Subscription ์‚ญ์ œ

by ๋ฐ”์ฟ„๋ฆฌ 2024. 8. 7.

๊ฐœ์š”

Amazon SNS์—์„œ Topic์„ ์ƒ์„ฑํ•˜๊ณ  Subscriptions์— email์„ createํ•˜๋Š” ๊ณผ์ •์—์„œ ์˜คํƒ€๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ž˜๋ชป๋œ email์„ ๋“ฑ๋กํ•ด๋ฒ„๋ ธ๋‹ค.

์ด๋ฏธ Request confirmation์ด ๋œ ์ƒํƒœ์ธ๋ฐ, ์ž˜๋ชป๋œ email์ด๋‹ˆ ์ธ์ฆ์ด ์ง„ํ–‰๋˜์ง€ ์•Š์•„์„œ Pending confirmation ๋ผ๋Š” status ๋กœ ์ž”๋ฅ˜ํ•˜๊ณ  ์žˆ๋‹ค.

 

Pending confirmation ์ธ ์ƒํƒœ๊ฐ€ ์žˆ์œผ๋‹ˆ๊นŒ

 

ํ•ด๋‹น Topic์„ ์‚ฌ์šฉํ•˜๋Š” Alarm์—๋„ warning ์ด ํ‘œ์‹œ๋œ๋‹ค.

 

์ง„ํ–‰

1. AWS์—์„œ ๋ฐ”๋กœ ์‚ญ์ œ ์‹œ๋„

 

์‚ญ์ œํ•˜๊ณ  ์‹ถ์€ email์„ ์„ ํƒํ•ด๋„ Edit, Delete ๋ฒ„ํŠผ์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด์„œ ์‚ญ์ œ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค.

 

 

2. python ์Šคํฌ๋ฆฝํŠธ๋กœ ์ ‘๊ทผํ•˜์—ฌ ์‚ญ์ œ ์‹œ๋„

 

์ง์ ‘ ์ ‘๊ทผ์„ ์‹œ๋„ํ•ด์„œ ์‚ญ์ œ ์‹œ๋„

import boto3

# AWS SNS ํด๋ผ์ด์–ธํŠธ ์ƒ์„ฑ
sns_client = boto3.client('sns')

# SNS ์ฃผ์ œ ARN
topic_arn = 'arn:aws:sns:us-east-1:123456789012:MyTopic'

# SNS ์ฃผ์ œ์˜ ๊ตฌ๋… ๋ชฉ๋ก ๊ฐ€์ ธ์˜ค๊ธฐ
response = sns_client.list_subscriptions_by_topic(TopicArn=topic_arn)

# ๊ตฌ๋… ๋ชฉ๋ก์—์„œ PendingConfirmation ์ƒํƒœ์˜ ๊ตฌ๋… ์ฐพ๊ธฐ ๋ฐ ์‚ญ์ œ
for subscription in response['Subscriptions']:
    if subscription['SubscriptionArn'] == 'PendingConfirmation':
        print(f"PendingConfirmation - Endpoint: {subscription['Endpoint']}")
        # ๊ตฌ๋… ์‚ญ์ œ
        sns_client.unsubscribe(SubscriptionArn=subscription['SubscriptionArn'])

print("Done")

 

๋ณธ์ธ์€ CloudShell๋กœ ๋ฐ”๋กœ ์ ‘๊ทผํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ–ˆ๋‹ค.

์œ„ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด

Traceback (most recent call last):
  File "/home/cloudshell-user/delete_sub.py", line 12, in <module>
    sns_client.unsubscribe(SubscriptionArn=subscription['SubscriptionArn'])
  File "/usr/local/lib/python3.9/site-packages/botocore/client.py", line 565, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/usr/local/lib/python3.9/site-packages/botocore/client.py", line 1021, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.InvalidParameterException: An error occurred (InvalidParameter) when calling the Unsubscribe operation: Invalid parameter: SubscriptionArn Reason: An ARN must have at least 6 elements, not 1

 

์‚ญ์ œํ•˜๋ ค๋Š” Subscription์˜ ARN์ด ์•Œ๋งž์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ ๋ง์€ ์ฆ‰, status๊ฐ€ Pending confirmation์ธ subscription์€ ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋ง์ด๋‹ค

 

ํ•˜์ง€๋งŒ ์ € Pending confirmation์„ ๊ณ„์† ๊ฐ€์ง€๊ณ  ๊ฐˆ ์ˆ˜๋Š” ์—†๋Š” ์ผ

 

 

3. AWS Support ๋ฌธ์˜

 

AWS Support์— ๋ฌผ์–ด๋ดค๋‹ค.

 

๊ทผ๋ฐ ...........................................

์—ญ์‹œ ์‚ฌ๋žŒ์€ ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋ด์•ผํ•ด ...

 

Amazon SNS, ์ด์ œ ํ™•์ธ๋˜์ง€ ์•Š์€ ๊ตฌ๋…์˜ ๋” ๋น ๋ฅธ ์ž๋™ ์‚ญ์ œ ์ง€์›

์ด์ œ Amazon Simple Notification Service(SNS)์—์„œ๋Š” ํ™•์ธ๋˜์ง€ ์•Š์€ ๊ตฌ๋…์ด 48์‹œ๊ฐ„ ๋™์•ˆ ํ™•์ธ ๋ณด๋ฅ˜ ์ƒํƒœ์— ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ตฌ๋…์„ ์ž๋™ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ „์— 72์‹œ๊ฐ„์ด๋˜ ํ™•์ธ๋˜์ง€ ์•Š์€

aws.amazon.com

์—ฌ๊ธฐ ๋“ค์–ด๊ฐ€์„œ ๋ณด๋ฉด ...

๊ตฌ๋… ์†Œ์œ ์ž๊ฐ€ ๊ตฌ๋…์„ ํ™•์ธํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ Amazon SNS๋Š” ํ™•์ธ๋˜์ง€ ์•Š์€ ๊ตฌ๋…์„ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
ํ™•์ธ๋˜์ง€ ์•Š์€ ๊ตฌ๋…์˜ 48์‹œ๊ฐ„ ์‚ญ์ œ ๊ธฐ๋Šฅ์€ AWS GovCloud(๋ฏธ๊ตญ) ๋ฆฌ์ „์„ ๋น„๋กฏํ•œ ๋ชจ๋“  AWS ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

email ํ™•์ธ์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์œผ๋ฉด 48์‹œ๊ฐ„ ๋’ค์— ์ž๋™ ์‚ญ์ œ๋œ๋‹ค.

๋‚˜๋Š” ์ž๋™ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ์ง์ ‘ ์‚ญ์ œํ•˜๊ฒ ๋‹ค๊ณ  ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ–ˆ๋‹ค ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹

 

์ด๋ ‡๊ฒŒ ๋ฐฐ์› ์Šต๋‹ˆ๋‹ค.

 

๊ณต์‹๋ฌธ์„œ ์ž˜ ์ฝ๊ฒ ์Šต๋‹ˆ๋‹ค ๐Ÿ˜€