자습서: Amazon Simple Notification Service에서 AWS Lambda 사용 - AWS Lambda

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

자습서: Amazon Simple Notification Service에서 AWS Lambda 사용

이 자습서에서는 하나의 AWS 계정에서 Lambda 함수를 사용하여 별도의 AWS 계정에서 Amazon Simple Notification Service(SNS) 주제를 구독합니다. Amazon SNS 주제에 메시지를 게시하면 Lambda 함수가 메시지 내용을 읽고 Amazon Logs에 출력합니다. CloudWatch 이 자습서를 완료하려면 AWS Command Line Interface(AWS CLI)를 사용합니다.


      이 자습서에서 사용되는 서비스를 보여주는 다이어그램: Logs 로그 그룹에 연결된 Lambda 함수에 연결된 Amazon SNS 주제  CloudWatch

이 자습서를 완료하려면 다음 단계를 수행합니다.

  • 계정 A에서 Amazon SNS 주제를 생성합니다.

  • 계정 B에서 주제에서 메시지를 읽을 Lambda 함수를 생성합니다.

  • 계정 B에서 주제에 대한 구독을 생성합니다.

  • 계정 A의 Amazon SNS 주제에 메시지를 게시하고 계정 B의 Lambda 함수가 메시지를 Logs에 출력하는지 확인합니다. CloudWatch

이 단계를 완료하면 Lambda 함수를 간접적으로 호출하도록 Amazon SNS 주제를 구성하는 방법을 배우게 됩니다. 또한 다른 AWS 계정의 리소스가 Lambda를 간접적으로 호출할 수 있는 권한을 부여하는 AWS Identity and Access Management(IAM) 정책을 생성하는 방법도 배웁니다.

이 자습서에서는 2개의 개별 AWS 계정을 사용합니다. AWS CLI 명령은 각각 다른 AWS 계정에서 사용하도록 구성된 accountA와 accountB라는 2개의 명명된 프로파일을 사용하여 이를 설명합니다. 다른 프로파일을 사용하도록 AWS CLI를 구성하는 방법에 대한 자세한 내용은 AWS Command Line Interface - 버전 2 사용 설명서의 구성 및 자격 증명 파일 설정을 참조하세요. 두 프로파일에 대해 동일한 기본 AWS 리전을 구성해야 합니다.

두 AWS 계정에 대해 생성하는 AWS CLI 프로파일이 서로 다른 이름을 사용하거나 기본 프로파일과 하나의 명명된 프로파일을 사용하는 경우 필요에 따라 다음 단계에서 AWS CLI 명령을 수정합니다.

사전 조건

AWS 계정 항목이 없으면 다음 절차에 따라 생성하십시오.

AWS 계정에 가입하려면
  1. https://portal.aws.amazon.com/billing/signup을 엽니다.

  2. 온라인 지시 사항을 따릅니다.

    가입 절차 중 전화를 받고 전화 키패드로 확인 코드를 입력하는 과정이 있습니다.

    AWS 계정에 가입하면 AWS 계정 루트 사용자이(가) 생성됩니다. 루트 사용자에게는 계정의 모든 AWS 서비스및 리소스에 액세스하는 권한이 있습니다. 보안 모범 사례는 관리 사용자에게 관리자 액세스 권한을 할당하고, 루트 사용자만 루트 사용자 액세스 권한이 필요한 작업을 수행하는 것입니다.

가입 프로세스가 완료되면 AWS가 확인 이메일을 전송합니다. 언제든지 https://aws.amazon.com/으로 이동하고 내 계정을 선택하여 현재 계정 활동을 보고 계정을 관리할 수 있습니다.

AWS 계정에 가입하고 AWS 계정 루트 사용자를 보안하며 AWS IAM Identity Center을 활성화하고 일상적인 작업에 루트 사용자를 사용하지 않도록 관리 사용자를 생성합니다.

귀하의 AWS 계정 루트 사용자 보호
  1. 루트 사용자를 선택하고 AWS 계정이메일 주소를 입력하여 AWS Management Console에 계정 소유자로 로그인합니다. 다음 페이지에서 암호를 입력합니다.

    루트 사용자를 사용하여 로그인하는 데 도움이 필요하면 AWS 로그인 사용 설명서루트 사용자로 로그인을 참조하십시오.

  2. 루트 사용자에 대해 다중 인증(MFA)을 활성화합니다.

    지침은 IAM 사용 설명서AWS 계정 루트 사용자용 가상 MFA 디바이스 활성화(콘솔)를 참조하십시오.

관리 사용자 생성
  1. IAM Identity Center를 활성화합니다.

    지침은 AWS IAM Identity Center 사용 설명서에서 Enabling AWS IAM Identity Center를 참조하세요.

  2. IAM Identity Center에서 관리 사용자에게 관리 액세스 권한을 부여합니다.

    IAM Identity Center 디렉터리를 ID 소스로 사용하는 방법에 대한 자습서는 AWS IAM Identity Center 사용 설명서의 Configure user access with the default IAM Identity Center 디렉터리를 참조하세요.

관리 사용자로 로그인
  • IAM 자격 증명 센터 사용자로 로그인하려면 IAM 자격 증명 센터 사용자를 생성할 때 이메일 주소로 전송된 로그인 URL을 사용합니다.

    IAM Identity Center 사용자로 로그인하는 데 도움이 필요한 경우 AWS 로그인 사용 설명서AWS 액세스 포털에 로그인을 참조하십시오.

아직 AWS Command Line Interface를 설치하지 않은 경우 AWS CLI의 최신 버전 설치 또는 업데이트에서 설명하는 단계에 따라 설치하세요.

이 자습서에서는 명령을 실행할 셸 또는 명령줄 터미널이 필요합니다. Linux 및 macOS에서는 선호하는 셸과 패키지 관리자를 사용합니다.

참고

Windows에서는 Lambda와 함께 일반적으로 사용하는 일부 Bash CLI 명령(예:zip)은 운영 체제의 기본 제공 터미널에서 지원되지 않습니다. Ubuntu와 Bash의 Windows 통합 버전을 가져오려면 Linux용 Windows Subsystem을 설치합니다.

Amazon SNS 주제 생성(계정 A)


        Amazon SNS 주제를 생성하는 주제 단계에 있음을 보여주는 자습서 워크플로 다이어그램
주제를 생성하려면
  • 계정 A에서 다음 AWS CLI 명령을 사용하여 Amazon SNS 표준 주제를 생성합니다.

    aws sns create-topic --name sns-topic-for-lambda --profile accountA

    다음과 유사한 출력 화면이 표시되어야 합니다.

    { "TopicArn": "arn:aws:sns:us-west-2:123456789012:sns-topic-for-lambda" }

    주제의 Amazon 리소스 이름(ARN)을 기록해 둡니다. 이는 나중에 자습서에서 주제를 구독하기 위해 Lambda 함수에 권한을 추가할 때 필요합니다.

함수 실행 역할 생성(계정 B)


        실행 역할을 생성하는 함수 단계에 있음을 보여주는 자습서 워크플로 다이어그램.

실행 역할은 AWS 서비스 및 리소스에 액세스할 수 있는 권한을 Lambda 함수에 부여하는 IAM 역할입니다. 계정 B에서 함수를 생성하기 전에 Logs에 로그를 기록할 수 있는 기본 권한을 함수에 부여하는 역할을 생성합니다. CloudWatch Amazon SNS 주제에서 읽을 수 있는 권한은 이후 단계에서 추가하겠습니다.

실행 역할을 만들려면
  1. 계정 B의 IAM 콘솔에서 역할 페이지를 엽니다.

  2. 역할 생성을 선택합니다.

  3. 신뢰할 수 있는 엔터티 유형에서 AWS 서비스를 선택합니다.

  4. 사용 사례에서 Lambda를 선택합니다.

  5. 다음을 선택합니다.

  6. 다음을 수행하여 역할에 기본 권한 정책을 추가합니다.

    1. 권한 정책 검색 상자에 AWSLambdaBasicExecutionRole을 입력합니다.

    2. 다음을 선택합니다.

  7. 다음을 수행하여 역할 생성을 마무리합니다.

    1. 역할 세부 정보의 역할 이름에 lambda-sns-role을 입력합니다.

    2. 역할 생성을 선택합니다.

Lambda 함수 생성(계정 B)


        함수를 생성하는 함수 단계에 있음을 보여주는 자습서 워크플로 다이어그램.

Amazon SNS 메시지를 처리하는 Lambda 함수를 생성합니다. 함수 코드는 각 레코드의 메시지 콘텐츠를 Amazon Logs에 CloudWatch 기록합니다.

이 자습서에서는 Node.js 18.x 런타임을 사용하지만 다른 런타임 언어의 예제 코드도 제공했습니다. 다음 상자에서 탭을 선택하여 관심 있는 런타임에 대한 코드를 볼 수 있습니다. 이 단계에서 사용할 JavaScript 코드는 JavaScript탭에 표시된 첫 번째 예제에 있습니다.

.NET
AWS SDK for .NET
참고

더 많은 정보가 있습니다 GitHub. 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

.NET을 사용하여 Lambda로 SNS 이벤트를 사용합니다.

using Amazon.Lambda.Core; using Amazon.Lambda.SNSEvents; // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))] namespace SnsIntegration; public class Function { public async Task FunctionHandler(SNSEvent evnt, ILambdaContext context) { foreach (var record in evnt.Records) { await ProcessRecordAsync(record, context); } context.Logger.LogInformation("done"); } private async Task ProcessRecordAsync(SNSEvent.SNSRecord record, ILambdaContext context) { try { context.Logger.LogInformation($"Processed record {record.Sns.Message}"); // TODO: Do interesting work based on the new message await Task.CompletedTask; } catch (Exception e) { //You can use Dead Letter Queue to handle failures. By configuring a Lambda DLQ. context.Logger.LogError($"An error occurred"); throw; } } }
Go
SDK for Go V2
참고

더 많은 것이 있어요 GitHub. 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

Go를 사용하여 Lambda로 SNS 이벤트를 사용합니다.

package main import ( "context" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) func handler(ctx context.Context, snsEvent events.SNSEvent) { for _, record := range snsEvent.Records { processMessage(record) } fmt.Println("done") } func processMessage(record events.SNSEventRecord) { message := record.SNS.Message fmt.Printf("Processed message: %s\n", message) // TODO: Process your record here } func main() { lambda.Start(handler) }
Java
Java 2.x SDK
참고

더 많은 것이 있어요 GitHub. 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

Java를 사용하여 Lambda와 함께 SNS 이벤트를 사용합니다.

package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.events.SNSEvent; import com.amazonaws.services.lambda.runtime.events.SNSEvent.SNSRecord; import java.util.Iterator; import java.util.List; public class SNSEventHandler implements RequestHandler<SNSEvent, Boolean> { LambdaLogger logger; @Override public Boolean handleRequest(SNSEvent event, Context context) { logger = context.getLogger(); List<SNSRecord> records = event.getRecords(); if (!records.isEmpty()) { Iterator<SNSRecord> recordsIter = records.iterator(); while (recordsIter.hasNext()) { processRecord(recordsIter.next()); } } return Boolean.TRUE; } public void processRecord(SNSRecord record) { try { String message = record.getSNS().getMessage(); logger.log("message: " + message); } catch (Exception e) { throw new RuntimeException(e); } } }
JavaScript
(v2) 용 JavaScript SDK
참고

더 많은 내용이 있습니다. GitHub 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

Lambda를 사용하여 SNS 이벤트를 소비합니다. JavaScript

exports.handler = async (event, context) => { for (const record of event.Records) { await processMessageAsync(record); } console.info("done"); }; async function processMessageAsync(record) { try { const message = JSON.stringify(record.Sns.Message); console.log(`Processed message ${message}`); await Promise.resolve(1); //Placeholder for actual async work } catch (err) { console.error("An error occurred"); throw err; } }

Lambda를 사용하여 SNS 이벤트를 소비합니다. TypeScript

import { SNSEvent, Context, SNSHandler, SNSEventRecord } from "aws-lambda"; export const functionHandler: SNSHandler = async ( event: SNSEvent, context: Context ): Promise<void> => { for (const record of event.Records) { await processMessageAsync(record); } console.info("done"); }; async function processMessageAsync(record: SNSEventRecord): Promise<any> { try { const message: string = JSON.stringify(record.Sns.Message); console.log(`Processed message ${message}`); await Promise.resolve(1); //Placeholder for actual async work } catch (err) { console.error("An error occurred"); throw err; } }
PHP
SDK for PHP
참고

더 많은 정보가 있습니다. GitHub 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

PHP를 사용하여 Lambda로 SNS 이벤트를 사용합니다.

<?php /* Since native PHP support for AWS Lambda is not available, we are utilizing Bref's PHP functions runtime for AWS Lambda. For more information on Bref's PHP runtime for Lambda, refer to: https://bref.sh/docs/runtimes/function Another approach would be to create a custom runtime. A practical example can be found here: https://aws.amazon.com/blogs/apn/aws-lambda-custom-runtime-for-php-a-practical-example/ */ // Additional composer packages may be required when using Bref or any other PHP functions runtime. // require __DIR__ . '/vendor/autoload.php'; return function ($event, $context) { foreach ($event["Records"] as $record) { processMessage($record); } echo "Done!" . PHP_EOL; }; function processMessage($record) { try { $message = $record['Sns']['Message']; echo "Processed Message: {$message}" . PHP_EOL; } catch (Exception $e) { echo "Error occured: {$e->getMessage()}" . PHP_EOL; throw $e; } }
Python
SDK for Python (Boto3)
참고

더 많은 것이 있어요 GitHub. 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

Python을 사용하여 Lambda로 SNS 이벤트를 사용합니다.

def lambda_handler(event, context): for record in event['Records']: process_message(record) print("done") def process_message(record): try: message = record['Sns']['Message'] print(f"Processed message {message}") # TODO; Process your record here except Exception as e: print("An error occurred") raise e
Ruby
SDK for Ruby
참고

더 많은 것이 있어요 GitHub. 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

Ruby를 사용하여 Lambda와 함께 SNS 이벤트를 사용합니다.

def lambda_handler(event:, context:) event['Records'].map { |record| process_message(record) } end def process_message(record) message = record['Sns']['Message'] puts("Processing message: #{message}") rescue StandardError => e puts("Error processing message: #{e}") raise end
Rust
SDK for Rust
참고

더 많은 정보가 있습니다. GitHub 서버리스 예제 리포지토리에서 전체 예제를 찾아보고 설정 및 실행 방법을 알아봅니다.

Rust를 사용하여 Lambda로 SNS 이벤트를 사용합니다.

use aws_lambda_events::event::sns::SnsEvent; use aws_lambda_events::sns::SnsRecord; use lambda_runtime::{run, service_fn, Error, LambdaEvent}; use tracing::info; // Built with the following dependencies: // aws_lambda_events = { version = "0.10.0", default-features = false, features = ["sns"] } // lambda_runtime = "0.8.1" // tokio = { version = "1", features = ["macros"] } // tracing = { version = "0.1", features = ["log"] } // tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt"] } async fn function_handler(event: LambdaEvent<SnsEvent>) -> Result<(), Error> { for event in event.payload.records { process_record(&event)?; } Ok(()) } fn process_record(record: &SnsRecord) -> Result<(), Error> { info!("Processing SNS Message: {}", record.sns.message); // Implement your record handling code here. Ok(()) } #[tokio::main] async fn main() -> Result<(), Error> { tracing_subscriber::fmt() .with_max_level(tracing::Level::INFO) .with_target(false) .without_time() .init(); run(service_fn(function_handler)).await }
함수를 만들려면
  1. 프로젝트에 대한 디렉터리를 생성하고 해당 디렉터리로 전환합니다.

    mkdir sns-tutorial cd sns-tutorial
  2. 샘플 JavaScript 코드를 라는 새 파일에 index.js 복사합니다.

  3. 다음 zip 명령을 사용하여 배포 패키지를 생성합니다.

    zip function.zip index.js
  4. 다음 AWS CLI 명령을 실행하여 계정 B에서 Lambda 함수를 생성합니다.

    aws lambda create-function --function-name Function-With-SNS \ --zip-file fileb://function.zip --handler index.handler --runtime nodejs18.x \ --role arn:aws:iam::<AccountB_ID>:role/lambda-sns-role \ --timeout 60 --profile accountB

    다음과 유사한 출력 화면이 표시되어야 합니다.

    { "FunctionName": "Function-With-SNS", "FunctionArn": "arn:aws:lambda:us-west-2:123456789012:function:Function-With-SNS", "Runtime": "nodejs18.x", "Role": "arn:aws:iam::123456789012:role/lambda_basic_role", "Handler": "index.handler", ... "RuntimeVersionConfig": { "RuntimeVersionArn": "arn:aws:lambda:us-west-2::runtime:7d5f06b69c951da8a48b926ce280a9daf2e8bb1a74fc4a2672580c787d608206" } }
  5. 함수의 Amazon 리소스 이름(ARN)을 기록합니다. 이는 나중에 자습서에서 Amazon SNS에 함수를 간접적으로 호출할 권한을 추가할 때 필요합니다.

함수에 권한 추가(계정 B)


        권한을 추가하는 함수 단계에 있음을 보여주는 자습서 워크플로 다이어그램

Amazon SNS가 함수를 간접적으로 호출하려면 리소스 기반 정책의 문에서 권한을 부여해야 합니다. AWS CLI add-permission 명령을 사용하여 이 문을 추가합니다.

Amazon SNS에 함수를 간접적으로 호출할 수 있는 권한 부여
  • 계정 B에서 이전에 기록한 Amazon SNS 주제의 ARN을 사용하여 다음 AWS CLI 명령을 실행합니다.

    aws lambda add-permission --function-name Function-With-SNS \ --source-arn arn:aws:sns:us-east-1:<AccountA_ID>:sns-topic-for-lambda \ --statement-id function-with-sns --action "lambda:InvokeFunction" \ --principal sns.amazonaws.com --profile accountB

    다음과 유사한 출력 화면이 표시되어야 합니다.

    { "Statement": "{\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\": \"arn:aws:sns:us-east-1:<AccountA_ID>:sns-topic-for-lambda\"}}, \"Action\":[\"lambda:InvokeFunction\"], \"Resource\":\"arn:aws:lambda:us-east-1:<AccountB_ID>:function:Function-With-SNS\", \"Effect\":\"Allow\",\"Principal\":{\"Service\":\"sns.amazonaws.com\"}, \"Sid\":\"function-with-sns\"}" }
참고

Amazon SNS 주제가 있는 계정이 옵트인 AWS 리전에서 호스팅되는 경우 보안 주체에서 리전을 지정해야 합니다. 예를 들어, 아시아 태평양(홍콩) 리전에서 Amazon SNS 주제를 사용하는 경우 보안 주체에 대해 sns.amazonaws.com 대신 sns.ap-east-1.amazonaws.com을 지정해야 합니다.

Amazon SNS 구독을 위한 크로스 계정 권한 부여(계정 A)


        권한을 부여하는 구독 단계에 있음을 보여주는 자습서 워크플로 다이어그램

계정 B의 Lambda 함수가 계정 A에서 생성한 Amazon SNS 주제를 구독할 수 있도록 계정 B에 주제를 구독할 수 있는 권한을 부여해야 합니다. AWS CLI add-permission 명령을 사용하여 이 권한을 부여합니다.

계정 B가 주제를 구독할 수 있는 권한 부여
  • 계정 A에서 다음 AWS CLI 명령을 실행합니다. 이전에 기록한 Amazon SNS 주제의 ARN을 사용합니다.

    aws sns add-permission --label lambda-access --aws-account-id <AccountB_ID> \ --topic-arn arn:aws:sns:us-east-1:<AccountA_ID>:sns-topic-for-lambda \ --action-name Subscribe ListSubscriptionsByTopic --profile accountA

구독 생성(계정 B)


      구독을 생성하는 구독 단계에 있음을 보여주는 자습서 워크플로 다이어그램

이제 계정 B에서 계정 A의 자습서 시작 부분에서 생성한 Amazon SNS 주제에 대한 Lambda 함수를 구독합니다. 이 주제(sns-topic-for-lambda)로 메시지가 전송되면 Amazon SNS는 계정 B에서 Lambda 함수 Function-With-SNS를 호출합니다.

구독 생성
  • 계정 B에서 다음 AWS CLI 명령을 실행합니다. 주제를 생성한 기본 리전과 주제 및 Lambda 함수의 ARN을 사용합니다.

    aws sns subscribe --protocol lambda \ --region us-east-1 \ --topic-arn arn:aws:sns:us-east-1:<AccountA_ID>:sns-topic-for-lambda \ --notification-endpoint arn:aws:lambda:us-east-1:<AccountB_ID>:function:Function-With-SNS \ --profile accountB

    다음과 유사한 출력 화면이 표시되어야 합니다.

    { "SubscriptionArn": "arn:aws:sns:us-east-1:<AccountA_ID>:sns-topic-for-lambda:5d906xxxx-7c8x-45dx-a9dx-0484e31c98xx" }

주제에 메시지 게시(계정 A 및 계정 B)


        메시지를 게시하는 게시 단계에 있음을 보여주는 자습서 워크플로 다이어그램

이제 계정 B의 Lambda 함수가 계정 A의 Amazon SNS 주제를 구독하므로 주제에 메시지를 게시하여 설정을 테스트할 차례입니다. Amazon SNS가 Lambda 함수를 호출했는지 확인하려면 로그를 CloudWatch 사용하여 함수 출력을 확인합니다.

주제에 메시지 게시 및 함수의 출력 보기
  1. 텍스트 파일에 Hello World를 입력하고 message.txt로 저장합니다.

  2. 텍스트 파일을 저장한 디렉터리와 동일한 디렉터리에서 계정 A의 다음 AWS CLI 명령을 실행합니다. 사용자 주제의 ARN을 사용합니다.

    aws sns publish --message file://message.txt --subject Test \ --topic-arn arn:aws:sns:us-east-1:<AccountA_ID>:sns-topic-for-lambda \ --profile accountA

    그러면 Amazon SNS가 메시지를 수락했음을 나타내는 고유 식별자가 포함된 메시지 ID가 반환됩니다. Amazon SNS는 주제의 구독자에게 메시지를 전달하려고 시도합니다. Amazon SNS가 Lambda 함수를 호출했는지 확인하려면 로그를 CloudWatch 사용하여 함수 출력을 확인하십시오.

  3. 계정 B에서 Amazon CloudWatch 콘솔의 로그 그룹 페이지를 엽니다.

  4. 함수에 대한 로그 그룹(/aws/lambda/Function-With-SNS)을 선택합니다.

  5. 최신 로그 스트림을 선택합니다.

  6. 함수가 간접적으로 제대로 호출되면 주제에 게시한 메시지의 내용을 보여주는 다음과 유사한 출력이 표시됩니다.

    2023-07-31T21:42:51.250Z c1cba6b8-ade9-4380-aa32-d1a225da0e48 INFO Processed message Hello World 2023-07-31T21:42:51.250Z c1cba6b8-ade9-4380-aa32-d1a225da0e48 INFO done

리소스 정리

이 자습서 용도로 생성한 리소스를 보관하고 싶지 않다면 지금 삭제할 수 있습니다. 더 이상 사용하지 않는 AWS 리소스를 삭제하면 AWS 계정에 불필요한 요금이 발생하는 것을 방지할 수 있습니다.

계정 A에서 Amazon SNS 주제를 정리합니다.

Amazon SNS 주제를 삭제하려면
  1. Amazon SNS 콘솔의 주제 페이지를 엽니다.

  2. 생성한 주제를 선택합니다.

  3. Delete를 선택합니다.

  4. 텍스트 입력 필드에 delete me을 입력합니다.

  5. Delete를 선택합니다.

계정 B에서 실행 역할, Lambda 함수 및 Amazon SNS 구독을 정리합니다.

집행 역할 삭제
  1. IAM 콘솔에서 역할 페이지를 엽니다.

  2. 생성한 실행 역할을 선택합니다.

  3. Delete를 선택합니다.

  4. 텍스트 입력 필드에 역할의 이름을 입력하고 Delete(삭제)를 선택합니다.

Lambda 함수를 삭제하려면
  1. Lambda 콘솔의 함수 페이지를 엽니다.

  2. 생성한 함수를 선택합니다.

  3. 작업, 삭제를 선택합니다.

  4. 텍스트 입력 필드에 delete를 입력하고 Delete(삭제)를 선택합니다.

Amazon SNS 구독을 삭제하려면
  1. Amazon SNS 콘솔의 구독 페이지를 엽니다.

  2. 생성한 구독을 선택합니다.

  3. 삭제(Delete)삭제(Delete)를 차례로 선택합니다.