# AWS的Lambda使用尝试

之前给博客尝试用了CloudFront，今天来试试Lambda。

## 先给虚拟机装个conda

- wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py39\_4.12.0-Linux-x86\_64.sh -O conda_install.sh
- chmod +x conda_install.sh
- ./conda_install.sh
- source ~/.bashrc
- nano -K .condarc # 清华镜像源
- conda clean -i

## 安装python3.9运行时

- conda create -n aws_py39 -c conda-forge python=3.9.13 -y
- conda activate aws_py39
- conda install -c conda-forge zip -y

## 添加第三方python依赖

- mkdir python
- pip3 install –target ./python -i https://pypi.tuna.tsinghua.edu.cn/simple requests
- zip -r py-requests.zip python
- 下载 py-requests.zip

创建层

## 创建函数

## 添加依赖层

## 编写函数

    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
    59
    60
    61
    62
    63

    import json
    import requests,base64

    def getsend(wecom_cid, wecom_aid, wecom_secret):
        get_token_url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={wecom_cid}&corpsecret={wecom_secret}"
        response = requests.get(get_token_url).content
        access_token = json.loads(response).get('access_token')
        if access_token and len(access_token) > 0:
            send_msg_url = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={access_token}'
            def send(text, wecom_touid='@all'):
                data = {
                    "touser":wecom_touid,
                    "agentid":wecom_aid,
                    "msgtype":"text",
                    "text":{
                        "content":text
                    },
                    "duplicate_check_interval":600
                }
                response = requests.post(send_msg_url,data=json.dumps(data)).content
                return response
        else:
            def send(text, wecom_touid='@all'):
                print('get_token Failed')
        return send

    ### 以下请按实际情况自行配置，以上勿动 ###

    '''
    WECOM_CID企业微信公司ID
    WECOM_AID企业微信应用ID
    WECOM_SECRET企业微信应用Secret
    wecom_touid消息发送对象的UID
    '''
    info = getsend( # 与Server酱中的参数一致
        wecom_cid = '***',
        wecom_aid = '***',
        wecom_secret = '***'
        )
    wecom_touid = 'limour'
    ### 以上请按实际情况自行配置，以下勿动 ###

    def lambda_handler(event, context):
        # TODO implement
        args = event.get('body')
        args = json.loads(args)
        if args.get('token') != 'a123456':
            return {
                'statusCode': 404,
                'body': json.dumps('invalid token!')
            }
        response = info(
            text = args.get('msg'),
            wecom_touid = args.get('touid')
            )
        body = {}
        body["event"] = event.get('body')
        return {
            'statusCode': 200,
            "isBase64Encoded": False,
            "headers": {"Content-Type" : "application/json"},
            'body': json.dumps(body)
        }

### 测试

    1
    2
    3
    4

    /usr/bin/curl -X POST \
    -H "Content-Type: application/json" \
    -d '{"msg": "test msg", "touid":"limour", "token":"a123456"}' \
    https://***.lambda-url.us-east-1.on.aws/

uncategorized
AWS的Lambda使用尝试
https://occdn.limour.top/2278.html
Author
Limour
Posted on
August 23, 2022
Licensed under
Docker搭建ServerStatus Previous
对富集结果进行贝叶斯网络推断 Next

#### Search

Keyword