簡體   English   中英

無法使用 AWS CDK 從 SSM 獲取參數?

[英]Unable to fetch parameters from SSM using AWS CDK?

什么:- 我正在嘗試創建包含虛擬值的 SSM 參數。 然后訪問它們並在聊天機器人配置中引用它們。

存儲后,我想在聊天機器人中訪問它。

new ssm.StringListParameter(this, 'store-slack-ssm-param', {
      parameterName: "slackChannelChatbotConfiguration",
      stringListValue: ['slackChannelNameTobeAddedFromConsole', 'slack channelIdFromConsole'],
    });

    const slackParam = new CfnParameter(this, 'access-slack-ssm-param', {
      type: 'AWS::SSM::Parameter::Value<List<String>>',
      default: 'slackChannelChatbotConfiguration',
    })
 new chatbot.SlackChannelConfiguration(this, 'chatbot-slack-notification', {
  slackChannelConfigurationName: Fn.select(0, slackParam.valueAsList),
  slackWorkspaceId: this.slackWorkspaceId,
  slackChannelId: Fn.select(1, slackParam.valueAsList),
  notificationTopics: [this.snsTopic],
})

在部署期間它顯示此錯誤

[ValidationError]: Unable to fetch parameters [slackChannelChatbotConfiguration] from parameter store for this account.

注意:- 如果我手動存儲這些 ssm 參數並直接在我的 cdk 代碼中訪問它們,這可行,只有創建然后在 cdk 代碼中訪問是行不通的。

更新:根據此https://docs.aws.amazon.com/cdk/v2/guide/get_ssm_value.html

這些方法返回令牌,而不是實際值。 該值由 AWS CloudFormation 在部署期間解析。

來自 ssm 的值在部署期間被解析,因此當您創建它時無法訪問,但如果您已經擁有類似的現有參數,則此方法有效。

您不需要CfnParameter構造 - 正如您所發現的,它要求參數在部署之前存在。

只需使用您正在創建的參數,如下所示:

const slackParam = new ssm.StringListParameter(this, 'store-slack-ssm-param', {
      parameterName: "slackChannelChatbotConfiguration",
      stringListValue: ['slackChannelNameTobeAddedFromConsole', 'slack channelIdFromConsole'],
    });
new chatbot.SlackChannelConfiguration(this, 'chatbot-slack-notification', {
  slackChannelConfigurationName: Fn.select(0, slackParam.stringListValue),
  slackWorkspaceId: this.slackWorkspaceId,
  slackChannelId: Fn.select(1, slackParam.stringListValue),
  notificationTopics: [this.snsTopic],
});

參考: https ://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ssm.StringListParameter.html#stringlistvalue-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM