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

質問編集履歴

3

情報の追加

2021/11/02 23:55

投稿

suzunashi
suzunashi

スコア16

title CHANGED
File without changes
body CHANGED
@@ -83,4 +83,71 @@
83
83
  aws_lambda_permissionのsource_arnを下記に設定してもダメでした。
84
84
  ```ここに言語を入力
85
85
  source_arn = "${aws_api_gateway_rest_api.example.execution_arn}/*/GET/servers/*/users/*/config"
86
+ ```
87
+ ### 問題②の解決案実行後の手順
88
+ apply後にGUIでlambdaの再設定を行いました。
89
+ その際、lambdaにてトリガーが追加されていたので、追加された分を削除しました。
90
+ apigatewayでtestを実行すると200となります。
91
+
92
+ ![![イメージ説明](5bf0137b24d043a11a0106f743799378.jpeg)
93
+
94
+ 解決案の通り、terraformでplanを実行した所以下のような変更点が出力されました。
95
+
96
+ ```ここに言語を入力
97
+ Terraform will perform the following actions:
98
+
99
+ # aws_api_gateway_deployment.example must be replaced
100
+ +/- resource "aws_api_gateway_deployment" "example" {
101
+ ~ created_date = "2021-11-02T23:22:48Z" -> (known after apply)
102
+ ~ execution_arn = "arn:aws:execute-api:ap-northeast-1:アカウントID:jlihn3alu4/" -> (known after apply)
103
+ ~ id = "todot6" -> (known after apply)
104
+ ~ invoke_url = "https://jlihn3alu4.execute-api.ap-northeast-1.amazonaws.com/" -> (known after apply)
105
+ ~ triggers = {
106
+ - "redeployment" = "3875530b499ff01a701c50620346694f9e676d2c"
107
+ } -> (known after apply) # forces replacement
108
+ # (1 unchanged attribute hidden)
109
+ }
110
+
111
+ # aws_api_gateway_integration.example must be replaced
112
+ +/- resource "aws_api_gateway_integration" "example" {
113
+ - cache_key_parameters = [] -> null
114
+ ~ cache_namespace = "qj8p2r" -> (known after apply)
115
+ - content_handling = "CONVERT_TO_TEXT" -> null
116
+ ~ id = "agi-jlihn3alu4-qj8p2r-GET" -> (known after apply)
117
+ ~ integration_http_method = "POST" -> "GET" # forces replacement
118
+ ~ passthrough_behavior = "WHEN_NO_MATCH" -> (known after apply)
119
+ - request_parameters = {} -> null
120
+ - request_templates = {} -> null
121
+ # (7 unchanged attributes hidden)
122
+ }
123
+
124
+ # aws_api_gateway_stage.example will be updated in-place
125
+ ~ resource "aws_api_gateway_stage" "example" {
126
+ ~ deployment_id = "todot6" -> (known after apply)
127
+ id = "ags-jlihn3alu4-stg"
128
+ tags = {}
129
+ # (9 unchanged attributes hidden)
130
+ }
131
+
132
+ Plan: 2 to add, 1 to change, 2 to destroy.
133
+ ```
134
+ -マークの付いていた下記をコード上で設定しました。
135
+ しかしapply後Api Gatewayでのtestで500エラーとなってしまいます。
136
+ ```
137
+ - cache_key_parameters = [] -> null
138
+ - request_parameters = {} -> null
139
+ - request_templates = {} -> null
140
+ - content_handling = "CONVERT_TO_TEXT" -> null
141
+
142
+ 以下のように設定
143
+ content_handling = "CONVERT_TO_TEXT"
144
+ request_parameters = {}
145
+ request_templates = {}
146
+ cache_key_parameters = []
147
+ ```
148
+ #####不明な変更点
149
+ 以下の変更点は、POSTの設定はないのにも関わらず出力されているので不明です。
150
+ ```ここに言語を入力
151
+ POSTの設定してないので、なぜこれが変更点として出るのかは分かりません。
152
+ ~ integration_http_method = "POST" -> "GET" # forces replacement
86
153
  ```

2

追加情報

2021/11/02 23:55

投稿

suzunashi
suzunashi

スコア16

title CHANGED
File without changes
body CHANGED
@@ -48,8 +48,39 @@
48
48
  権限の問題かと思ったのですが、aws_lambda_permissionは設定しています。
49
49
  足りない部分があればご教授お願いします。
50
50
 
51
+
51
52
  ### お願いしたいこと
52
53
 
53
54
  terraformでの設定値が足りないのか、仕様なのか判断が付きません。
54
55
  1度のapplyでlambda関数が反映され、Apigatewayのテストを実行しても200が返ってくる様にしたいです。
55
- 何卒ご教授お願いします。
56
+ 何卒ご教授お願いします。
57
+
58
+ ### 問題②について追加情報
59
+ lambdaのコードを追加しました。
60
+ ```HCL
61
+ resource "aws_lambda_function" "example" {
62
+ function_name = "example"
63
+ role = aws_iam_role.lambda.arn
64
+ handler = "lambda_function.lambda_handler"
65
+ runtime = "python3.7"
66
+ filename = "lambda_function.zip"
67
+ description = "Sample"
68
+ memory_size = "128"
69
+ timeout = "3"
70
+ tags = {
71
+ "Name" = "Example-lmd"
72
+ }
73
+ }
74
+
75
+ resource "aws_lambda_permission" "example" {
76
+ statement_id = "AllowAPILambdaPremission"
77
+ action = "lambda:InvokeFunction"
78
+ function_name = aws_lambda_function.example.function_name
79
+ principal = "apigateway.amazonaws.com"
80
+ source_arn = "${aws_api_gateway_rest_api.example.execution_arn}/*"
81
+ }
82
+ ```
83
+ aws_lambda_permissionのsource_arnを下記に設定してもダメでした。
84
+ ```ここに言語を入力
85
+ source_arn = "${aws_api_gateway_rest_api.example.execution_arn}/*/GET/servers/*/users/*/config"
86
+ ```

1

文章の修正

2021/11/02 16:54

投稿

suzunashi
suzunashi

スコア16

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  仕様なのか設定に不足があるのかが分かりません。
7
7
 
8
- ### 発生している問題①
8
+ ### 発生している問題①APIgatewayに設定が反映されない
9
9
  コード内でLamdaをしているのに統合リクエストのLambda関数が空欄になり、設定されない状態となります。
10
10
  もう一度applyするとlambda関数は選択された状態になります。
11
11
  ![イメージ説明](9f4594b080b88ed30cf4d940a5bde66f.jpeg)
@@ -33,7 +33,7 @@
33
33
  }
34
34
  ```
35
35
 
36
- ### 発生している問題②
36
+ ### 発生している問題②権限情報が足りてない?
37
37
  ![イメージ説明](a306e214a57402d75bbd62e169389586.png)
38
38
  2度目のapplyでlambdaが設定されても、Apigatewayでテストを実行すると500エラーとなります。
39
39
 
@@ -46,6 +46,7 @@
46
46
  }
47
47
  ```
48
48
  権限の問題かと思ったのですが、aws_lambda_permissionは設定しています。
49
+ 足りない部分があればご教授お願いします。
49
50
 
50
51
  ### お願いしたいこと
51
52