name: Deploy
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_BUCKET: ${{ secrets.AWS_BUCKET_NAME }}
USER_: ${{ secrets.NODE_USER }}
APP_PASS: ${{ secrets.NODE_APP_PASS }}
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "20. x"
- name: Set 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: ${{ secrets.AWS_REGION }}
- name: Log Environment Variables
run: |
echo "AWS_ACCESS_KEY_ID=${{ secrets.AWS_ACCESS_KEY_ID }}"
echo "AWS_REGION=${{ secrets.AWS_REGION }}"
echo "AWS_SECRET_ACCESS_KEY=${{ secrets.AWS_SECRET_ACCESS_KEY }}"
echo "AWS_BUCKET=${{ secrets.AWS_BUCKET_NAME }}"
echo "USER_=${{ secrets.NODE_USER }}"
echo "APP_PASS=${{ secrets.NODE_APP_PASS }}"
- name: npm install
run: |
npm ci
- name: deploy
run: |
npx ncc build lambdas/EmailFn/handler.ts
zip -j deploy.zip ./dist/*
aws lambda update-function-code --function-name=********* --zip-file=fileb://deploy.zip
import { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
import { EmailServices } from '../../shared/services/emailServices';
import { S3ServiceMultipalFiles } from '../../shared/services/S3ServicesMutipalFiles';
const headers = {
'Access-Control-Allow-Headers': 'Content-Type,X-Amz-Date,Authorization,X-Api-Key,x-requested-with',
'Access-Control-Allow-Origin': '*', // Allow from anywhere
'Access-Control-Allow-Methods': 'GET, POST,DELETE, PUT,OPTIONS',
};
/**
*
* Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
* @param {Object} event - API Gateway Lambda Proxy Input Format
*
* Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
* @returns {Object} object - API Gateway Lambda Proxy Output Format
*
*/
export const sendEmailHandler = async (event: APIGatewayProxyEvent): Promise<APIGatewayProxyResult> => {
let response: APIGatewayProxyResult;
console.log(
'AWS_ACCESS_KEY_ID:',
process.env.AWS_ACCESS_KEY_ID,
'AWS_REGION:',
process.env.AWS_REGION,
'AWS_BUCKET:',
process.env.AWS_BUCKET,
'AWS_SECRET_ACCESS_KEY:',
process.env.AWS_SECRET_ACCESS_KEY,
'USER_:',
process.env.USER_,
'APP_PASS:',
process.env.APP_PASS,
'',
);
try {
s3ServiceMultipalFiles.gentiles(eventToJson.imageNames);
// const emailResponce = await emailServices.sendEmail(retrievedFiles, eventToJson);
// console.log('emailResponce: ---', emailResponce);
response = {
statusCode: 200,
headers,
body: JSON.stringify(`email with file sent test`),
};
} catch (err: unknown) {
console.log(err);
response = {
statusCode: 500,
headers,
body: JSON.stringify({
message: err instanceof Error ? err.message : 'some error when creating new session',
}),
};
}
// response = { statusCode: 200, headers, body: JSON.stringify('email with file sent test') };
return response;
};
cloude watch: 2024-06-24T09:17:53.771Z ba5ee2a9-6258-4723-abb1-196a5ae6e223 INFO AWS_ACCESS_KEY_ID: AKLKSJHHAJYSAGY
AWS_REGION: US-east-1
AWS_BUCKET: undefined
AWS_SECRET_ACCESS_KEY: kldskakdskadöskaldöksaöksölakd56546
USER_: undefined
APP_PASS: undefined
1