Lambda Skip

This commit is contained in:
2026-04-27 21:17:41 -05:00
parent 29a34ce4e5
commit 5b0a087a78

View File

@@ -7,9 +7,14 @@
# Standard: mail.${DOMAIN_NAME} # Standard: mail.${DOMAIN_NAME}
# Override: export MAIL_FROM_SUBDOMAIN="mailfrom" (nur der Prefix, ohne Domain) # Override: export MAIL_FROM_SUBDOMAIN="mailfrom" (nur der Prefix, ohne Domain)
# #
# Lambda Deployment:
# Standard: Überspringt den Deploy (SKIP_LAMBDA_DEPLOY=true)
# Override: export SKIP_LAMBDA_DEPLOY="false" (um Lambda neu auszurollen)
#
# Beispiel: # Beispiel:
# export DOMAIN_NAME="buddelectric.net" # export DOMAIN_NAME="buddelectric.net"
# export MAIL_FROM_SUBDOMAIN="mailfrom" # → mailfrom.buddelectric.net # export MAIL_FROM_SUBDOMAIN="mailfrom" # → mailfrom.buddelectric.net
# export SKIP_LAMBDA_DEPLOY="false" # → Lambda wird aktualisiert
# ./awsses.sh # ./awsses.sh
set -e set -e
@@ -18,17 +23,20 @@ set -e
if ! command -v jq &> /dev/null; then echo "Fehler: 'jq' fehlt."; exit 1; fi if ! command -v jq &> /dev/null; then echo "Fehler: 'jq' fehlt."; exit 1; fi
if [ -z "$DOMAIN_NAME" ]; then echo "Fehler: DOMAIN_NAME ist nicht gesetzt."; exit 1; fi if [ -z "$DOMAIN_NAME" ]; then echo "Fehler: DOMAIN_NAME ist nicht gesetzt."; exit 1; fi
# Prüfen ob Python Code da ist
PYTHON_FILE="ses_sns_shim_global.py"
if [ ! -f "$PYTHON_FILE" ]; then
echo "Fehler: $PYTHON_FILE nicht gefunden!"
exit 1
fi
# --- VARIABLEN --- # --- VARIABLEN ---
AWS_REGION=${AWS_REGION:-"us-east-2"} AWS_REGION=${AWS_REGION:-"us-east-2"}
EMAIL_PREFIX=${EMAIL_PREFIX:-""} EMAIL_PREFIX=${EMAIL_PREFIX:-""}
CONFIGURATION_SET_NAME="relay-outbound" CONFIGURATION_SET_NAME="relay-outbound"
SKIP_LAMBDA_DEPLOY=${SKIP_LAMBDA_DEPLOY:-"true"}
# Prüfen ob Python Code da ist (nur wenn auch deployt werden soll)
PYTHON_FILE="ses_sns_shim_global.py"
if [ "$SKIP_LAMBDA_DEPLOY" != "true" ]; then
if [ ! -f "$PYTHON_FILE" ]; then
echo "Fehler: $PYTHON_FILE nicht gefunden!"
exit 1
fi
fi
# MAIL FROM Subdomain (konfigurierbar) # MAIL FROM Subdomain (konfigurierbar)
MAIL_FROM_SUBDOMAIN=${MAIL_FROM_SUBDOMAIN:-"mail"} MAIL_FROM_SUBDOMAIN=${MAIL_FROM_SUBDOMAIN:-"mail"}
@@ -49,6 +57,7 @@ LAMBDA_ROLE_NAME="SesShimGlobalRole"
echo "==========================================================" echo "=========================================================="
echo " SES Setup (S3 -> Global Lambda Shim -> SQS) für $DOMAIN_NAME" echo " SES Setup (S3 -> Global Lambda Shim -> SQS) für $DOMAIN_NAME"
echo " MAIL FROM: $MAIL_FROM_DOMAIN" echo " MAIL FROM: $MAIL_FROM_DOMAIN"
echo " SKIP_LAMBDA: $SKIP_LAMBDA_DEPLOY"
echo "==========================================================" echo "=========================================================="
# --------------------------------------------------------- # ---------------------------------------------------------
@@ -113,8 +122,12 @@ echo " -> Permissions aktualisiert."
sleep 5 sleep 5
# --------------------------------------------------------- # ---------------------------------------------------------
# 4. Lambda Funktion erstellen/updaten (Global!) # 4 & 5. Lambda Funktion + SES Permissions (optional)
# --------------------------------------------------------- # ---------------------------------------------------------
if [ "$SKIP_LAMBDA_DEPLOY" = "true" ]; then
echo "[4/6] Global Lambda Shim deployen... (ÜBERSPRUNGEN)"
echo "[5/6] SES Permission für Lambda... (ÜBERSPRUNGEN)"
else
echo "[4/6] Global Lambda Shim deployen..." echo "[4/6] Global Lambda Shim deployen..."
# Zip erstellen # Zip erstellen
cp "$PYTHON_FILE" lambda_function.py cp "$PYTHON_FILE" lambda_function.py
@@ -139,15 +152,13 @@ fi
# Aufräumen # Aufräumen
rm lambda.zip lambda_function.py rm lambda.zip lambda_function.py
# ---------------------------------------------------------
# 5. Permission: SES darf Lambda aufrufen (Global, einmalig)
# ---------------------------------------------------------
echo "[5/6] SES Permission für Lambda..." echo "[5/6] SES Permission für Lambda..."
aws lambda add-permission --function-name "$LAMBDA_NAME" \ aws lambda add-permission --function-name "$LAMBDA_NAME" \
--statement-id "AllowSESInvoke-Global" \ --statement-id "AllowSESInvoke-Global" \
--action "lambda:InvokeFunction" \ --action "lambda:InvokeFunction" \
--principal "ses.amazonaws.com" \ --principal "ses.amazonaws.com" \
--region "$AWS_REGION" 2>/dev/null || true --region "$AWS_REGION" 2>/dev/null || true
fi
# --------------------------------------------------------- # ---------------------------------------------------------
# 6. SES Rule (S3 + Global Lambda) # 6. SES Rule (S3 + Global Lambda)