首页 > 解决方案 > 获取输入 yaml 文件以创建 sns 主题的 Python 脚本

问题描述

该脚本没有给出任何错误,它只是在控制台上显示 yaml 代码

Python脚本:

test_sns_topic.py

import boto3
import yaml

client =  boto3.resource(
's3',
aws_access_key_id = '',
aws_secret_access_key = '',
aws_session_token = '',
region_name = 'us-west-2'

)

sns = boto3.client('sns')

with open('sns.yaml') as f:
   data = yaml.load(f,Loader= yaml.FullLoader)
   print(data)

sns.yaml

Type: AWS::SNS::Topic
Properties:
  DisplayName: Test
  KmsMasterKeyID: 7fba2279-673-73878748343
  TopicName: test_sns_topic

我正在尝试使用将 yaml 文件作为输入的 python 脚本创建一个主题。

输出:

它现在正在读取 yaml 文件,但没有在 aws 中创建任何主题,它只是在控制台上显示 yaml 代码。

标签: pythonamazon-web-servicesyamldevopsamazon-sns

解决方案


此代码看起来像是属于 CloudFormation 模板:

Type: AWS::SNS::Topic
Properties:
  DisplayName: Test
  KmsMasterKeyID: 7fba2279-673-73878748343
  TopicName: test_sns_topic

(它是模板的一部分,而不是完整的模板。)

AWS CloudFormation 可以根据模板中的定义部署基础设施。对于此代码段,它将使用给定名称和 KMS 密钥创建一个 Amazon SNS 主题。它应该作为更完整的 CloudFormation 模板的一部分进行部署。正如所写,它不会从 Python 做任何事情

如果您希望从 Python(而不是 CloudFormation)创建 Amazon SNS 主题,则应使用该create_topic()命令。


推荐阅读