質問編集履歴

3

状況が変わったので追記

2023/08/23 07:15

投稿

myy388
myy388

スコア16

test CHANGED
File without changes
test CHANGED
@@ -13,35 +13,19 @@
13
13
  ### lambdaの関数コード
14
14
 
15
15
  ```python
16
- import json
17
-
18
16
  def lambda_handler(event, context):
17
+ parsed_data = json.loads(event['body'])
19
- # TODO implement
18
+ #print(event)
19
+ print(parsed_data['challenge'])
20
- return event['challenge']
20
+ return parsed_data['challenge']
21
21
  ```
22
22
 
23
- ### たこと
23
+ ### 確認ている状況
24
- lambdaのアクセス権限設定(InvokeFunctionの付与)
25
-
26
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-08-23/32036b5a-2ad5-454f-92bd-5e44ed2113ed.png)
24
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-08-23/fda6eeac-c601-411e-aead-6a0068b5dc43.png)
27
25
 
28
26
 
29
- また、cloudwatch logでログを確認すると、
30
- ```
31
- [ERROR] KeyError: 'challenge'
32
- Traceback (most recent call last):
33
- File "/var/task/lambda_function.py", line 8, in lambda_handler
34
- return event['challenge']
35
- ```
36
- というログが残っています。slackのページに書いてあるリクエストの内容
37
- ```
38
- {
39
- "token": "Jhj5dZrVaK7ZwHHjRyZWjbDl",
40
- "challenge": "3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P",
41
- "type": "url_verification"
42
- }
43
- ```
44
- テストコードとするときちんとchallengeの内容が返っるので、slackからのリクエストの形式が違っていのか、API gateway設定うまくいってのでは、と考えていますが、slackからのリクエストの内容を確認する方法がわかりません
27
+ cloudwatchでparsed_data['challenge']の内容確認するとchallenge部分だけを抜き取れと思うのですがprint文を削除すとSTART requestのend requestとなってしまいます。
28
+
45
29
 
46
30
  ### 補足
47
31
  lambda+cloudWatchで定期実行するslackAppは作成したことがあるのですが、双方向でメンションに反応するbotを作りたいため、初めてAPI Gatewayを使用していますので、初心者レベルです。必要な情報がありましたらご教示お願いします。

2

補足の追加

2023/08/23 03:30

投稿

myy388
myy388

スコア16

test CHANGED
File without changes
test CHANGED
@@ -25,6 +25,24 @@
25
25
 
26
26
  ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-08-23/32036b5a-2ad5-454f-92bd-5e44ed2113ed.png)
27
27
 
28
+
29
+ また、cloudwatch logでログを確認すると、
30
+ ```
31
+ [ERROR] KeyError: 'challenge'
32
+ Traceback (most recent call last):
33
+ File "/var/task/lambda_function.py", line 8, in lambda_handler
34
+ return event['challenge']
35
+ ```
36
+ というログが残っています。slackのページに書いてあるリクエストの内容
37
+ ```
38
+ {
39
+ "token": "Jhj5dZrVaK7ZwHHjRyZWjbDl",
40
+ "challenge": "3eZbrw1aBm2rZgRNFdxV2595E9CY3gmdALWMmHkvFXO7tYXAYM8P",
41
+ "type": "url_verification"
42
+ }
43
+ ```
44
+ をテストコードとするときちんとchallengeの内容が返ってくるので、slackからのリクエストの形式が違っているのか、API gatewayの設定がうまくいってないのでは、と考えていますが、slackからのリクエストの内容を確認する方法がわかりません。
45
+
28
46
  ### 補足
29
47
  lambda+cloudWatchで定期実行するslackAppは作成したことがあるのですが、双方向でメンションに反応するbotを作りたいため、初めてAPI Gatewayを使用していますので、初心者レベルです。必要な情報がありましたらご教示お願いします。
30
48
 

1

誤記の修正

2023/08/23 03:03

投稿

myy388
myy388

スコア16

test CHANGED
@@ -1 +1 @@
1
- lambda + API gatewayを用いたsackのchallenge認証が通らない
1
+ AWS lambda + API gatewayを用いたslackのchallenge認証が通らない
test CHANGED
File without changes