@@ -50,19 +50,50 @@ jobs:
5050 role-to-assume : arn:aws:iam::197730964718:role/elastic-docs-v3-api-deployer-${{ inputs.environment }}
5151 aws-region : us-east-1
5252
53- - name : Upload Lambda function
53+ - name : Upload to S3 and Deploy Lambda Functions
5454 run : |
55- NEW_VERSION=$(aws lambda update-function-code \
56- --function-name "elastic-docs-v3-${ENVIRONMENT}-api" \
57- --zip-file "fileb://${ZIP_FILE}" \
58- --publish \
55+ # Upload once to S3 with git SHA for traceability
56+ S3_KEY="${ENVIRONMENT}/${GITHUB_SHA}/api-lambda.zip"
57+ aws s3 cp "${ZIP_FILE}" "s3://${S3_BUCKET}/${S3_KEY}"
58+
59+ # Deploy to streaming-optimized Lambda
60+ aws lambda update-function-code \
61+ --function-name "elastic-docs-v3-${ENVIRONMENT}-lambda-stream-optimized" \
62+ --s3-bucket "${S3_BUCKET}" \
63+ --s3-key "${S3_KEY}"
64+
65+ STREAM_VERSION=$(aws lambda publish-version \
66+ --function-name "elastic-docs-v3-${ENVIRONMENT}-lambda-stream-optimized" \
67+ --description "Deployed from ${GITHUB_SHA}" \
5968 --query 'Version' \
6069 --output text)
61-
70+
6271 aws lambda update-alias \
63- --function-name "elastic-docs-v3-${ENVIRONMENT}-api" \
64- --name live \
65- --function-version $NEW_VERSION
72+ --function-name "elastic-docs-v3-${ENVIRONMENT}-lambda-stream-optimized" \
73+ --name live \
74+ --function-version $STREAM_VERSION
75+
76+ # Deploy to API Gateway-optimized Lambda
77+ aws lambda update-function-code \
78+ --function-name "elastic-docs-v3-${ENVIRONMENT}-lambda-api-gateway-optimized" \
79+ --s3-bucket "${S3_BUCKET}" \
80+ --s3-key "${S3_KEY}"
81+
82+ API_GW_VERSION=$(aws lambda publish-version \
83+ --function-name "elastic-docs-v3-${ENVIRONMENT}-lambda-api-gateway-optimized" \
84+ --description "Deployed from ${GITHUB_SHA}" \
85+ --query 'Version' \
86+ --output text)
87+
88+ aws lambda update-alias \
89+ --function-name "elastic-docs-v3-${ENVIRONMENT}-lambda-api-gateway-optimized" \
90+ --name live \
91+ --function-version $API_GW_VERSION
92+
93+ echo "✅ Deployed to both Lambda functions from S3: ${S3_KEY}"
94+ echo " Stream Lambda: version $STREAM_VERSION (${GITHUB_SHA})"
95+ echo " API Gateway Lambda: version $API_GW_VERSION (${GITHUB_SHA})"
6696
6797 env :
6898 ENVIRONMENT : ${{ inputs.environment }}
99+ S3_BUCKET : elastic-docs-v3-api-lambda-artifacts
0 commit comments