Вопрос или проблема
Мне нужно переопределить стандартный AWS-RunPatchBaseline на RedHatOnprem-Prod, если это Linux, и на WindowsOnprem-Prod, если это Windows. Поэтому я поместил в S3-ведро следующий json
{
"Operation": "AWS:PatchManager.OverridePatchBaseline",
"Parameters": {
"BaselineId": "",
"Replace": {
"Linux": {
"PatchBaselineId": "RedHatOnprem-Prod"
},
"Windows": {
"PatchBaselineId": "WindowsOnprem-Prod"
}
}
}
}
и настроил URL S3 как переопределение базового уровня, но я получаю следующую ошибку
Invoke-PatchBaselineOperation : Предоставленное BaselineOverride является некорректным json{
"Operation": "AWS:PatchManager.OverridePatchBaseline",
"Parameters": {
"BaselineId": "",
"Replace": {
"Linux": {
"PatchBaselineId": "RedHatOnprem-Prod"
},
"Windows": {
"PatchBaselineId": "WindowsOnprem-Prod"
}
}
}
}
At C:\ProgramData\Amazon\SSM\InstanceData\mi-03d22f5a642181636\document\orchestration\4f13d6a6-3136-4f65-b767-342d5669e
4fd\PatchWindows\_script.ps1:204 char:13
+ $response = Invoke-PatchBaselineOperation -Operation Install -Snapsho ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (Amazon.Patch.Ba...UpdateOperation:InstallWindowsUpdateOperation) [Inv
oke-PatchBaselineOperation], InvalidDataException
+ FullyQualifiedErrorId : PatchBaselineOperations,Amazon.Patch.Baseline.Operations.PowerShellCmdlets.InvokePatchBa
selineOperation
Исключение при вызове "ToString" с "0" аргументами: "Ссылка на объект не установлена на экземпляр объекта."
At C:\ProgramData\Amazon\SSM\InstanceData\mi-03d22f5a642181636\document\orchestration\4f13d6a6-3136-4f65-b767-342d5669e
4fd\PatchWindows\_script.ps1:208 char:5
+ $response.tostring()
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : NullReferenceException
не удалось выполнить команды: код завершения 0xffffffff
Может кто-то помочь мне в этом?
Спасибо
Ответ или решение
Чтобы исправить ошибку, с которой вы столкнулись при попытке переопределения стандартного AWS-RunPatchBaseline с помощью вашего JSON-файла, необходимо убедиться, что структура JSON файла правильная и соответствует требованиям.
1. Проверьте правильность формата JSON
Ваш JSON файл, согласно предоставленному коду, выглядит корректно на первый взгляд, однако важно контролировать все ключи и значения. Попробуйте следующий вариант:
{
"Operation": "AWS:PatchManager.OverridePatchBaseline",
"Parameters": {
"BaselineId": "AWS-RunPatchBaseline",
"Replace": {
"Linux": {
"PatchBaselineId": "RedHatOnprem-Prod"
},
"Windows": {
"PatchBaselineId": "WindowsOnprem-Prod"
}
}
}
}
2. Убедитесь, что указан правильный BaselineId
Убедитесь, что поле BaselineId
содержит ID существующего патч-базиса, который вы хотите переопределить. В примере выше я добавил значение "AWS-RunPatchBaseline"
для ясности. Если вы хотите изменить именно его, укажите корректное значение.
3. Загружайте файл в S3
После редактирования JSON файла убедитесь, что вы загружаете его в правильное S3-место, а также проверьте, что у вас есть необходимые разрешения для доступа к этому файлу.
4. Проверка прав доступа
Убедитесь, что IAM политика, назначенная вашей роли EC2 или SSM, имеет разрешение на доступ к S3 и другим ресурсам, необходимым для выполнения операции.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:OverridePatchBaseline"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": "arn:aws:s3:::YOUR_BUCKET_NAME/YOUR_FILE_NAME.json"
}
]
}
5. Проверка корректности S3 URL
Проверьте URL для вашего JSON файла в S3. Он должен соответствовать формату https://s3.amazonaws.com/имя_вашего_бокета/имя_вашего_файла.json
.
6. Запуск команды
Запустите вашу команду или скрипт заново. Если проблема продолжает возникать, попробуйте включить дополнительное логирование, чтобы отслеживать процесс выполнения и выявить, на каком этапе возникает ошибка.
7. Обратитесь в поддержку AWS
Если после выполнения всех вышеперечисленных шагов проблема не решится, рекомендуется обратиться в службу поддержки AWS для получения помощи по отладке. У них есть доступ к дополнительным логам и информации, которые могут помочь в диагностике проблемы.
Надеюсь, данные рекомендации помогут вам настроить переопределение патч-базиса корректно. Удачи!