Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用cdk从帐户B中的lambda调用帐户A中的步骤函数_Python_Amazon Web Services_Aws Lambda_Aws Cdk_Aws Step Functions - Fatal编程技术网

Python 使用cdk从帐户B中的lambda调用帐户A中的步骤函数

Python 使用cdk从帐户B中的lambda调用帐户A中的步骤函数,python,amazon-web-services,aws-lambda,aws-cdk,aws-step-functions,Python,Amazon Web Services,Aws Lambda,Aws Cdk,Aws Step Functions,我在帐户a中部署了一个lambda堆栈,在帐户B中部署了一个stepfunction堆栈部署器。现在我如何使用python cdk从lambda调用这个stepfunction?具体来说,我需要授予他们什么权限?lambda帐户A已分配IAM roleRoleA。步骤功能帐户B已分配IAM角色角色B 权限 lambda的IAM角色应具有从帐户B承担该角色的权限 { "Version": "2012-10-17", "Statement&q

我在帐户a中部署了一个lambda堆栈,在帐户B中部署了一个stepfunction堆栈部署器。现在我如何使用python cdk从lambda调用这个stepfunction?具体来说,我需要授予他们什么权限?

lambda帐户A已分配IAM roleRoleA。步骤功能帐户B已分配IAM角色角色B

权限 lambda的IAM角色应具有从帐户B承担该角色的权限

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*"
    }
  ]
}
步骤功能IAM roleRole B应具有允许Lambda的IAM角色承担此任务的受信任策略。在以下信任策略中,123456789012是帐户A的帐号

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::123456789012:root"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}
在lambda内部 lambda应该具有从帐户B获取角色B并获取临时凭据的代码

使用这些凭证,lambda应该调用step函数


如果要在cdk部署发生时触发某些事件:

这似乎是一个奇怪的用例,但我认为这里的解决方案是定义一个自定义资源。 cdk和cloudformation都支持:

因为您使用的是自定义资源,所以需要自己进一步处理创建、更新和删除事件。同样,发送完成响应,我建议您使用cfnresponsemodule发回完成响应,否则cdk将无法判断您的自定义资源功能何时完成: