Update a connector
Update connector configuration
This procedure describes how to update the configuration of an existing MSK Connect connector using the Amazon Web Services Management Console.
Updating connector configuration using the Amazon Web Services Management Console
Open the Amazon MSK console at https://console.aws.amazon.com/msk/
. In the left pane, under MSK Connect, choose Connectors.
-
Select an existing connector.
Choose Edit connector configuration.
Update the connector configuration. You can't override
connector.classusing UpdateConnector. The following example shows an example configuration for the Confluent Amazon S3 Sink connector.connector.class=io.confluent.connect.s3.S3SinkConnector tasks.max=2 topics=my-example-topic s3.region=us-east-1 s3.bucket.name=amzn-s3-demo-bucket flush.size=1 storage.class=io.confluent.connect.s3.storage.S3Storage format.class=io.confluent.connect.s3.format.json.JsonFormat partitioner.class=io.confluent.connect.storage.partitioner.DefaultPartitioner key.converter=org.apache.kafka.connect.storage.StringConverter value.converter=org.apache.kafka.connect.storage.StringConverter schema.compatibility=NONE-
Choose Submit.
-
You can then monitor the current state of the operation in the Operations tab of the connector.
Use the skipHealthValidation parameter to control whether Amazon MSK Connect
runs connector-level and task-level health checks after it applies your update. If you
set it to true, Amazon MSK Connect skips those checks. If you set it to
false or omit it, the checks run.
Every update to a connector that is in the PAUSED state requires
skipHealthValidation to be true, because Amazon MSK Connect
cannot validate the health of a connector that is not processing records. For more
information, see Pause and resume a
connector.
To use the MSK Connect API to update the configuration of a connector, see UpdateConnector.
Update worker settings
You can update a connector's custom plugin and worker configuration without deleting and recreating the connector. For example, you can move the connector to a new version of your plugin code, or change how its workers are configured. To do this, update the connector's worker settings. The worker settings comprise the connector's custom plugin, its worker configuration, and its capacity. You can change one or more of them in a single update:
Update the custom plugin. For example, to run a new version of your connector code, create a custom plugin that contains the new code, and then update the connector to use that plugin. The plugin must be in the
ACTIVEstate and in the same Amazon account and Region as the connector. A connector uses exactly one plugin.Update the worker configuration. Switch the connector to a different custom worker configuration, or return it to the default worker configuration that Amazon MSK Connect provides. For example, to change a worker property, create a worker configuration that contains the new value, and then update the connector to use that worker configuration. The worker configuration must be in the same Amazon account and Region as the connector. For more information about worker configurations, see Understand MSK Connect workers.
Update the capacity. Choose new provisioned or autoscaled capacity for the connector. For more information about capacity, see Understand connector capacity.
When you change the plugin or the worker configuration, Amazon MSK Connect starts a new set of workers with the new settings, moves the connector's tasks to the new workers, and then removes the previous workers.
Update the connector configuration and the worker settings in separate requests. In a worker settings update, specify at least one value that differs from the connector's current worker settings.
Before you update worker settings, make sure that the following prerequisites are met:
The connector is in the
RUNNINGorPAUSEDstate.An update to a connector that is in the
PAUSEDstate requires you to skip health validation, because Amazon MSK Connect cannot validate the health of a connector that is not processing records. We recommend that you resume a paused connector before updating it, so that health validation and automatic rollback apply to the update. For more information about health validation, see Health validation and rollback.
No other lifecycle operation is running on the connector.
You have the connector's current version if you use the Amazon Command Line Interface (Amazon CLI) or the MSK Connect API.
DescribeConnectorreturns it incurrentVersion. Each update changes the version, so get it again before you submit another update.
Updating worker settings using the Amazon Web Services Management Console
Open the Amazon MSK console at https://console.aws.amazon.com/msk/
. In the left pane, under MSK Connect, choose Connectors.
In the list of connectors, select the connector that you want to update, choose Actions, and then choose Edit worker settings.
Change the settings that you want to update:
To change the plugin, under Choose custom plugin, choose a custom plugin.
To return to the default worker configuration, under Worker configuration, choose MSK default configuration.
To use a custom worker configuration, under Worker configuration, choose Custom configuration, and then choose a worker configuration.
To change the capacity, edit the capacity settings.
(Optional) Select Skip health validation and rollback. An update to a connector that is in the
PAUSEDstate requires this option.Choose Save changes.
Updating worker settings using the Amazon CLI
Run the following Amazon CLI command to get the connector's current version. In
this command and the commands that follow, replace the placeholder values, such
as connector_arn, with your own values.
aws kafkaconnect describe-connector \ --connector-arnconnector_arn\ --query currentVersion \ --output text
To switch the connector to a different custom plugin, run the following Amazon CLI command. Specify exactly one plugin:
aws kafkaconnect update-connector \ --connector-arnconnector_arn\ --current-versioncurrent_version\ --plugins customPlugin={customPluginArn=custom_plugin_arn,revision=1}
To switch the connector to a different custom worker configuration, run the following Amazon CLI command:
aws kafkaconnect update-connector \ --connector-arnconnector_arn\ --current-versioncurrent_version\ --worker-configuration workerConfigurationArn=worker_configuration_arn,revision=1
To return the connector to the default worker configuration, run the following
Amazon CLI command. Use the --use-default-worker-configuration option
without --worker-configuration:
aws kafkaconnect update-connector \ --connector-arnconnector_arn\ --current-versioncurrent_version\ --use-default-worker-configuration
You can combine the --capacity option, the
--plugins option, and one of the worker configuration options
in the same command. To skip health validation, add the
--skip-health-validation option.
Tracking the update
The update is asynchronous. When you submit it, you receive a connector operation
Amazon Resource Name (ARN). While the update runs, the connector is in the
UPDATING state. In the console, you can monitor the operation in
the Operations tab of the connector.
To track the update with the Amazon CLI, run the following command with the
connectorOperationArn that the update-connector
command returned. The response reports the operation state. Its
originWorkerSetting and targetWorkerSetting fields
show the worker settings before and after the update:
aws kafkaconnect describe-connector-operation \ --connector-operation-arnoperation_arn
A worker settings update has the operation type
UPDATE_WORKER_SETTING. The following states describe its
progress:
UPDATE_IN_PROGRESSAmazon MSK Connect accepted the update and is applying it. The connector is in the
UPDATINGstate.UPDATE_COMPLETEThe connector runs with the new worker settings. It has returned to the state that it was in before the update,
RUNNINGorPAUSED.UPDATE_FAILEDThe update did not take effect. The connector keeps its previous worker settings and returns to the state that it was in before the update. Depending on where the update failed, Amazon MSK Connect either did not start it or rolled it back. The
errorInfofield reports the cause. For more information about why an update fails, see Worker settings update reaches UPDATE_FAILED state.
Health validation and rollback
After the tasks move, Amazon MSK Connect validates the connector's health on the
new workers. The update fails if the connector does not become
healthy, for example if tasks are failing that were not failing before the
update, or if fewer tasks are running than before the update.
When this validation fails, Amazon MSK Connect automatically rolls the update back. It
restores the previous workers and removes the new workers, and the connector
keeps its previous worker settings. The operation reaches the
UPDATE_FAILED state.
If you skip health validation, Amazon MSK Connect does not validate the connector's health on the new workers and does not roll the update back. The update stays in effect even when the connector or its tasks are unhealthy on the new workers.
Considerations
Consider the following when you update worker settings:
During a plugin or worker configuration update, the previous workers and the new workers exist at the same time. Each worker uses one IP address from your subnets. Make sure that the subnets have enough free IP addresses for the new workers.
During a plugin or worker configuration update, tasks stop processing records while they move to the new workers. The connector's committed offsets are stored in Kafka topics on your cluster, and the update does not affect them. After the update, the tasks continue from the offsets that they last committed.
Make sure that the new plugin contains the connector class that your connector configuration specifies. Also make sure that the new worker configuration is compatible with your connector. If the connector can't start on the new workers, health validation fails and Amazon MSK Connect rolls back the update.
A connector uses exactly one plugin. To use more than one plugin, create a single custom plugin from a ZIP file that bundles the plugins together.
In a request, specify either a custom worker configuration or the default worker configuration, not both.
Wait for an update to complete before you perform other lifecycle operations on the connector, such as restart, pause, resume, or delete.
Use
DescribeConnectorOperationwith the returnedconnectorOperationArnto track whether the operation is in progress, complete, or failed.