Has*_*lil 5 python amazon-iam aws-lambda aws-step-functions
所以我试图调用我在python中使用Lambda编写的简单步进函数。我正在为此目的使用boto3
client = boto3.client('stepfunctions')
response = client.start_execution(
stateMachineArn='aws:states:.......',
name='dev-hassan-pipeline-sf',
input= json.dumps(returnVal)
)
Run Code Online (Sandbox Code Playgroud)
我创建了一个具有“ AWSStepFunctionsFullAccess”策略的IAM角色
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "states:*",
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我将此角色分配给我的Lambda,但是当我运行Lambda时,出现以下错误
An error occurred (AccessDeniedException) when calling the StartExecution operation: User: arn:aws:sts::xxxxxxxx:assumed-role/dev-hassan-role1/dev-hassan-pipeline-lambda is not authorized to access this resource: ClientError
Run Code Online (Sandbox Code Playgroud)
dev-hassan-pipeline-lambda是我的Lambda的名字,而dev-hassan-role1是我的角色名
有人可以帮我吗,我在做什么错,为什么我不能从Lambda调用step函数,因为我已经赋予它所需的权限
所以,我发现了错误,我使用了错误的 ARN。我使用的 ARN 用于特定执行 step 函数要使用的正确 ARN 是
arn:aws:states:us-east-1:xxxxxxxx:stateMachine:dev-hassan-pipeline-sf
Run Code Online (Sandbox Code Playgroud)
实际上令人惊讶的是,我无法在 Web ui 上找到状态机的 ARN。我在查看一些示例代码时发现了我的错误,并且我意识到我的 ARN 在其中执行而不是状态机。
我刚刚意识到,我什至没有在这个问题中发布整个 ARN