簡體   English   中英

AWS Lambda:函數已成功創建,但在創建觸發器時出錯:無法讀取未定義的屬性“包含”

[英]AWS Lambda: function was created successfully but an error occurred when creating the trigger: Cannot read property 'includes' of undefined

我正在嘗試從 AWS 管理的 slack-echo-command-python 藍圖創建一個 Lambda 函數,每當我點擊創建時,它都會返回“您的 Lambda 函數“test_lambda_01”已成功創建,但在創建時出現錯誤觸發器:無法讀取未定義的屬性“包含”。” 我不確定這意味着什么。

觸發器應該是自動創建和附加的 AWS API 網關。 我嘗試通過管理控制台創建一個,然后手動將其添加到 Lambda 函數上的觸發器中。 它已成功添加,但當我嘗試使用 Slack 斜杠命令時,我返回“502_service_error”。 它目前應該默認接受所有呼叫類型(稍后會更改,但我想讓一些工作正常進行)。

我已將 Slack 設置中的端點更改為正確的端點。 我可以看到它在 CloudWatch 指標中被調用。

我編輯了 Lambda 函數代碼以在每次調用時返回它,僅用於測試目的。 我 99% 確信這是對 Slack 的有效回應,因為大部分/全部內容都是從示例中復制的。 根據https://jsonlint.com/,它是有效的 JSON。

{
    "body": {
        "blocks": [{
                "text": {
                    "text": "*It's 80 degrees right now.*",
                    "type": "mrkdwn"
                },
                "type": "section"
            },
            {
                "text": {
                    "text": "Partly cloudy today and tomorrow",
                    "type": "mrkdwn"
                },
                "type": "section"
            }
        ],
        "response_type": "ephemeral"
    },
    "headers": {
        "Content-Type": "application/json"
    },
    "statusCode": "200"
}

我已經用他們的默認測試測試了 Lambda 函數,它返回了上述內容。 API 網關出現在觸發器下方。 我是否需要為 API 網關附加更多權限(它已經擁有調用 lambda 函數的權限)? 另外,在嘗試從藍圖創建函數時,我做錯了什么?

如果您需要任何其他信息,請告訴我。

您需要對響應中的body參數進行字符串化。

https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html

{
    "isBase64Encoded": true|false,
    "statusCode": httpStatusCode,
    "headers": { "headerName": "headerValue", ... },
    "multiValueHeaders": { "headerName": ["headerValue", "headerValue2", ...], ... },
    "body": "..."
}

如果你看到上面的body參數,它是一個字符串。

暫無
暫無

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

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