AWS CLI:AWS CLI: Rola zdefiniowane dla funkcji nie można założyć przez Lambda
aws --version
aws-cli/1.11.21 Python/2.7.12 Darwin/15.3.0 botocore/1.4.78
Próbując stworzyć funkcję lambda i uzyskiwanie błąd:
An error occurred (InvalidParameterValueException) when calling the CreateFunction operation: The role defined for the function cannot be assumed by Lambda.
Role został stworzony jako :
aws iam create-role --role-name microrole --assume-role-policy-document file://./trust.json
trust.json
jest:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "lambda.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Polityka został załączony jako:
aws iam put-role-policy --policy-document file://./policy.json --role-name microrole --policy-name micropolicy
policy.json
jest:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"apigateway:*"
],
"Resource": "arn:aws:apigateway:*::/*"
},
{
"Effect": "Allow",
"Action": [
"execute-api:Invoke"
],
"Resource": "arn:aws:execute-api:*:*:*"
}
]
}
Czekaliśmy na wiele minut, jak wymienione w [1] i [2] ale nadal błąd nie zniknie. Zasady i zaufanie związane z rolą są podobne do domyślnej roli tworzonej podczas tworzenia funkcji Lambda za pomocą konsoli.
Pełne kroki są wymienione na https://github.com/arun-gupta/serverless/tree/master/aws/microservice.
Czego brakuje?