2017-12-28 34 views
0

私のプロジェクトでは、あるメソッドでboto3を使って別のラムダ関数を呼び出さなければならないというpythonコードでラムダ関数を作成します。私はこのようなクライアントを作成し、私のメインのラムダで :AWSラムダAccessDeniedException別のラムダ関数を呼び出す

client = boto3.client('lambda') 

その後、私はこの方法で私のメソッドを呼び出します。

response = client.invoke(
      FunctionName='arn:aws:lambda:eu-west-1:1577:function:test', 
      InvocationType='RequestResponse', 
      LogType='None', 
      Payload=json.dumps(d) 
      ) 

が、私はこのエラーが私の主なラムダコンソールリターンをテスト:

An error occurred (AccessDeniedException) when calling the Invoke operation: User

環境変数AWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYを設定しようとしましたが、保存しようとすると、このエラーが返されます。

Lambda was unable to configure your environment variables because the environment variables you have provided contains reserved keys that are currently not supported for modification. Reserved keys used in this request: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY

IAMユーザーを使用してラムダにコールを設定するにはどうすればよいですか?

代わりにIAMユーザーを使用しての事前

答えて

2

のおかげでは、あなたの親ラムダ関数に取り付けた既存のIAMロールにラムダ呼び出し許可を取り付けます。

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "InvokePermission", 
      "Effect": "Allow", 
      "Action": [ 
       "lambda:InvokeFunction" 
      ], 
      "Resource": "*" 
     } 
    ] 
} 

注:リソースに対して呼び出されているラムダ関数のARNを指定できます。

関連する問題