Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions,
see Getting Started with Amazon Web Services in China
(PDF).
• Amazon Systems Manager Change Manager is no longer open to new customers. Existing customers can continue to use the service as normal. For more information, see
Amazon Systems Manager Change Manager availability change.
• The Amazon Systems Manager CloudWatch Dashboard will no longer be available after April 30, 2026. Customers can continue to use Amazon CloudWatch console to view, create, and manage their Amazon CloudWatch dashboards, just as they do today. For more information, see
Amazon CloudWatch Dashboard documentation.
Use UpdateOpsItem with an Amazon SDK or CLI
The following code examples show how to use UpdateOpsItem.
Action examples are code excerpts from larger programs and must be run in context. You can see this action in
context in the following code example:
- CLI
-
- Amazon CLI
-
To update an OpsItem
The following update-ops-item example updates the description, priority, and category for an OpsItem. In addition, the command specifies an SNS topic where the notifications are sent when this OpsItem is edited or changed.
aws ssm update-ops-item \
--ops-item-id "oi-287b5EXAMPLE" \
--description "Primary OpsItem for failover event 2020-01-01-fh398yf" \
--priority 2 \
--category "Security" \
--notifications "Arn=arn:aws:sns:us-east-2:111222333444:my-us-east-2-topic"
Output:
This command produces no output.
For more information, see Working with OpsItems in the Amazon Systems Manager User Guide.
- Java
-
- SDK for Java 2.x
-
/**
* Resolves an AWS SSM OpsItem asynchronously.
*
* @param opsID The ID of the OpsItem to resolve.
* <p>
* This method initiates an asynchronous request to resolve an SSM OpsItem.
* If an exception occurs, it handles the error appropriately.
*/
public void resolveOpsItem(String opsID) {
UpdateOpsItemRequest opsItemRequest = UpdateOpsItemRequest.builder()
.opsItemId(opsID)
.status(OpsItemStatus.RESOLVED)
.build();
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
getAsyncClient().updateOpsItem(opsItemRequest)
.thenAccept(response -> {
System.out.println("OpsItem resolved successfully.");
})
.exceptionally(ex -> {
throw new CompletionException(ex);
}).join();
}).exceptionally(ex -> {
Throwable cause = (ex instanceof CompletionException) ? ex.getCause() : ex;
if (cause instanceof SsmException) {
throw new RuntimeException("SSM error: " + cause.getMessage(), cause);
} else {
throw new RuntimeException("Unexpected error: " + cause.getMessage(), cause);
}
});
try {
future.join();
} catch (CompletionException ex) {
throw ex.getCause() instanceof RuntimeException ? (RuntimeException) ex.getCause() : ex;
}
}
- JavaScript
-
- SDK for JavaScript (v3)
-
import { UpdateOpsItemCommand, SSMClient } from "@aws-sdk/client-ssm";
import { parseArgs } from "node:util";
/**
* Update an SSM OpsItem.
* @param {{ opsItemId: string, status?: OpsItemStatus }}
*/
export const main = async ({
opsItemId,
status = undefined, // The OpsItem status. Status can be Open, In Progress, or Resolved
}) => {
const client = new SSMClient({});
try {
await client.send(
new UpdateOpsItemCommand({
OpsItemId: opsItemId,
Status: status,
}),
);
console.log("Ops item updated.");
return { Success: true };
} catch (caught) {
if (
caught instanceof Error &&
caught.name === "OpsItemLimitExceededException"
) {
console.warn(
`Couldn't create ops item because you have exceeded your open OpsItem limit. ${caught.message}.`,
);
} else {
throw caught;
}
}
};
- Python
-
- SDK for Python (Boto3)
-
class OpsItemWrapper:
"""Encapsulates AWS Systems Manager OpsItem actions."""
def __init__(self, ssm_client):
"""
:param ssm_client: A Boto3 Systems Manager client.
"""
self.ssm_client = ssm_client
self.id = None
@classmethod
def from_client(cls):
"""
:return: A OpsItemWrapper instance.
"""
ssm_client = boto3.client("ssm")
return cls(ssm_client)
def update(self, title=None, description=None, status=None):
"""
Update an OpsItem.
:param title: The new OpsItem title.
:param description: The new OpsItem description.
:param status: The new OpsItem status.
:return:
"""
args = dict(OpsItemId=self.id)
if title is not None:
args["Title"] = title
if description is not None:
args["Description"] = description
if status is not None:
args["Status"] = status
try:
self.ssm_client.update_ops_item(**args)
except ClientError as err:
logger.error(
"Couldn't update ops item %s. Here's why: %s: %s",
self.id,
err.response["Error"]["Code"],
err.response["Error"]["Message"],
)
raise
- SAP ABAP
-
- SDK for SAP ABAP
-
TRY.
lo_ssm->updateopsitem(
iv_opsitemid = iv_ops_item_id
iv_title = iv_title
iv_description = iv_description
iv_status = iv_status ).
MESSAGE 'OpsItem updated.' TYPE 'I'.
CATCH /aws1/cx_ssmopsitemnotfoundex.
MESSAGE 'OpsItem not found.' TYPE 'I'.
CATCH /aws1/cx_ssmopsiteminvparamex.
MESSAGE 'Invalid OpsItem parameter.' TYPE 'I'.
ENDTRY.
For a complete list of Amazon SDK developer guides and code examples, see
Using this service with an Amazon SDK.
This topic also includes information about getting started and details about previous SDK versions.