質問編集履歴

1

追記の追加

2022/11/15 21:37

投稿

MaeharaKenji
MaeharaKenji

スコア86

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,117 @@
1
+ ### 追記11/16
2
+
3
+ コメント欄でアドバイス頂き、追加コードをreturnの前に配置することでエラーを回避できました。
4
+ しかし、メールアドレス入力・登録サイトで”登録”ボタンを押しても、何も反応がありません。
5
+ cloudwatchで確認しても何もログが記録されていません。
6
+ 現在はreturn内に何もない状態が問題でしょうか?
7
+ 追加・修正方法等教えて下さい。
8
+
9
+ 現在のWEBサイトのhtml文も掲載します。
10
+
11
+
12
+ ```python
13
+ (省略)
14
+
15
+ sendmail(email, "登録ありがとうございました", mailbody)
16
+
17
+
18
+
19
+ body = {'result' : 1}
20
+
21
+ result = {
22
+ 'statusCode' : 200,
23
+ 'headers' : {
24
+ 'content-type' : 'application/json'
25
+ },
26
+ 'body' : json.dumps(body)
27
+ }
28
+
29
+
30
+ # 結果を返す
31
+ return {
32
+
33
+
34
+ '''
35
+ 'statusCode' : 200,
36
+ 'headers' : {
37
+ 'content-type' : 'text/html'
38
+ },
39
+ 'body' : '<!DOCTYPE html><html><meta charset="UTF-8"></head><body>登録ありがとうございました。</body></html>'
40
+ '''
41
+ }
42
+ except:
43
+ import traceback
44
+ traceback.print_exc()
45
+ return {
46
+ 'statusCode' : 200,
47
+ 'headers' : {
48
+ 'content-type' : 'text/html'
49
+ },
50
+ 'body' : '<!DOCTYPE html><html><head><meta charset="UTF-8"></head><body>内部エラーが発生しました。</body></html>'
51
+ }
52
+
53
+ ```
54
+
55
+ メールアドレスの入力・登録サイトのhtmlコード
56
+ ```html
57
+
58
+ <!DOCTYPE html>
59
+ <html lang="ja">
60
+ <head>
61
+ <meta charset="UTF-8">
62
+ <script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
63
+ <script>
64
+ function regist(){
65
+ <!-- XXXXXXXXXXXXXは、API GATEWAYのエンドポイント(図5-13)-->
66
+ var apiurl = 'https://XXXXXXX.execute-api.us-west-2.amazonaws.com/prod/regist';
67
+ var form = $('#myform');
68
+ var formdata = form.serialize();
69
+
70
+ $.ajax({
71
+ type : 'POST',
72
+ url : apiurl,
73
+ data : formdata,
74
+ dataType : 'json'
75
+ }).done(function(response) {
76
+ if (response.result == 1) {
77
+ $('#msg').html('登録ありがとうございました。ダウンロード先を記載したメールをお送りしました');
78
+ } else {
79
+ $('#msg').html('エラーが発生しました。' + response.message);
80
+ }
81
+ }).fail(function(request, status, err) {
82
+ alert(status);
83
+ });
84
+
85
+ return false;
86
+ }
87
+ </script>
88
+ </head>
89
+ <body>
90
+ <form id="myform">
91
+ 氏名:<input type="text" name="username"><br>
92
+ メールアドレス:<input type="text" name="email">
93
+ <input type="button" value="登録" onclick="regist()">
94
+ </form>
95
+ <p id="msg"></p>
96
+
97
+ <!--
98
+ <form method="POST" action="https://yoqby9e8kc.execute-api.us-west-2.amazonaws.com/prod/regist">
99
+ 氏名:<p><input type="text" name="username" /></p><br>
100
+ メールアドレス:<p><input type="text" name="email" /></p>
101
+ <input type="submit" value="登録">
102
+ </form>
103
+ -->
104
+ </body>
105
+ </html>
106
+ ```
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
1
115
  ### 前提
2
116
 
3
117
  現在、AWSのlambdを[AWS関連の書籍](https://www.amazon.co.jp/AWS-Lambda%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89-%E5%A4%A7%E6%BE%A4-%E6%96%87%E5%AD%9D-ebook/dp/B0764C5MT5/ref=sr_1_2_sspa?adgrpid=60120324664&gclid=CjwKCAiA68ebBhB-EiwALVC-NsitDdzBQibxNLmRa1jdcuLbf0fYAXUA6LTbyJvZi0p05d7nMttH4RoCHWIQAvD_BwE&hvadid=618553085031&hvdev=c&hvlocphy=1009244&hvnetw=g&hvqmt=e&hvrand=3780511519880649787&hvtargid=kwd-587128490392&hydadcr=27268_14598057&jp-ad-ap=0&keywords=aws+lambda%E5%AE%9F%E8%B7%B5%E3%82%AC%E3%82%A4%E3%83%89&qid=1668479822&qu=eyJxc2MiOiIyLjExIiwicXNhIjoiMS43MSIsInFzcCI6IjEuMzcifQ%3D%3D&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExMEtYQ0c0WU9VMzlWJmVuY3J5cHRlZElkPUEwNzQzNTQ3MTFBOTdCV0dMWkNXUCZlbmNyeXB0ZWRBZElkPUEzMk1YT1c1TjRGNENYJndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==)で勉強しています。