【AWS CLI 샘플 모음】Lambda

Lambda

명령어 실행 가능 여부는 주로 AWS Cloud9에서 확인하고 있습니다.
명령어 예시를 제공해 주실 분은 문의 양식을 통해 보내 주세요.
기재된 명령어 예시의 수정 요청도 이곳에서 연락해 주세요.


함수 목록 얻기

aws lambda list-functions \
--query 'Functions[*].[Runtime, FunctionName] | map(&[], @)' \
--output text

출력

python3.12      FunctionA
FunctionB-fromECR
python3.12      FunctionC
<以下省略>

by anonymous

특정 함수의 코드 위치(URL) 얻기

aws lambda get-function \
--function-name FunctionA \
--query 'Code.Location' \
--output text

출력

https://awslambda-ap-ne-1-tasks.s3.ap-northeast-1.amazonaws.com/snapshots/123456789012/FunctionA-0123456-aaaa-bbbb-cccc-0123456789?versionId=6rVz02wc9INE2oEsrk2HkEw8iCFMacSA&X-Amz-Security-Token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240518T223457Z&X-Amz-SignedHeaders=host&X-Amz-Expires=600&X-Amz-Credential=YYYYYYYYYYYYYYYYYYYYYYYYY&X-Amz-Signature=ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

by anonymous

특정 함수의 코드 얻기

url=$(aws lambda get-function \
--function-name FunctionA \
--query 'Code.Location' \
--output text)
curl -s -o code.zip $url
unzip code.zip
rm code.zip
cat lambda_function.py

출력

import json
import boto3
import datetime

def lambda_handler(event, context):
    
    time = datetime.datetime.fromtimestamp(event['timestamp'])
    name = event['name']
    val  = event['value']
    mrx  = event['metric']

    try:
        cw = boto3.client("cloudwatch")
        cw.put_metric_data(
            Namespace="Custom",
            MetricData=[
                {
                    "MetricName": mrx,
                    "Timestamp": time,
                    "Value": val,
                    "Dimensions": [
                        {
                            "Name": "CustomName",
                            "Value": name
                        }
                    ],
                    "Unit": "Count"
                },
            ]
        )

    except Exception as e:
        print("Error:", str(e))
        raise e

    return {
        'statusCode': 200,
        'body': json.dumps('Put cw metric datapoint')
    }

by anonymous

タイトルとURLをコピーしました