Edit a service
You can make the following edits to an AWS Proton service.
-
Edit the service description.
-
Edit a service by adding and removing service instances.
Edit service description
You can use the console or the AWS CLI to edit a service description.
Edit a service to add or remove service instances
For an AWS Proton service, you can add or delete service instances by submitting an edited spec. The following conditions must be met for a successful request:
-
Your service and pipeline aren't already being edited or deleted when you submit the edit request.
-
Your edited spec doesn't include edits that modify the service pipeline or edits to existing service instances that aren't to be deleted.
-
Your edited spec doesn't remove any existing service instance that has an attached component. To delete such a service instance, you should first update the component to detach it from its service instance. For more information about components, see AWS Proton components.
Deletion-failed instances are service instances in the DELETE_FAILED
state. When you request a service edit, AWS Proton attempts to remove
the deletion-failed instances for you, as part of the edit process. If any of your service instances failed to delete, there might still be resources
that are associated with the instances, even though they aren't visible from the console or AWS CLI. Check your deletion-failed instance infrastructure
resources and clean them up so that AWS Proton can remove them for you.
For the quota of service instances for a service, see AWS Proton quotas. You also must maintain at least 1
service instance for your service after it's created. During the update process, AWS Proton makes a count of the existing service instances and the
instances to be added or removed. Deletion-failed instances are included in this count and you must account for them when you edit your
spec
.
Use the console or AWS CLI to add or remove service instances
What happens when you add or remove service instances
After you submit a service edit to delete and add service instances, AWS Proton takes the following actions.
-
Sets the service to
UPDATE_IN_PROGRESS
. -
If the service has a pipeline, sets its status to
IN_PROGRESS
and blocks pipeline actions. -
Sets any service instances that are to be deleted to
DELETE_IN_PROGRESS
. -
Blocks service actions.
-
Blocks actions on service instances that are marked for deletion.
-
Creates new service instances.
-
Deletes instances that you listed for deletion.
-
Attempts to remove deletion-failed instances.
-
After additions and deletions are complete, re-provisions the service pipeline (if there is one), sets your service to
ACTIVE
and enables service and pipeline actions.
AWS Proton attempts to re-mediate failure modes as follows.
-
If one or more service instances failed to be created, AWS Proton tries to de-provision all of the newly created service instances and reverts the
spec
to the previous state. It doesn't delete any service instances and it doesn't modify the pipeline in any way. -
If one or more service instances failed to be deleted, AWS Proton re-provisions the pipeline without the deleted instances. The
spec
is updated to include the added instances and to exclude the instances that were marked for deletion. -
If the pipeline fails provisioning, a rollback isn't attempted and both the service and pipeline reflect a failed update state.
Tagging and service edits
When you add service instances as part of your service edit, AWS managed tags propagate to and are automatically created for the new instances and provisioned resources. If you create new tags, those tags are only applied to the new instances. Existing service customer managed tags also propagate to the new instances. For more information, see AWS Proton resources and tagging.