每当出现带有以下示例事件的 EC2 Spot 实例中断警告时,我都会尝试使用 curl 命令通过 webhook 触发 Jenkins 作业。所有这些都将在来自 CloudWatch 事件触发器的 AWS lambda 中完成。
{
"version": "0",
"id": "1e5527d7-bb36-4607-3370-4164db56a40e",
"detail-type": "EC2 Spot Instance Interruption Warning",
"source": "aws.ec2",
"account": "123456789012",
"time": "1970-01-01T00:00:00Z",
"region": "us-east-1",
"resources": [
"arn:aws:ec2:us-east-1b:instance/i-0b662ef9931388ba0"
],
"detail": {
"instance-id": "i-0b662ef9931388ba0",
"instance-action": "terminate"
}
}
我的目标是从事件中获取 instance-id 并将其作为标头传递给 jenkins webhook,在 jenkins 作业被触发的地方,此标头必须作为参数发送到 jenkins 作业中的底层 python 脚本。
我尝试了以下方法,但没有成功。而且我不确定这是否是这样做的。:)
curl -H 'param: instance' https://jenkins.url/generic-webhook-trigger/invoke\?token\=jenkins-job
通用 Jenkins webhook 触发器配置如下。
作业中的最终 python 脚本配置如下。
python maintenance.py $.param
我正在尝试获得类似于下面的最终脚本。如果您知道任何方法,请告诉我如何完成此操作。TIA
python maintenance.py i-0b662ef9931388ba