首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中尝试通过AWS CDK创建预算时出现jsii错误

在python中尝试通过AWS CDK创建预算时出现jsii错误
EN

Stack Overflow用户
提问于 2020-10-19 01:59:32
回答 1查看 743关注 0票数 0

我正试图通过AWS CDK创建一个预算。

下面是代码,通过引用官方文档和TypeScript解决方案来完成类似的工作。

代码语言:javascript
复制
email = 'yo@yo.yo'
value = 90.0
subscription = sns_sub.EmailSubscription(email)
topic = sns.Topic(self, id='notification_topic', display_name='budget notifications',
                          topic_name='budget_notifications')
topic.add_subscription(subscription)
budget_data_props = aws_budgets.CfnBudget.BudgetDataProperty(budget_type='COST', time_unit='MONTHLY', 
                                                             budget_name='CDK budget',
                                                             budget_limit=aws_budgets.CfnBudget.SpendProperty(amount=value, unit='USD'))
np = aws_budgets.CfnBudget.NotificationProperty(comparison_operator='GREATER_THAN',
                                                notification_type='FORECASTED', threshold=90.0,
                                                threshold_type='PERCENTAGE')
sub = aws_budgets.CfnBudget.SubscriberProperty(address=topic.topic_arn, subscription_type='SNS')
nws = aws_budgets.CfnBudget.NotificationWithSubscribersProperty(notification=np, subscribers=[sub])

budget_props = aws_budgets.CfnBudgetProps(budget=budget_data_props, notifications_with_subscribers=nws)
budget = aws_budgets.CfnBudget(self, 'cdk budget', budget=budget_props)

我得到的错误是:

错误:

'@aws-cdk/aws-budgets.CfnBudget.BudgetDataProperty',值与联合中的任何类型不匹配:有线结构类型‘@aws/aws-

。COST’不匹配预期的{"$jsii.struct":{"fqn":"@aws-cdk/aws-budgets.CfnBudgetProps","data":{"budget":{"$jsii.struct":{"fqn":"@aws-cdk/aws-budgets.CfnBudget.BudgetDataProperty",预期对象引用,获取{“$jsii.struct”:{“fqn”:“@aws-cdk/aws-budgets.CfnBudgetProps”,“data”:{“budget”:{“$jsii.struct”:{“fqn”:“@aws-cdk/aws-budgets.CfnBudget.BudgetDataProperty”,“数据”:{“budgetType”:“成本”,“timeUnit”:“timeUnit”,“timeUnit”:{“timeUnit”:10,“unit”:“美元”}},"budgetName":"CDK预算“,"costFilters":null,"costTypes":null,"plannedBudgetLimits":null,”timePeriod“:null}},"notificationsWithSubscribers":{"$jsii.struct":{"fqn":"@aws-cdk/aws-budgets.CfnBudget.NotificationWithSubscribersProperty","data":{"notification":{"$jsii.struct":{"fqn":"@aws-cdk/aws-budgets.CfnBudget.NotificationProperty",“comparisonOperator”:{“comparisonOperator”:“GREATER_THAN”,“notificationType”:“预测”,“阈值”:90,“thresholdType”:“百分比”}},"subscribers":[{"$jsii.struct":{"fqn":"@aws-cdk/aws-budgets.CfnBudget.SubscriberProperty","data":{"address":"${TokenTOKEN.56}",“subscriptionType”:“SNS”}

我正在使用一个带有类型暗示的IDE,所以我不知道这是如何导致类型错配的。

感谢您的阅读和见解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 03:23:58

在使用python和创建构造时,您有两个传递道具的选项。直接使用支持对象或支持对象的参数作为键/值对。你把这两种方法混合在一起。由于您正在创建道具对象,所以应该直接传递它。

代码语言:javascript
复制
budget = aws_budgets.CfnBudget(self, 'cdk budget', budget_props)

您也可以这样做,而不是创建道具对象。

代码语言:javascript
复制
budget = aws_budgets.CfnBudget(
    self, 'cdk budget', 
    budget=budget_data_props, 
    notifications_with_subscribers=nws
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64420181

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档