[英]jsii error when attempting to create a EC2 using Parameter via AWS CDK in python
[英]jsii error when attempting to create a budget via AWS CDK in python
我正在嘗試通過 AWS CDK 創建預算。
這是代碼,這是通過參考官方文檔和執行類似操作的 TypeScript 解決方案拼湊而成的。
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)
我得到的錯誤是:
錯誤:
值與聯合中的任何類型都不匹配:Wire struct type '@aws-cdk/aws-budgets.CfnBudgetProps' 與預期的 '@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","data":{"budgetType":"COST","timeUnit":"MONTHLY","budgetLimit":{"$jsii.struct":{"fqn":" @aws-cdk/aws-budgets.CfnBudget.SpendProperty","data":{"amount":10,"unit":"USD"}}},"budgetName":"CDK budget","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","data":{"comparisonOperator": "GREATER_THAN","notificationType":"FORECASTED","threshold":90,"thresholdType":"PERCENTAGE"}}},"subscribers":[{"$js ii.struct":{"fqn":"@aws-cdk/aws-budgets.CfnBudget.SubscriberProperty","data":{"address":"${Token[TOKEN.56]}","subscriptionType": "SNS"}}}]}}}}}}
我正在使用帶有類型提示的 IDE,所以我不知道這是如何出現類型不匹配的。
感謝您的閱讀和您的見解。
當使用 python 並創建一個 Construct 時,你有兩個傳遞 props 的選項。 使用 Props 對象或直接使用 Props 對象的參數作為鍵/值對。 您正在混合這兩種方法。 由於您正在創建一個 Props 對象,因此您應該直接傳遞它
budget = aws_budgets.CfnBudget(self, 'cdk budget', budget_props)
您也可以這樣做,而不是創建一個 Props 對象
budget = aws_budgets.CfnBudget(
self, 'cdk budget',
budget=budget_data_props,
notifications_with_subscribers=nws
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.