質問編集履歴
3
追加修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
×lambda関数でboto3を利用してEC2を起動した場合、同様にshellが起動しpythonスクリプトが実行されるが、
|
20
20
|
この場合はなぜかdynamoDBアクセスの処理でエラーとなって止まっている
|
21
|
-
(エラーメッセージ
|
21
|
+
(エラーメッセージ「An error occurred (AuthFailure) when calling the DescribeInstances operation: AWS was not able to validate the provided access credentials」)
|
22
22
|
|
23
23
|
### 該当のソースコード
|
24
24
|
|
2
質問内容の修正・加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,19 +1,25 @@
|
|
1
1
|
### 前提・実現したいこと
|
2
|
-
|
2
|
+
lambda関数でboto3を利用しEC2インスタンス起動時に「dynamoDBにアクセスするpythonスクリプト」を実行したい
|
3
|
-
その中でdynamoDBにアクセスする処理があるとうまく起動しない状態を解消したい
|
4
3
|
|
5
4
|
|
6
5
|
|
7
|
-
AWS lambdaにて指定のEC2インスタンスを起動(
|
6
|
+
AWS lambdaにて指定のEC2インスタンスを起動(lambda関数4行目の処理)したときに
|
8
|
-
EC2インスタンスの /etc/init.d に設定しているshellからpythonスクリプトを
|
7
|
+
EC2インスタンスの /etc/init.d に設定しているshellからpythonスクリプトを実行する処理を組み込もうとしています。
|
9
|
-
設定しています。そのpythonスクリプトの中でdynamoDBにアクセスしているのですが、
|
10
|
-
権限設定がうまくいっていないのかpythonスクリプトが自動起動してくれません。
|
11
|
-
(dynamoDBアクセス部分をコメントアウトすると想定通りに動きます)
|
12
8
|
|
9
|
+
pythonスクリプトをEC2起動時に実行することは成功しているのですが、pythonの中で dynamoDBにアクセスする処理が
|
10
|
+
あるとそこでエラーとなっていて後続処理が行われず困っています。
|
11
|
+
|
12
|
+
|
13
13
|
### 発生している問題・エラーメッセージ
|
14
14
|
|
15
|
+
〇実現できていること
|
16
|
+
cloud9でEC2を起動し、ターミナルで「/etc/init.d/app_start start」(shell起動コマンド)を実行すると、
|
15
|
-
dynamoDB
|
17
|
+
dynamoDBへのアクセス処理があっても問題なく後続処理まで実行される
|
16
18
|
|
19
|
+
×lambda関数でboto3を利用してEC2を起動した場合、同様にshellが起動しpythonスクリプトが実行されるが、
|
20
|
+
この場合はなぜかdynamoDBアクセスの処理でエラーとなって止まっている
|
21
|
+
(エラーメッセージはなく、後続処理がされないことで特定済み)
|
22
|
+
|
17
23
|
### 該当のソースコード
|
18
24
|
|
19
25
|
■lambda関数
|
@@ -24,6 +30,9 @@
|
|
24
30
|
ec2.start_instances(InstanceIds=[instance]) # instanceに所定のinstanceid を設定
|
25
31
|
```
|
26
32
|
|
33
|
+
|
34
|
+
以下、EC2内の設定ファイル
|
35
|
+
|
27
36
|
■起動shell (/etc/init.d/app_start)
|
28
37
|
|
29
38
|
```shell
|
@@ -72,8 +81,7 @@
|
|
72
81
|
### 試したこと
|
73
82
|
|
74
83
|
・起動shell内で ec2-user で実行するようにしないとうまく動かなかったので su -l ec2-user -c している。
|
75
|
-
・
|
84
|
+
・以下の通り様々なポリシーをロールに設定しlambda、EC2に割り当ててみたが、うまく動かない。
|
76
|
-
実行したときはうまく動かない
|
77
85
|
|
78
86
|
lambda関数、該当のEC2インスタンスにはそれぞれ以下のポリシーを付与したIAMロールを設定している
|
79
87
|
|
@@ -83,7 +91,6 @@
|
|
83
91
|
・CloudWatchLogsFullAccess
|
84
92
|
・AmazonSSMFullAccess
|
85
93
|
|
86
|
-
|
87
94
|
■EC2インスタンス
|
88
95
|
・AmazonEC2FullAccess
|
89
96
|
・AmazonEC2RoleforSSM
|
@@ -95,4 +102,9 @@
|
|
95
102
|
|
96
103
|
### 補足情報(FW/ツールのバージョンなど)
|
97
104
|
|
98
|
-
・AWS Amazon linux
|
105
|
+
・AWS Amazon linux
|
106
|
+
|
107
|
+
|
108
|
+
lambda関数からboto3を使った場合の権限とcloud9でEC2内で直接shell実行したときとで
|
109
|
+
実行権限が何か違ってエラーとなっているのではないかと思っていますが、次の一手がなく困っています。
|
110
|
+
何か解決策になりそうなものがございましたら、ご教示頂けると幸いです。
|
1
質問内容の編集・加筆
title
CHANGED
File without changes
|
body
CHANGED
@@ -83,6 +83,7 @@
|
|
83
83
|
・CloudWatchLogsFullAccess
|
84
84
|
・AmazonSSMFullAccess
|
85
85
|
|
86
|
+
|
86
87
|
■EC2インスタンス
|
87
88
|
・AmazonEC2FullAccess
|
88
89
|
・AmazonEC2RoleforSSM
|