Modifier un service - AWS Proton

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Modifier un service

Vous pouvez apporter les modifications suivantes à un AWS Proton service.

  • Modifiez la description du service.

  • Modifiez un service en ajoutant et en supprimant des instances de service.

Modifier la description du service

Vous pouvez utiliser la console ou le AWS CLI pour modifier la description d'un service.

AWS Management Console

Modifiez un service à l'aide de la console comme décrit dans les étapes suivantes.

Dans la liste des services.
  1. Dans la AWS Proton console, choisissez Services.

  2. Dans la liste des services, cliquez sur le bouton radio situé à gauche du service que vous souhaitez mettre à jour.

  3. Choisissez Modifier.

  4. Sur la page Configurer le service, remplissez le formulaire et choisissez Next.

  5. Sur la page Configurer les paramètres personnalisés, choisissez Next.

  6. Passez en revue vos modifications et choisissez Enregistrer les modifications.

Sur la page détaillée du service.
  1. Dans la AWS Proton console, choisissez Services.

  2. Dans la liste des services, choisissez le nom du service que vous souhaitez modifier.

  3. Sur la page détaillée du service, choisissez Modifier.

  4. Sur la page Configurer le service, remplissez le formulaire et choisissez Next.

  5. Sur la page Configurer les paramètres personnalisés, remplissez le formulaire et choisissez Suivant.

  6. Passez en revue vos modifications et choisissez Enregistrer les modifications.

AWS CLI

Modifiez une description comme indiqué dans l'exemple de commande et de réponse de la CLI ci-dessous.

Commande :

$ aws proton update-service \ --name "MySimpleService" \ --description "Edit by updating description"

Réponse :

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "branchName": "main", "createdAt": "2021-03-12T22:39:42.318000+00:00", "description": "Edit by updating description", "lastModifiedAt": "2021-03-12T22:44:21.975000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "my-repository/myorg-myapp", "status": "ACTIVE", "templateName": "fargate-service" } }

Modifier un service pour ajouter ou supprimer des instances de service

Pour un AWS Proton service, vous pouvez ajouter ou supprimer des instances de service en soumettant une spécification modifiée. Les conditions suivantes doivent être remplies pour que la demande soit acceptée :

  • Votre service et votre pipeline ne sont pas encore en cours de modification ou de suppression lorsque vous soumettez la demande de modification.

  • Votre spécification modifiée n'inclut pas les modifications qui modifient le pipeline de services ni les modifications apportées aux instances de service existantes qui ne doivent pas être supprimées.

  • Votre spécification modifiée ne supprime aucune instance de service existante à laquelle un composant est attaché. Pour supprimer une telle instance de service, vous devez d'abord mettre à jour le composant afin de le détacher de son instance de service. Pour plus d'informations sur les composants, consultezAWS Proton composants.

Les instances dont la suppression a échoué sont des instances de service en l'DELETE_FAILEDétat. Lorsque vous demandez une modification de service, AWS Proton tente de supprimer pour vous les instances dont la suppression a échoué, dans le cadre du processus de modification. Si l'une de vos instances de service n'a pas pu être supprimée, certaines ressources sont peut-être toujours associées aux instances, même si elles ne sont pas visibles depuis la console ou AWS CLI. Vérifiez les ressources de votre infrastructure d'instance dont la suppression a échoué et nettoyez-les afin de pouvoir les supprimer pour AWS Proton vous.

Pour connaître le quota d'instances de service pour un service, consultezAWS Proton quotas. Vous devez également gérer au moins une instance de service pour votre service après sa création. Au cours du processus de mise à jour, AWS Proton compte les instances de service existantes et les instances à ajouter ou à supprimer. Les instances dont la suppression a échoué sont incluses dans ce décompte et vous devez en tenir compte lorsque vous modifiez votre. spec

Utiliser la console ou AWS CLI pour ajouter ou supprimer des instances de service

AWS Management Console

Modifiez votre service pour ajouter ou supprimer des instances de service à l'aide de la console.

Dans la AWS Proton console

  1. Dans le panneau de navigation, choisissez Services.

  2. Sélectionnez le service que vous souhaitez modifier.

  3. Choisissez Modifier.

  4. (Facultatif) Sur la page Configurer le service, modifiez le nom ou la description du service, puis choisissez Suivant.

  5. Sur la page Configurer les paramètres personnalisés, choisissez Supprimer pour supprimer une instance de service et choisissez Ajouter une nouvelle instance pour ajouter une instance de service et remplir le formulaire.

  6. Choisissez Suivant.

  7. Passez en revue votre mise à jour et choisissez Enregistrer les modifications.

  8. Un modal vous demande de vérifier la suppression des instances de service. Suivez les instructions et choisissez Oui, supprimer.

  9. Sur la page détaillée du service, consultez les détails de l'état de votre service.

AWS CLI

Ajoutez et supprimez des instances de service avec une modificationspec, comme indiqué dans les AWS CLI exemples de commandes et de réponses suivants.

Lorsque vous utilisez la CLI, vous spec devez exclure les instances de service à supprimer et inclure à la fois les instances de service à ajouter et les instances de service existantes que vous n'avez pas marquées pour suppression.

La liste suivante montre l'exemple spec avant la modification et une liste des instances de service déployées par la spécification. Cette spécification a été utilisée dans l'exemple précédent pour modifier la description d'un service.

Spécification :

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "abc" my_sample_pipeline_required_input: "123" instances: - name: "my-instance" environment: "simple-env" spec: my_sample_service_instance_optional_input: "def" my_sample_service_instance_required_input: "456" - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

L'exemple de list-service-instances commande et de réponse de la CLI ci-dessous montre les instances actives avant l'ajout ou la suppression d'une instance de service.

Commande :

$ aws proton list-service-instances \ --service-name "MySimpleService"

Réponse :

{ "serviceInstances": [ { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00", "name": "my-other-instance", "serviceName": "example-svc", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" }, { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.160000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.160000+00:00", "name": "my-instance", "serviceName": "example-svc", "serviceTemplateArn": "arn:aws:proton:region-id:123456789012:service-template/fargate-service", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" } ] }

La liste suivante montre l'exemple modifié spec utilisé pour supprimer et ajouter une instance. L'instance existante nommée my-instance est supprimée et une nouvelle instance nommée yet-another-instance est ajoutée.

Spécification :

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "abc" my_sample_pipeline_required_input: "123" instances: - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789" - name: "yet-another-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

Vous pouvez l'utiliser "${Proton::CURRENT_VAL}" pour indiquer les valeurs de paramètres à conserver par rapport à l'originalspec, si les valeurs existent dans lespec. get-serviceÀ utiliser pour afficher l'original spec d'un service, comme décrit dansAfficher les données de service.

La liste suivante indique comment vous pouvez vous assurer que les modifications apportées "${Proton::CURRENT_VAL}" aux valeurs des paramètres spec ne sont pas incluses pour que les instances de services existantes soient conservées.

Spécification :

proton: ServiceSpec pipeline: my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}" my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}" instances: - name: "my-other-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}" - name: "yet-another-instance" environment: "simple-env" spec: my_sample_service_instance_required_input: "789"

La liste suivante indique la commande et la réponse de la CLI pour modifier le service.

Commande :

$ aws proton update-service --name "MySimpleService" \ --description "Edit by adding and deleting a service instance" \ --spec "file://spec.yaml"

Réponse :

{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService", "branchName": "main", "createdAt": "2021-03-12T22:39:42.318000+00:00", "description": "Edit by adding and deleting a service instance", "lastModifiedAt": "2021-03-12T22:55:48.169000+00:00", "name": "MySimpleService", "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "my-repository/myorg-myapp", "status": "UPDATE_IN_PROGRESS", "templateName": "fargate-service" } }

La list-service-instances commande et la réponse suivantes confirment que l'instance existante nommée my-instance est supprimée et qu'une nouvelle instance nommée yet-another-instance est ajoutée.

Commande :

$ aws proton list-service-instances \ --service-name "MySimpleService"

Réponse :

{ "serviceInstances": [ { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/yet-another-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:56:01.565000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:56:01.565000+00:00", "name": "yet-another-instance", "serviceName": "MySimpleService", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" }, { "arn": "arn:aws:proton:region-id:123456789012:service/MySimpleService/service-instance/my-other-instance", "createdAt": "2021-03-12T22:39:42.318000+00:00", "deploymentStatus": "SUCCEEDED", "environmentName": "simple-env", "lastDeploymentAttemptedAt": "2021-03-12T22:39:43.109000+00:00", "lastDeploymentSucceededAt": "2021-03-12T22:39:43.109000+00:00", "name": "my-other-instance", "serviceName": "MySimpleService", "templateMajorVersion": "1", "templateMinorVersion": "0", "templateName": "fargate-service" } ] }

Que se passe-t-il lorsque vous ajoutez ou supprimez des instances de service

Après avoir soumis une modification de service pour supprimer et ajouter des instances de service, AWS Proton prend les mesures suivantes.

  • Définit le service surUPDATE_IN_PROGRESS.

  • Si le service possède un pipeline, définit son statut sur IN_PROGRESS et bloque les actions du pipeline.

  • Définit toutes les instances de service à supprimer surDELETE_IN_PROGRESS.

  • Bloque les actions de service.

  • Bloque les actions sur les instances de service marquées pour suppression.

  • Crée de nouvelles instances de service.

  • Supprime les instances que vous avez répertoriées pour suppression.

  • Tente de supprimer les instances dont la suppression a échoué.

  • Une fois les ajouts et les suppressions terminés, réapprovisionne le pipeline de services (le cas échéant), définit votre service sur ACTIVE et active les actions de service et de pipeline.

AWS Proton tente de remédier aux modes de défaillance comme suit.

  • Si une ou plusieurs instances de service n'ont pas pu être créées, AWS Proton essaie de déprovisionner toutes les instances de service nouvellement créées et rétablit spec l'état précédent. Il ne supprime aucune instance de service et ne modifie en aucune façon le pipeline.

  • Si une ou plusieurs instances de service n'ont pas pu être supprimées, AWS Proton réapprovisionne le pipeline sans les instances supprimées. Le spec est mis à jour pour inclure les instances ajoutées et pour exclure les instances marquées pour suppression.

  • Si le pipeline échoue au provisionnement, aucune annulation n'est tentée et le service et le pipeline reflètent un état d'échec de mise à jour.

Marquage et modifications de service

Lorsque vous ajoutez des instances de service dans le cadre de la modification de votre service, les balises AWS gérées se propagent vers les nouvelles instances et les ressources allouées et sont automatiquement créées pour celles-ci. Si vous créez de nouvelles balises, celles-ci ne sont appliquées qu'aux nouvelles instances. Les balises de service gérées par les clients existants se propagent également aux nouvelles instances. Pour de plus amples informations, veuillez consulter AWS Proton ressources et balisage.