Amazon web services CloudFormation CreateStack API包含宏时失败
我正在使用CloudFormation Boto3 API来使用API创建堆栈。如果我传递一个没有宏的模板,我就能够创建堆栈 前 我还创建了一个宏,可以通过CLI和CloudFormation UI调用它。所以基本上我使用的是上面的云形成和附加的变换Amazon web services CloudFormation CreateStack API包含宏时失败,amazon-web-services,aws-lambda,amazon-cloudformation,amazon-iam,Amazon Web Services,Aws Lambda,Amazon Cloudformation,Amazon Iam,我正在使用CloudFormation Boto3 API来使用API创建堆栈。如果我传递一个没有宏的模板,我就能够创建堆栈 前 我还创建了一个宏,可以通过CLI和CloudFormation UI调用它。所以基本上我使用的是上面的云形成和附加的变换 Transform: StackMetrics Resources: Bucket1: Type: AWS::S3::Bucket Bucket2: Type: AWS::S3::Bucket 如前所述,它是通过CL
Transform: StackMetrics
Resources:
Bucket1:
Type: AWS::S3::Bucket
Bucket2:
Type: AWS::S3::Bucket
如前所述,它是通过CLI和UI工作的,而不是通过API
client = boto3.client('cloudformation')
response = client.create_stack(
StackName='MacroTestStack', TemplateURL='<path_to_above_template>',
Capabilities=['CAPABILITY_AUTO_EXPAND']
)
return response
client=boto3.client('cloudformation'))
response=client.create\u堆栈(
StackName='MacroTestStack',TemplateURL='',
能力=[“能力自动扩展”]
)
返回响应
我尝试使用CLI和UI。如果它在CLI和UI中工作,那么它在API中工作(API是基础AWS API)。我想你的意思是它在boto3 SDK中不起作用(请注意SDK,而不是API,它们是完全不同的东西) 最可能的原因是您的boto3 SDK处于后台。更新并重试
PS如果您进行SDK调用但它不工作,通常会出现某种错误消息、错误响应代码或异常。请提供这些信息,这样我们就不用猜测了。谢谢@jarmod。我解决了这个问题。看来我们不得不放弃——罗伦。根据文档-如果不指定值,AWS CloudFormation将使用以前与堆栈关联的角色。如果没有可用的角色,AWS CloudFormation将使用从用户凭据生成的临时会话。所以我必须明确地给出CloudFormation在创建堆栈时将承担的角色。对于宏,此角色应具有lambda invoke权限。因此,我添加了一个具有此权限的角色,它开始工作。无论如何,CF错误消息不是很有用。这里有些东西不太合适。您的代码正在调用create_stack,因此不存在“以前与堆栈关联的角色”。而且,从根本上说,使用awscli应该与使用boto3相同,因此如果使用相同的凭据调用相同的API,那么结果将是相同的。无论如何,很高兴你解决了这个问题。
client = boto3.client('cloudformation')
response = client.create_stack(
StackName='MacroTestStack', TemplateURL='<path_to_above_template>',
Capabilities=['CAPABILITY_AUTO_EXPAND']
)
return response