괴발개발 성장기
반응형

사이드 프로젝트 28

[Amazon SQS] 메시지 보관 날짜 시간 설정하는 방법

메시지 보관 날짜 시간 설정하는 방법 우선 aws에 들어간다. Amazon SQS -> 대기열에 들어가면 리스트가 있다. 원하는 sqs를 선택한다. 라디오 버튼을 누른 후 편집을 누르거나 빨간색 체크한 부분을 클릭후 안에서 편집을 누르면 된다. 메시지 보존 기간에서 초, 분, 시간, 일 정할 수 있다. 날짜를 정한다. "1분에서 14일 사이여야 합니다." 그리고 저장하면 된다. 보내고 삭제를 안하면 정해진 기간동안 큐안에서 있는다.

[Amazon SQS] SQS에서 메시지를 받으면 자동 삭제가 되는지?

어제 보낸 메시지가 SQS에 있다. 메시지를 보냈는데도 11개 그대로 있다는 걸 알 수 있었다. 그리고 aws에서도 SQS에 있는 메시지를 삭제하는 코드가 존재했다. func DeleteMessage(sess *session.Session, queueURL *string, messageHandle *string) error { svc := sqs.New(sess) _, err := svc.DeleteMessage(&sqs.DeleteMessageInput{ QueueUrl: queueURL, ReceiptHandle: messageHandle, }) if err != nil { return err } return nil } messageHandle 값이 중요하다. 이 값은 메시지안에 있다. *msgRes..

[Amazon SQS] 한번 SQS를 부를 때 여러개의 메시지가 오나?

메시지를 부를 때 배열을 부른다. *msgResult.Messages[0].Body 여러개의 메시지가 올까? 최소1개에서 최대 10개가 온다고 써있었다. 한번 테스트를 해보자 SQS에 11개의 데이터를 넣어놨다. 그리고 받을 때 메시지 10개를 받는다고 설정을 했다. MaxNumberOfMessages: aws.Int64(10), msgResult, err := service.GetMessages(sess, &queueURL, &timeout) if err != nil { log.Println("Got an error receiving messages:") } if len(msgResult.Messages) != 0 { for i, v:= range msgResult.Messages{ fmt.Printl..

[Amazon SQS] SQS에 있는 메시지를 출력하기

SNS를 통해서 SQS에 메시지가 있다. 그러니까 SQS 안에 있는 메시지를 출력해보자! sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, })) timeout := int64(5) queueURL := "sqs 주소" svc := sqs.New(sess) msgResult, err := svc.ReceiveMessage(&sqs.ReceiveMessageInput{ AttributeNames: []*string{ aws.String(sqs.MessageSystemAttributeNameSentTimestamp), }, MessageAttributeN..

[Amazon SNS] SNS로 메시지 보내기

SNS에 메시지 보내는 코드 func main() { // aws 연결 sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, })) SNSURL := "arn 주소" svc := sns.New(sess) msgPtr := "메시지 내용입니다." messageGroupId := "test" messageDeduplicationId := uuid.New().String() result, err := svc.Publish(&sns.PublishInput{ Message: &msgPtr, TopicArn: &topicArn, MessageGroupId: &mes..

[Amazon SNS] SNS에서 메시지 보낼 때 나는 에러(error) 해결책

SNS로 메시지를 보내는 과정에서 에러가 났다. # 에러 메시지 InvalidParameter: Invalid parameter: The topic should either have ContentBasedDeduplication enabled or MessageDeduplicationId provided explicitly status code: 400, request id: 1) "메시지 중복 제거 켜기"에 체크를 하기 AWS에 들어갔다. SNS에 들어가서 편집을 했다. 2) 코드에 메시지중복ID를 제공한다. "메시지 중복 제거 켜기"를 체크하지 않아서 중복제거 ID를 제공 해야한다. 그래서 코드에 messageDeduplicationId := uuid.New().String() result, err ..

[Amazon SNS] SNS와 SQS 연결하는 방법

1. SNS를 생성한다. 1) 검색창에 "SNS"를 치면 "Simple Notification Service" 클릭하면 된다. 2) 왼쪽 상단 버튼을 클릭하면 아래와 같은 화면이 나온다. 주제를 클릭한다. 3) 주제 생성 버튼을 누른다 4) 세부정보를 작성한다. 5) 아래 주제 생성 버튼을 누른다. 그럼 SNS는 다 만들어졌다. 2. SQS 만들기 1) 검색창에 "SQS"를 치면 "Simple Queue Service" 클릭하면 된다. 2) Amazon SQS들어가서 대기열 생성 버튼을 클릭한다. 2) FIFO 선택하고 이름을 적는다 (반드시 .fifo를 적어야한다) 3) 아무것도 설정하지 않고 바로 아래 "대기열 생성"을 클릭한다. 3. SNS와 SQS를 연결시킨다. 1) SQS 창에서 "Amazon ..

[Amazon SQS] SNS를 통해 FIFO방식으로 SQS에 메시지 보내기

# 배경 이메일 아니라 큐에 메시지를 보내야 했다. 1) FIFO 방식이 아닌 표준방식 SNS만들고 SQS 연결했다. 이 때 메시지가 잘 보내졌다. 2) SNS에서 FIFO방식으로 만들고 FIFO방식의 SQS도 만들어서 연결 시켰다. 그리고 메시지를 보냈다. 3) MessageGroupId가 필요하다고 한다. 정확히 MessageGroupId 의미를 알지도 못했다. 4) MessageGroupId에 임의 값을 넣었다. # 코드 SQS에 메시지를 넣는 코드이다. func SendMessage(sess *session.Session, queueURL *string) error { svc := sqs.New(sess) _, err := svc.SendMessage(&sqs.SendMessageInput{ Me..

[Amazon SNS] SNS 토픽을 구독한 메일로 메시지를 보낸다

메시지를 보내는 코드가 aws 홈페이지에 나와 있었다. 그래서 적용 시켜봤다. 토픽 리스트를 조회해서 내 이메일이 구독한 arn 주소와 메시지 내용을 보내 준다. # 코드 func SendMessage(arn string, svc *sns.SNS) { msgPtr := flag.String("m", "메시지내용", "The message to send to the subscribed users of the topic") topicPtr := flag.String("t", arn, "The ARN of the topic to which the user subscribes") flag.Parse() result, err := svc.Publish(&sns.PublishInput{ Message: msgPtr..

[Amazon SNS] SNS 토픽을 조회한다

내가 가지고 있는 토픽을 조회하려고 한다. # 조회하는 방법 1) sns를 import 한다 github.com/aws/aws-sdk-go/service/sns 2) sess에는 AWS 정보들이 있는 변수 svc := sns.New(sess) 3) 토픽 리스트를 조회할 수 있다. topics, err := svc.ListTopics(nil) # 코드 참조 https://docs.aws.amazon.com/ko_kr/sdk-for-go/v1/developer-guide/making-requests.html Using the AWS SDK for Go with AWS Services - AWS SDK for Go (version 1) Using the AWS SDK for Go with AWS Service..

반응형