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 à unAWS Proton service.

  • Modifier 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 laAWS 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 Protonconsole, choisissez Services.

  2. Dans la liste des services, choisissez le bouton d'option situé à gauche du service à mettre à jour.

  3. Choisissez Edit (Modifier).

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

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

  6. Vérifiez vos modifications et choisissez Enregistrer les modifications.

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

  2. Dans la liste des services, choisissez le nom du service à modifier.

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

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

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

  6. Vérifiez vos modifications et choisissez Enregistrer les modifications.

AWS CLI

Modifiez une description comme indiqué dans l'exemple de commande et de réponse CLI suivant.

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 unAWS 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 déjà modifiés ou supprimés 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 associée à un composant. Pour supprimer une telle instance de service, vous devez d'abord mettre à jour le composant pour le détacher de son instance de service. Pour plus d'informations sur les composants, veuillez consulterComposants AWS Proton.

Les instances dont la suppression a échoué sont des instances de service dans 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 ne parvient pas à être supprimée, il se peut que certaines ressources soient toujours associées à ces instances, même si elles ne sont pas visibles depuis la console ouAWS CLI. Vérifiez les ressources de votre infrastructure d'instance dont la suppression a échoué et nettoyez-les afin deAWS Proton pouvoir les supprimer pour vous.

Pour le quota d'instances de service pour un service, consultezQuotas AWS Proton. 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 votrespec.

Utiliser la console ouAWS 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 Protonconsole

  1. Dans le volet de navigation, choisissez Services.

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

  3. Choisissez Edit (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 Next (Suivant).

  7. Vérifiez 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 modification,spec comme indiqué dans lesAWS CLI exemples de commandes et de réponses suivants.

Lorsque vous utilisez l'interface de ligne de commande, vousspec 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'exemplespec 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 une description de 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 delist-service-instances commande et de réponse CLI suivant montre les instances actives avant d'ajouter ou de supprimer 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 nommée existantemy-instance est supprimée et une nouvelle instance nomméeyet-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 utiliser"${Proton::CURRENT_VAL}" pour indiquer les valeurs de paramètres à conserver par rapport à l'originalspec, si les valeurs existent dans lespec. get-serviceUtilisez-lespec pour afficher l'original d'un service, comme décrit dansAffichage des données de service.

La liste suivante montre comment vous pouvez vous"${Proton::CURRENT_VAL}" assurer despec ne pas inclure les modifications des valeurs de paramètres 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 montre la commande CLI et la réponse 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" } }

Lalist-service-instances commande et la réponse suivantes confirment que l'instance nommée existantemy-instance est supprimée et qu'une nouvelle instance nomméeyet-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" } ] }

Ce qui se passe 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 surIN_PROGRESS et bloque les actions du pipeline.

  • Définit toutes les instances de service à supprimerDELETE_IN_PROGRESS.

  • Bloque les actions de service.

  • Bloque les actions sur les instances de service qui sont marquées pour être supprimées.

  • Crée de nouvelles instances de service.

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

  • Tentatives de suppression d'instances ayant échoué.

  • Une fois les ajouts et les suppressions terminés, reprovisionne le pipeline de services (s'il y en a un), définit votre serviceACTIVE et active les actions de service et de pipeline.

AWS Protontente 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 revientspec à 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 reprovisionne le pipeline sans les instances supprimées. specest mis à jour pour inclure les instances ajoutées et exclure celles qui ont été marquées pour suppression.

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

Étiquetage et modifications de service

Lorsque vous ajoutez des instances de service dans le cadre de la modification de votre service, les balisesAWS gérées se propagent et sont automatiquement créées pour les nouvelles instances et les ressources provisionnées. Si vous créez de nouvelles balises, celles-ci ne sont appliquées qu'aux nouvelles instances. Les balises de service existantes gérées par le client se propagent également vers les nouvelles instances. Pour plus d'informations, consultez AWS Protonressources et balises.