-
Notifications
You must be signed in to change notification settings - Fork 0
58 lines (49 loc) · 1.7 KB
/
lambda.yml
File metadata and controls
58 lines (49 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
name: Upload Lambda to S3
on:
push:
paths:
- 'lambda/**'
jobs:
upload-lambda-code:
runs-on: ubuntu-latest
env:
AWS_REGION: us-east-1
BUCKET_NAME: image-processing-lambda-code-${{ secrets.AWS_ACCOUNT_ID }}
ZIP_KEY: lambda/image-processing.zip
steps:
- name: Checkout repo
uses: actions/checkout@v3
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v3
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}
- name: Ensure Lambda bucket exists
run: |
if aws s3api head-bucket --bucket "$BUCKET_NAME" 2>&1 | grep 'Not Found'; then
echo "Creating S3 bucket: $BUCKET_NAME"
aws s3 mb s3://$BUCKET_NAME --region $AWS_REGION
else
echo "Bucket already exists: $BUCKET_NAME"
fi
- name: Zip Lambda code
run: |
cd lambda
zip -r ../lambda.zip .
cd ..
- name: Upload Lambda zip to S3
run: aws s3 cp lambda.zip s3://$BUCKET_NAME/$ZIP_KEY
- name: Clean up zip
run: rm lambda.zip
- name: Update Lambda function code if exists
run: |
if aws lambda get-function --function-name image-processing-worker; then
echo "Lambda function exists. Updating..."
aws lambda update-function-code \
--function-name image-processing-worker \
--s3-bucket "$BUCKET_NAME" \
--s3-key "$ZIP_KEY"
else
echo "Lambda function does not exist. Skipping update."
fi