簡體   English   中英

Boto3 AWS lambda 未觸發

[英]Boto3 AWS lambda not triggering

I am using code similar to below to trigger an AWS Lambda function on my AWS educate account, when running this nothing triggers on the lambda (the lambda works with the same payload through the test configuration). 我的 session 和權限也是正確的,因為我能夠使用 boto3 使用相同的憑據訪問 S3 資源。 我可以嘗試什么來解決/解決此問題?

抱歉,如果這含糊不清(我知道是這樣),但我對為什么會發生這種情況感到非常困惑

import boto3
import json

AWS_ACCESS_KEY_ID ="XXXXXXXXXXXXXXXXXX"
AWS_SECRET_ACCESS_KEY ="XXXXXXXXXXXXXXXXXXXXXXXXXX"
REGION = 'us-east-1'
session = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"

payload = json.dumps({"function":"tweets","amount":10,"time":10})

client = boto3.client('lambda',
                        region_name=REGION,
                        aws_access_key_id=AWS_ACCESS_KEY_ID,
                        aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
                        aws_session_token = session)

response = client.invoke(
    FunctionName="MyFunctionARN",
    InvocationType="RequestResponse",
    Payload=payload
)

每個 lambda function 都有一個處理程序 function 這是代碼的入口。 默認情況下它是 lambda_handler。 您還可以在運行時設置下更改默認處理程序 function。 以下代碼將解決您的問題。

import boto3
import json

AWS_ACCESS_KEY_ID ="XXXXXXXXXXXXXXXXXX"
AWS_SECRET_ACCESS_KEY ="XXXXXXXXXXXXXXXXXXXXXXXXXX"
REGION = 'us-east-1'
session = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
def lambda_handler(event,context):
    payload = json.dumps({"function":"tweets","amount":10,"time":10})

    client = boto3.client('lambda',
                        region_name=REGION,
                        aws_access_key_id=AWS_ACCESS_KEY_ID,
                        aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
                        aws_session_token = session)

    response = client.invoke(
        FunctionName="MyFunctionARN",
        InvocationType="RequestResponse",
        Payload=payload
    )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM