API 게이트웨이와 도메인 연동
AWSLambdaBasicExecutionRole
AssumeRole
작업을 사용하여 역할을 가정할 수 있도록 허용서비스 역할
이라고 합니다. 서비스 역할에는 신뢰 정책이 포함되어 있어야 합니다. 서비스 역할
: 서비스가 사용자를 대신하여 작업을 수행하기 위해 수임하는 IAM 역할IAM Role
생성 및 assume role policy
연결depends_on
을 통해 cloudwatch 연동Lambda
통합시 aws_api_gateway_integration.integration_http_method
부분은 POST
만 가능하다.설정하지 않으면 CORS 등 다른 요소로 표현될 수도 있다.
import { SQSClient, SendMessageCommand } from "@aws-sdk/client-sqs";
import { v4 as uuidv4 } from "uuid";
const sqs = new SQSClient({ region: "ap-northeast-2" });
export const handler = async (event) => {
try {
const requestBody = JSON.parse(event.body);
const randomUUID = uuidv4();
...
return {
statusCode: 200,
headers: {
"Access-Control-Allow-Headers": "Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token",
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "GET,POST,PUT,DELETE,OPTIONS",
},
body: message,
};
} catch (error) {
console.error("Error sending message:", error);
return {
statusCode: 500,
headers: {
"Content-Type": "application/json",
"Access-Control-Allow-Origin": "*" // CORS 설정
},
body: JSON.stringify({ error: "Error sending message to SQS" })
};
}
};
SampleApiPermission:
Type: AWS::Lambda::Permission
Properties:
Action: "lambda:InvokeFunction"
FunctionName: !Ref MyLambdaFnA1
Principal: "apigateway.amazonaws.com"
SourceArn: !Sub "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:<api-id>/*/<method>/<resource>"
#SourceArn: !Join
# - ''
# - - 'arn:aws:execute-api:'
# - !Ref AWS::Region
# - ":"
# - !Ref AWS::AccountId
# - ":"
# - !Ref MscOscApi
# - "/*/*"