Search

Lambda

Basic Function
lambda_function.py
import json def lambda_handler(event, context): # TODO implement return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }
Python
복사
zip -r lambda-function.zip . # 버킷에 Zip 파일 업로드 진행 aws s3 mb s3://crs-lambda-function-bucket
Shell
복사
apiVersion: iam.aws.crossplane.io/v1beta1 kind: Role metadata: name: lambda-execution-role spec: forProvider: assumeRolePolicyDocument: | { "Version": "2012-10-17", "Statement": [{ "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" } }] } providerConfigRef: name: aws-provider --- apiVersion: lambda.aws.crossplane.io/v1beta1 kind: Function metadata: name: demo-function spec: forProvider: packageType: Zip code: s3Bucket: crs-lambda-function-bucket s3Key: lambda-function.zip handler: lambda_function.lambda_handler runtime: python3.13 roleRef: name: lambda-execution-role region: ap-northeast-2 timeout: 60 memorySize: 128 tags: Name: demo-function providerConfigRef: name: aws-provider
YAML
복사
kubectl apply -f lambda.yaml
Shell
복사
kubectl get function
Shell
복사
Container Image Function
aws ecr create-repository \ --repository-name nginx \ --region ap-northeast-2 \ --image-tag-mutability MUTABLE
Shell
복사
docker pull nginx # nginx Image 사용 ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text) REGION_CODE=$(aws configure set region ap-northeast-2 && aws configure get region) aws ecr get-login-password --region $REGION_CODE | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION_CODE.amazonaws.com docker build -t nginx . docker tag nginx:latest $ACCOUNT_ID.dkr.ecr.$REGION_CODE.amazonaws.com/nginx:latest docker push $ACCOUNT_ID.dkr.ecr.$REGION_CODE.amazonaws.com/nginx:latest
Shell
복사
apiVersion: iam.aws.crossplane.io/v1beta1 kind: Role metadata: name: lambda-execution-role spec: forProvider: assumeRolePolicyDocument: | { "Version": "2012-10-17", "Statement": [{ "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" } }] } providerConfigRef: name: aws-provider --- apiVersion: lambda.aws.crossplane.io/v1beta1 kind: Function metadata: name: demo-function spec: forProvider: packageType: Image code: imageURI: IMAGE roleRef: name: lambda-execution-role region: ap-northeast-2 timeout: 60 memorySize: 128 tags: Name: demo-function providerConfigRef: name: aws-provider
YAML
복사
IMAGE_URL=$(aws ecr describe-repositories --repository-name nginx --query "repositories[].repositoryUri" --output text) IMAGE_TAG=$(aws ecr describe-images --repository-name nginx --query "imageDetails[].imageTags" --output text) IMAGE="$IMAGE_URL:$IMAGE_TAG" sed -i "s|IMAGE|$IMAGE|g" lambda.yaml
Shell
복사
kubectl apply -f lambda.yaml
Shell
복사
kubectl get function
Shell
복사