如何在执行 [aws cloudformation create-stack] 后自动提取 VPCID、PrivateSubnet1、PublicSubnet1、S3BucketName 和 DBSubnetGroup
How to extract VPCID, PrivateSubnet1, PublicSubnet1, S3BucketName & DBSubnetGroup automatically after executing [aws cloudformation create-stack]
我运行这个命令:
aws cloudformation create-stack --stack-name my-stackname --template-body file://stack.yml --parameters file://stack-params.json
得到这个结果:
arams.json
{
"StackId": "arn:aws:cloudformation:us-east-1:343434345343:stack/some-stack-name/43434f-sed434-1147-867c-098sdfs09sdd"
}
但是,我正在寻找一种方法来 programmatically/automatically 捕获 VPCID、PrivateSubnet1、PrivateSubnet2、PublicSubnet1、PublicSubnet2、S3BucketName 和 DBSubnetGroup[=28= 的值] 基于上面创建的基本堆栈的输出部分中的值。
我不想登录到我的 aws cloudformation 服务控制台来手动复制和粘贴这些值。
有没有办法自动提取该数据,也许是某种脚本?
如果该数据在输出中,我可以将上述命令的输出通过管道传输到另一个程序并解析数据,但我在输出中得到的只是 stackid。
如何根据输出中的值获取 VPCID、PrivateSubnet1、PrivateSubnet2、PublicSubnet1、PublicSubnet2、S3BucketName 和 DBSubnetGroup上面创建的基础堆栈部分?
您可以使用 aws cloudformation wait
命令等待堆栈完成,然后再检查输出值。例如:
aws cloudformation create-stack \
--stack-name my-stackname \
--template-body file://stack.yml \
--parameters file://stack-params.json
aws cloudformation wait stack-create-complete \
--stack-name my-stackname
aws cloudformation describe-stacks \
--stack-name my-stackname \
--query "Stacks[0].Outputs"
如果你想一个一个地获取堆栈输出,你可以使用这样的查询:
aws cloudformation describe-stacks \
--stack-name my-stackname \
--query "Stacks[0].Outputs[?OutputKey=='VPCID'].OutputValue" \
--output text
请注意,对于 wait
,如果您正在执行更新而不是创建,则需要使用 stack-update-complete
。
我运行这个命令:
aws cloudformation create-stack --stack-name my-stackname --template-body file://stack.yml --parameters file://stack-params.json
得到这个结果:
arams.json
{
"StackId": "arn:aws:cloudformation:us-east-1:343434345343:stack/some-stack-name/43434f-sed434-1147-867c-098sdfs09sdd"
}
但是,我正在寻找一种方法来 programmatically/automatically 捕获 VPCID、PrivateSubnet1、PrivateSubnet2、PublicSubnet1、PublicSubnet2、S3BucketName 和 DBSubnetGroup[=28= 的值] 基于上面创建的基本堆栈的输出部分中的值。
我不想登录到我的 aws cloudformation 服务控制台来手动复制和粘贴这些值。
有没有办法自动提取该数据,也许是某种脚本? 如果该数据在输出中,我可以将上述命令的输出通过管道传输到另一个程序并解析数据,但我在输出中得到的只是 stackid。
如何根据输出中的值获取 VPCID、PrivateSubnet1、PrivateSubnet2、PublicSubnet1、PublicSubnet2、S3BucketName 和 DBSubnetGroup上面创建的基础堆栈部分?
您可以使用 aws cloudformation wait
命令等待堆栈完成,然后再检查输出值。例如:
aws cloudformation create-stack \
--stack-name my-stackname \
--template-body file://stack.yml \
--parameters file://stack-params.json
aws cloudformation wait stack-create-complete \
--stack-name my-stackname
aws cloudformation describe-stacks \
--stack-name my-stackname \
--query "Stacks[0].Outputs"
如果你想一个一个地获取堆栈输出,你可以使用这样的查询:
aws cloudformation describe-stacks \
--stack-name my-stackname \
--query "Stacks[0].Outputs[?OutputKey=='VPCID'].OutputValue" \
--output text
请注意,对于 wait
,如果您正在执行更新而不是创建,则需要使用 stack-update-complete
。