Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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
Amazon web services 如何创建lambda boto3函数以在另一个Aws帐户中创建cloudformation堆栈_Amazon Web Services_Aws Lambda_Amazon Cloudformation - Fatal编程技术网

Amazon web services 如何创建lambda boto3函数以在另一个Aws帐户中创建cloudformation堆栈

Amazon web services 如何创建lambda boto3函数以在另一个Aws帐户中创建cloudformation堆栈,amazon-web-services,aws-lambda,amazon-cloudformation,Amazon Web Services,Aws Lambda,Amazon Cloudformation,我想创建一个lambda函数,它可以在另一个Aws帐户中创建cloudformation堆栈,并从中的S3 bucket获取模板 源帐户。AWS CloudFormation只能从部署资源的AWS帐户运行 因此,账户A中的AWS Lambda功能需要: 对帐户B中的IAM角色调用AssumeRole(),这将为帐户B提供临时凭据 使用这些临时凭据调用CreateStack()在Account-B中创建CloudFormation堆栈 用于创建堆栈的模板文件可以作为CreateStack()调

我想创建一个lambda函数,它可以在另一个Aws帐户中创建cloudformation堆栈,并从中的S3 bucket获取模板
源帐户。

AWS CloudFormation只能从部署资源的AWS帐户运行

因此,账户A中的AWS Lambda功能需要:

  • 对帐户B中的IAM角色调用
    AssumeRole()
    ,这将为帐户B提供临时凭据
  • 使用这些临时凭据调用
    CreateStack()
    在Account-B中创建CloudFormation堆栈
用于创建堆栈的模板文件可以作为
CreateStack()
调用的一部分传递,也可以通过AmazonS3 URL引用。如果模板来自Account-A,那么S3 bucket将需要使Account-B可以访问该对象(例如通过bucket策略或ACL)


Ref:

有任何问题,特别是错误吗?您当前的代码是什么?为什么不起作用?请尝试将其分解。您需要生成一个CFN模板并将其保存在源帐户S3中,然后需要设置一个交叉帐户以在两个帐户之间复制文件,然后在目标帐户上触发Lambda以创建CFN模板。您要做的是将CFN放入S3存储桶中,并通过URL调用Lambda以在目标帐户上执行,然后跨目标帐户复制S3文件并执行CFN模板。@Jeremythonpson我已准备好CFN模板,但我不知道如何使用boto3在Lambda中编写完整的代码。你们能帮我提供完整的lambda代码吗?我已经创建了上面提到的假定角色,但我在为上述需求编写适当的lambda函数时感到困惑@AssumeRole的示例代码:我应该为boto3中的cloudformation编写什么代码?从Python中,使用它启动cloudformation堆栈。