将 AWS CLI YAML 输出输出到控制台

Output AWS CLI YAML output to console

我正在使用 AWS CLI 和 CloudFormation 创建一个新的 S3 存储桶。 这是我的 yaml 文件:

AWSTemplateFormatVersion: '2010-09-09'
Description: Creates an S3 bucket
Parameters:
  BucketName:
    Description: Name of the Bucket
    Type: String

Resources:
  ArtifactBucket:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain

Outputs:
  ArtifactBucket:
    Value: !Sub ${BucketName}
  BucketArn:  
    Value: !GetAtt ArtifactBucket.Arn
    Description: Arn of the new bucket

我 运行 它在终端中使用以下 cli 命令 window:

aws cloudformation deploy --stack-name brendan-s3 \
--template-file ComposeEveryApp/create-s3-bucket.yaml \
--profile compose-staging \
--parameter-overrides BucketName=brendan

一切正常。这是 AWS 控制台中显示的新存储桶: 我想在终端 window 中显示新存储桶的 Arn(如上所示)。我该怎么做?

命令aws cloudformation deploy只是指示CloudFormation 服务开始部署,实际上并没有等待部署完成。因此,在 Outputs 部分和您在 CLI 上执行的命令的 return 值之间没有 link。

如果您想要 cloudformation 堆栈的 Outputs,如果您只想输出该特定值,则必须使用 describe-stacks command, and you'll need to combine it with a client side filter using --query

您可以在 this SO question 上找到更多信息。

您可以使用describe-stacks 命令。它的 return 值之一将是您堆栈的输出。