首先确认是否正确配置了EventBridge规则和SSM参数存储。确保规则与参数存储在同一区域,并检查规则的详细信息中的状态和目标是否正确配置。
确保您的规则包含正确的事件模式。在这种情况下,您需要设置规则的模式以监听参数存储的更改。示例模式如下所示:
{
"source": ["aws.ssm"],
"detail-type": ["Parameter Store Change"],
"detail": {
"name": ["parameter_name"]
}
}
确保已对SSM参数存储的编辑操作进行了正确的授权。您需要为EventBridge设置正确的IAM角色,以便它具有充足的权限来处理SSM参数存储更改事件。
确保您正在使用最新版本的AWS SDK。可能会出现旧的SDK版本与EventBridge规则不兼容的情况。
以下是一个带有参数更改规则的Node.js示例代码:
const AWS = require('aws-sdk');
const eventBridge = new AWS.EventBridge();
exports.handler = async (event) => {
const ssm = new AWS.SSM();
const params = await ssm.getParameter({
Name: "parameter_name"
}).promise();
const value = params.Parameter.Value;
const paramsChangeEvent = {
Entries: [
{
Source: 'aws.ssm',
DetailType: 'Parameter Store Change',
Detail: JSON.stringify({
name: 'parameter_name',
value: value
})
}
]
};
await eventBridge.putEvents(paramsChangeEvent).promise();
};
此代码将监听SSM参数存储中指定参数的更改,并将其注入事件流中。要使用此代码,请将参数名称替换为您要监听的实际参数名称,并确保将EventBridge规则正确配置为监听此事件类型。