botocore 1.34.74 documentation

May 2024 · 3 minute read

How Do I Know If I’m Impacted#

Any users relying on registering an event against one service impacting other services are impacted. You can consult the following table to see if you are impacted. If you are registering an event using one of the event parts in the leftmost column with the intention of impacting an unintended target service in the rightmost column, then you are impacted and will need to update.

Event Part

Intended Target Service

Unintended Target Services

rds

rds

neptune

autoscaling

autoscaling

application-autoscaling, autoscaling-plans

kinesisvideo

kinesisvideo

kinesis-video-media, kinesis-video-archived-media

elasticloadbalancing

elb

elbv2

For example, if you are registering an event against before-call.elasticloadbalancing expecting it to run when making calls with an elbv2 client, you will be impacted.

If you are registering an event against one of the services in the Unintended Targets column, you may be impacted if you were relying on those events not firing.

If you are registering events using * in the service place, or are registering against any service not in this table, you will not need a code change. In many cases the actual event name will have changed, but for services without shared endpoints we do the work of translating the event name at registration and emission time. In future versions of botocore we will remove this translation, so you may wish to update your code anyway.

How Do I Update My Code#

You will need to look at the events you are registering against and determine which services you wish to impact with your handler. If you only wish to impact the intended target service (as defined in the above table), then you don’t need to change the event. If you wish to impact another service in addition to the intended target service, you will need to register a new event using that service’s event name. Similarly, if you wish to impact another service instead you will simply need to change the event you are registered against.

To get the new event name, consult this table:

Service

Old Event Name

New Event Name

application-autoscaling

autoscaling

application-auto-scaling

autoscaling-plans

autoscaling

auto-scaling-plans

elbv2

elasticloadbalancing

elastic-load-balancing

kinesis-video-archived-media

kinesisvideo

kinesis-video-archived-media

kinesis-video-media

kinesisvideo

kinesis-video-media

neptune

rds

neptune

Additionally, you can get the new event name in code like so:

from botocore.session import Session session = Session() client = session.create_client('elbv2') service_event_name = client.meta.service_model.service_id.hyphenize() 

Armed with the service event name, simply replace the old service name in the handler with the new service event name. If you were registering an event against before-call.autoscaling intending to impact autoscaling-plans for example, you would instead register against before-call.auto-scaling-plans.

If you are registering an event against one of the services in the Unintended Targets column, you will now see those events getting fired where previously they were not. While this is enabling that expected behavior, this still represents a change in actual behavior. You should not need to update your code, but you should test to ensure that you are seeing the behavior you want.

ncG1vNJzZmian6m8pLvRnmWapZGvvK%2Bt1qxlnKedZMNye8Oomq6llaPBosDIqKVomaCefK2t056qrWeZo7GmxI2hq6ak