質問編集履歴

3

情報の追加

2021/11/02 23:55

投稿

suzunashi
suzunashi

スコア16

test CHANGED
File without changes
test CHANGED
@@ -169,3 +169,137 @@
169
169
  source_arn = "${aws_api_gateway_rest_api.example.execution_arn}/*/GET/servers/*/users/*/config"
170
170
 
171
171
  ```
172
+
173
+ ### 問題②の解決案実行後の手順
174
+
175
+ apply後にGUIでlambdaの再設定を行いました。
176
+
177
+ その際、lambdaにてトリガーが追加されていたので、追加された分を削除しました。
178
+
179
+ apigatewayでtestを実行すると200となります。
180
+
181
+
182
+
183
+ ![![イメージ説明](5bf0137b24d043a11a0106f743799378.jpeg)
184
+
185
+
186
+
187
+ 解決案の通り、terraformでplanを実行した所以下のような変更点が出力されました。
188
+
189
+
190
+
191
+ ```ここに言語を入力
192
+
193
+ Terraform will perform the following actions:
194
+
195
+
196
+
197
+ # aws_api_gateway_deployment.example must be replaced
198
+
199
+ +/- resource "aws_api_gateway_deployment" "example" {
200
+
201
+ ~ created_date = "2021-11-02T23:22:48Z" -> (known after apply)
202
+
203
+ ~ execution_arn = "arn:aws:execute-api:ap-northeast-1:アカウントID:jlihn3alu4/" -> (known after apply)
204
+
205
+ ~ id = "todot6" -> (known after apply)
206
+
207
+ ~ invoke_url = "https://jlihn3alu4.execute-api.ap-northeast-1.amazonaws.com/" -> (known after apply)
208
+
209
+ ~ triggers = {
210
+
211
+ - "redeployment" = "3875530b499ff01a701c50620346694f9e676d2c"
212
+
213
+ } -> (known after apply) # forces replacement
214
+
215
+ # (1 unchanged attribute hidden)
216
+
217
+ }
218
+
219
+
220
+
221
+ # aws_api_gateway_integration.example must be replaced
222
+
223
+ +/- resource "aws_api_gateway_integration" "example" {
224
+
225
+ - cache_key_parameters = [] -> null
226
+
227
+ ~ cache_namespace = "qj8p2r" -> (known after apply)
228
+
229
+ - content_handling = "CONVERT_TO_TEXT" -> null
230
+
231
+ ~ id = "agi-jlihn3alu4-qj8p2r-GET" -> (known after apply)
232
+
233
+ ~ integration_http_method = "POST" -> "GET" # forces replacement
234
+
235
+ ~ passthrough_behavior = "WHEN_NO_MATCH" -> (known after apply)
236
+
237
+ - request_parameters = {} -> null
238
+
239
+ - request_templates = {} -> null
240
+
241
+ # (7 unchanged attributes hidden)
242
+
243
+ }
244
+
245
+
246
+
247
+ # aws_api_gateway_stage.example will be updated in-place
248
+
249
+ ~ resource "aws_api_gateway_stage" "example" {
250
+
251
+ ~ deployment_id = "todot6" -> (known after apply)
252
+
253
+ id = "ags-jlihn3alu4-stg"
254
+
255
+ tags = {}
256
+
257
+ # (9 unchanged attributes hidden)
258
+
259
+ }
260
+
261
+
262
+
263
+ Plan: 2 to add, 1 to change, 2 to destroy.
264
+
265
+ ```
266
+
267
+ -マークの付いていた下記をコード上で設定しました。
268
+
269
+ しかしapply後Api Gatewayでのtestで500エラーとなってしまいます。
270
+
271
+ ```
272
+
273
+ - cache_key_parameters = [] -> null
274
+
275
+ - request_parameters = {} -> null
276
+
277
+ - request_templates = {} -> null
278
+
279
+ - content_handling = "CONVERT_TO_TEXT" -> null
280
+
281
+
282
+
283
+ 以下のように設定
284
+
285
+ content_handling = "CONVERT_TO_TEXT"
286
+
287
+ request_parameters = {}
288
+
289
+ request_templates = {}
290
+
291
+ cache_key_parameters = []
292
+
293
+ ```
294
+
295
+ #####不明な変更点
296
+
297
+ 以下の変更点は、POSTの設定はないのにも関わらず出力されているので不明です。
298
+
299
+ ```ここに言語を入力
300
+
301
+ POSTの設定してないので、なぜこれが変更点として出るのかは分かりません。
302
+
303
+ ~ integration_http_method = "POST" -> "GET" # forces replacement
304
+
305
+ ```

2

追加情報

2021/11/02 23:55

投稿

suzunashi
suzunashi

スコア16

test CHANGED
File without changes
test CHANGED
@@ -98,6 +98,8 @@
98
98
 
99
99
 
100
100
 
101
+
102
+
101
103
  ### お願いしたいこと
102
104
 
103
105
 
@@ -107,3 +109,63 @@
107
109
  1度のapplyでlambda関数が反映され、Apigatewayのテストを実行しても200が返ってくる様にしたいです。
108
110
 
109
111
  何卒ご教授お願いします。
112
+
113
+
114
+
115
+ ### 問題②について追加情報
116
+
117
+ lambdaのコードを追加しました。
118
+
119
+ ```HCL
120
+
121
+ resource "aws_lambda_function" "example" {
122
+
123
+ function_name = "example"
124
+
125
+ role = aws_iam_role.lambda.arn
126
+
127
+ handler = "lambda_function.lambda_handler"
128
+
129
+ runtime = "python3.7"
130
+
131
+ filename = "lambda_function.zip"
132
+
133
+ description = "Sample"
134
+
135
+ memory_size = "128"
136
+
137
+ timeout = "3"
138
+
139
+ tags = {
140
+
141
+ "Name" = "Example-lmd"
142
+
143
+ }
144
+
145
+ }
146
+
147
+
148
+
149
+ resource "aws_lambda_permission" "example" {
150
+
151
+ statement_id = "AllowAPILambdaPremission"
152
+
153
+ action = "lambda:InvokeFunction"
154
+
155
+ function_name = aws_lambda_function.example.function_name
156
+
157
+ principal = "apigateway.amazonaws.com"
158
+
159
+ source_arn = "${aws_api_gateway_rest_api.example.execution_arn}/*"
160
+
161
+ }
162
+
163
+ ```
164
+
165
+ aws_lambda_permissionのsource_arnを下記に設定してもダメでした。
166
+
167
+ ```ここに言語を入力
168
+
169
+ source_arn = "${aws_api_gateway_rest_api.example.execution_arn}/*/GET/servers/*/users/*/config"
170
+
171
+ ```

1

文章の修正

2021/11/02 16:54

投稿

suzunashi
suzunashi

スコア16

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- ### 発生している問題①
15
+ ### 発生している問題①APIgatewayに設定が反映されない
16
16
 
17
17
  コード内でLamdaをしているのに統合リクエストのLambda関数が空欄になり、設定されない状態となります。
18
18
 
@@ -68,7 +68,7 @@
68
68
 
69
69
 
70
70
 
71
- ### 発生している問題②
71
+ ### 発生している問題②権限情報が足りてない?
72
72
 
73
73
  ![イメージ説明](a306e214a57402d75bbd62e169389586.png)
74
74
 
@@ -94,6 +94,8 @@
94
94
 
95
95
  権限の問題かと思ったのですが、aws_lambda_permissionは設定しています。
96
96
 
97
+ 足りない部分があればご教授お願いします。
98
+
97
99
 
98
100
 
99
101
  ### お願いしたいこと