teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

状況が変わったので追記

2023/08/23 07:15

投稿

myy388
myy388

スコア16

title CHANGED
File without changes
body 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の付与)
24
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-08-23/fda6eeac-c601-411e-aead-6a0068b5dc43.png)
25
25
 
26
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-08-23/32036b5a-2ad5-454f-92bd-5e44ed2113ed.png)
27
26
 
27
+ cloudwatchでparsed_data['challenge']の内容を確認するとchallenge部分だけを抜き取れていると思うのですが、print文を削除するとSTART requestの次がend requestとなってしまいます。
28
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
29
 
46
30
  ### 補足
47
31
  lambda+cloudWatchで定期実行するslackAppは作成したことがあるのですが、双方向でメンションに反応するbotを作りたいため、初めてAPI Gatewayを使用していますので、初心者レベルです。必要な情報がありましたらご教示お願いします。

2

補足の追加

2023/08/23 03:30

投稿

myy388
myy388

スコア16

title CHANGED
File without changes
body CHANGED
@@ -25,5 +25,23 @@
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を使用していますので、初心者レベルです。必要な情報がありましたらご教示お願いします。

1

誤記の修正

2023/08/23 03:03

投稿

myy388
myy388

スコア16

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