Aws lambda 如何使用boto3部署SAM模板

Aws lambda 如何使用boto3部署SAM模板,aws-lambda,boto,amazon-cloudformation,boto3,aws-cli,Aws Lambda,Boto,Amazon Cloudformation,Boto3,Aws Cli,我正在尝试部署 使用boto3库函数创建_堆栈,但出现错误 “CreateStack不能与包含转换的模板一起使用” 如何使用boto3部署此堆栈 谢谢 注释是正确的,您必须首先创建变更集,然后在变更集创建完成后执行变更集。代码概要如下所示 client=boto3.client('cloudformation')) #用于检索更改集状态的帮助器函数 def CHANGETSETSTATUS(更改集合名称,客户端): response=client.description\u change\u s

我正在尝试部署 使用boto3库函数创建_堆栈,但出现错误

“CreateStack不能与包含转换的模板一起使用”

如何使用boto3部署此堆栈


谢谢

注释是正确的,您必须首先创建变更集,然后在变更集创建完成后执行变更集。代码概要如下所示

client=boto3.client('cloudformation'))
#用于检索更改集状态的帮助器函数
def CHANGETSETSTATUS(更改集合名称,客户端):
response=client.description\u change\u set(
ChangeSetName=更改设置名称,
)
返回响应['Status']
#创建变更集
cs\u response=client.create\u change\u set(
StackName=StackName,
TemplateURL=TemplateURL,
参数=参数,
能力=[能力],
ChangeSetType=“创建”,
ChangeSetName=stackname+“-cs”
)
#删除打印语句,此处用于说明
打印(str(cs_响应))
更改设置名称=cs\u响应['Id']
#等待更改集状态为“创建\完成”
尽管如此:
响应=更改设置状态(更改设置名称,客户端)
打印(str(回复))
时间。睡眠(10)
如果响应==“创建_完成”:
打破
#执行变更集
ex\u response=client.execute\u change\u set(
ChangeSetName=更改设置名称
)

我认为您必须创建更改集(即使没有现有堆栈),然后应用更改集。转换不适用于CreateStack操作。您现在可以使用Capabilities参数中的
CAPABILITY\u AUTO\u EXPAND
来调用CreateStack。