76 lines
2.2 KiB
Bash
76 lines
2.2 KiB
Bash
#!/bin/bash
|
|
# create-queue.sh
|
|
# Usage: DOMAIN=andreasknuth.de ./create-queue.sh
|
|
|
|
set -e
|
|
|
|
AWS_REGION="us-east-2"
|
|
|
|
# Domain aus Environment Variable
|
|
if [ -z "$DOMAIN" ]; then
|
|
echo "Error: DOMAIN environment variable not set"
|
|
echo "Usage: DOMAIN=andreasknuth.de $0"
|
|
exit 1
|
|
fi
|
|
|
|
QUEUE_NAME="${DOMAIN//./-}-queue"
|
|
DLQ_NAME="${QUEUE_NAME}-dlq"
|
|
|
|
echo "========================================"
|
|
echo "Creating SQS Queue for Email Delivery"
|
|
echo "========================================"
|
|
echo ""
|
|
echo "📧 Domain: $DOMAIN"
|
|
echo " Region: $AWS_REGION"
|
|
echo ""
|
|
|
|
# Dead Letter Queue erstellen
|
|
echo "Creating DLQ: $DLQ_NAME"
|
|
DLQ_URL=$(aws sqs create-queue \
|
|
--queue-name "${DLQ_NAME}" \
|
|
--region "${AWS_REGION}" \
|
|
--attributes '{
|
|
"MessageRetentionPeriod": "1209600"
|
|
}' \
|
|
--query 'QueueUrl' \
|
|
--output text 2>/dev/null || aws sqs get-queue-url --queue-name "${DLQ_NAME}" --region "${AWS_REGION}" --query 'QueueUrl' --output text)
|
|
|
|
echo " ✓ DLQ URL: ${DLQ_URL}"
|
|
|
|
# DLQ ARN ermitteln
|
|
DLQ_ARN=$(aws sqs get-queue-attributes \
|
|
--queue-url "${DLQ_URL}" \
|
|
--region "${AWS_REGION}" \
|
|
--attribute-names QueueArn \
|
|
--query 'Attributes.QueueArn' \
|
|
--output text)
|
|
|
|
echo " ✓ DLQ ARN: ${DLQ_ARN}"
|
|
echo ""
|
|
|
|
# Haupt-Queue erstellen mit Redrive Policy
|
|
echo "Creating Main Queue: $QUEUE_NAME"
|
|
QUEUE_URL=$(aws sqs create-queue \
|
|
--queue-name "${QUEUE_NAME}" \
|
|
--region "${AWS_REGION}" \
|
|
--attributes "{
|
|
\"VisibilityTimeout\": \"300\",
|
|
\"MessageRetentionPeriod\": \"86400\",
|
|
\"ReceiveMessageWaitTimeSeconds\": \"20\",
|
|
\"RedrivePolicy\": \"{\\\"deadLetterTargetArn\\\":\\\"${DLQ_ARN}\\\",\\\"maxReceiveCount\\\":\\\"3\\\"}\"
|
|
}" \
|
|
--query 'QueueUrl' \
|
|
--output text 2>/dev/null || aws sqs get-queue-url --queue-name "${QUEUE_NAME}" --region "${AWS_REGION}" --query 'QueueUrl' --output text)
|
|
|
|
echo " ✓ Queue URL: ${QUEUE_URL}"
|
|
echo ""
|
|
echo "========================================"
|
|
echo "✅ Queue created successfully!"
|
|
echo "========================================"
|
|
echo ""
|
|
echo "Configuration:"
|
|
echo " Domain: $DOMAIN"
|
|
echo " Queue: $QUEUE_NAME"
|
|
echo " Queue URL: $QUEUE_URL"
|
|
echo " DLQ: $DLQ_NAME"
|
|
echo " Region: $AWS_REGION" |