์ด ํ์ด์ง๋ ์์
์ฐ ์๋ํ ์์
์นดํ๋ก๊ทธ์์ ์ฌ์ฉํ ์ ์๋ AWS SQS ์์
์ ๋ํ ํฌ๊ด์ ์ธ ์ฐธ์กฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์์
์ ํตํด SQS ํ ์์
์ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ ์ ์กฐ๊ฑด ๋ธ๋ฆฌ์๋ ์๋ํ์์ AWS ์์
์ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์ ์ฌํญ์ด ์๋์ง ํ์ธํ์ธ์.
์ ์ ํ ๊ถํ์ด ์๋ AWS ๊ณ์ . AWS ์๊ฒฉ ์ฆ๋ช
์ด ๊ตฌ์ฑ๋์์ต๋๋ค(IAM ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช
, IAM ์ญํ ARN ๋๋ ์ธ์
์๊ฒฉ ์ฆ๋ช
). ์ฌ์ฉํ๋ ค๋ ํน์ AWS ์๋น์ค์ ํ์ํ IAM ๊ถํ์
๋๋ค. IAM ์ฌ์ฉ์ ๋ฐ IAM ์ญํ ์ ์์ฑํ๋ ๋ฐฉ๋ฒ๊ณผ AWS ์์
์๋ํ์์ ํตํฉ์ ์ํ ์ ์ ๋ฐ ์ธ์
AWS ์๊ฒฉ ์ฆ๋ช
์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ AWS ์๊ฒฉ ์ฆ๋ช
์ค์ ํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
AWS SQS ๋๊ธฐ์ด์ ๋ฉ์์ง ๋ณด๋ด๊ธฐ ์ง์ ๋ Amazon SQS ๋๊ธฐ์ด๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋
๋๋ค.
์
๋ ฅ ์ถ๋ ฅ ์์
์
๋ ฅ ํ๋
์ ํ์ฑ
์ ํ
์์
awsRoleArn
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
arn:aws:iam::123456789012:role/my-workflow-role
awsAccessKeyId
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
${{ :secrets:<awsAccessKeyId> }}
awsSecretAccessKey
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
${{ :secrets:<awsSecretAccessKey> }}
awsSessionToken
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
${{ :secrets:<awsSessionToken> }}
์ง์ญ
ํ์์
๋ฌธ์์ด
"us-east-2"
๋๊ธฐ์ด URL
ํ์์
๋ฌธ์์ด
"
https://sqs.us-east-2.amazonaws.com/123456789012/my-queue
"
๋ฉ์์ง ๋ณธ๋ฌธ
ํ์์
๋ฌธ์์ด
"This is a test message"
๋ฉ์์ง ์ค๋ณต ์ ๊ฑฐ ID
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
"abc123deduplicationId5678"
๋ฉ์์ง ๊ทธ๋ฃน ID
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
"group1"
๋ฉ์์ง ์์ฑ
์ ํ ๊ณผ๋ชฉ
์ง๋
{ "my_attribute_name_1" : { "DataType" : "String" , "StringValue" : "my_attribute_value_1" } ,
"my_attribute_name_2" : { "DataType" : "String" , "StringValue" : "my_attribute_value_2" } }
์ง์ฐ์ด
์ ํ ๊ณผ๋ชฉ
Int
123
์ถ๋ ฅ ํ๋
์ ํ
์์
response
๋ฌผ์ฒด
{ "statusCode" : 200 , "payload" : { "status" : "success" , "data" : { "MessageId" : "e9b73a52-d018-4a73-9fcd-8efb682fba43" , "MD5OfMessageBody" : "fae535c7f7c5687a1c3d8bc52288e33a" , "MD5OfMessageAttributes" : "3ae3c4f59958e031d0d53af2d157e834" , } , "message" : "Message sent successfully to the SQS queue." } }
์๋ต ๊ตฌ๋ฌธ์ SQS send_message - Boto3 ์ค๋ช
์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ฑ๊ณต
๋ถ์ธ
success: true | false
์ค๋ฅ ๋ฉ์์ง
๋ฌธ์์ด
"errorMessage": "SQS.Client.exceptions.QueueDoesNotExist: "The specified queue does not exist.""
์ํฌํ๋ก ์
name : sqs - send - message - test
description : Sends a message to an SQS queue
- name : aws_sqs_sendMessage_1
action : aws.sqs.sendMessage
awsRoleArn : $ { { .workflowInputs.arnRole } }
queueUrl : https : //sqs.us - east - 2.amazonaws.com/123456789012/workflow - test - queue
messageBody : "This is a test message"
StringValue : "my_attribute_value_1"
StringValue : "my_attribute_value_2"
AWS SQS ๋๊ธฐ์ด์์ ๋ฉ์์ง๋ฅผ ์์ ํฉ๋๋ค. ์ง์ ๋ ๋๊ธฐ์ด์์ ํ๋ ์ด์์ ๋ฉ์์ง๋ฅผ ๊ฒ์ํฉ๋๋ค.
์
๋ ฅ ์ถ๋ ฅ ์์
์
๋ ฅ ํ๋
์ ํ์ฑ
์ ํ
์์
awsRoleArn
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
arn:aws:iam::123456789012:role/my-workflow-role
awsAccessKeyId
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
${{ :secrets:<awsAccessKeyId> }}
awsSecretAccessKey
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
${{ :secrets:<awsSecretAccessKey> }}
awsSessionToken
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
${{ :secrets:<awsSessionToken> }}
์ง์ญ
ํ์์
๋ฌธ์์ด
"us-east-2"
๋๊ธฐ์ด URL
ํ์์
๋ฌธ์์ด
"
https://sqs.us-east-2.amazonaws.com/123456789012/my-queue
"
์ต๋ ๋ฉ์์ง ์
์ ํ ๊ณผ๋ชฉ
Int
10
๋๊ธฐ์๊ฐ์ด
์ ํ ๊ณผ๋ชฉ
Int
5
๊ฐ์์ฑ ์๊ฐ ์ด๊ณผ
์ ํ ๊ณผ๋ชฉ
Int
123
์์ฑ ์ด๋ฆ
์ ํ ๊ณผ๋ชฉ
๋ชฉ๋ก
'All' | 'Policy' | 'VisibilityTimeout' | 'MaximumMessageSize' | 'MessageRetentionPeriod' | 'ApproximateNumberOfMessages' | 'ApproximateNumberOfMessagesNotVisible' | 'CreatedTimestamp' | 'LastModifiedTimestamp' | 'QueueArn' | 'ApproximateNumberOfMessagesDelayed' | 'DelaySeconds' | 'ReceiveMessageWaitTimeSeconds' | 'RedrivePolicy' | 'FifoQueue' | 'ContentBasedDeduplication' | 'KmsMasterKeyId' | 'KmsDataKeyReusePeriodSeconds' | 'DeduplicationScope' | 'FifoThroughputLimit' | 'RedriveAllowPolicy' | 'SqsManagedSseEnabled' ,
๋ฉ์์ง ์์ฑ ์ด๋ฆ
์ ํ ๊ณผ๋ชฉ
๋ชฉ๋ก
'message_attribute_name' ,
messageSystemAttributeNames
์ ํ ๊ณผ๋ชฉ
๋ชฉ๋ก
['SenderId', 'SentTimestamp']
receiveRequestAttemptId
์ ํ ๊ณผ๋ชฉ
๋ฌธ์์ด
"req-1234abcd"
name : sqs - receive - message - test
description : 'Receives a message from an SQS queue'
- name : aws_sqs_receiveMessage_1
action : aws.sqs.receiveMessage
awsRoleArn : $ { { : secrets : awsRoleArn } }
queueUrl : https : //sqs.us - east - 1.amazonaws.com/123456789012/workflow - test - queue
messageAttributeNames : [ 'message_attribute_name' ] ,