

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.

# Supprimer des produits
<a name="productmgmt-delete"></a>

Lorsque vous supprimez un produit, AWS Service Catalog toutes les versions du produit sont supprimées de chaque portefeuille contenant le produit. 

AWS Service Catalog vous permet de supprimer un produit à l'aide de la AWS Service Catalog console ou AWS CLI. Pour réussir à supprimer un produit, vous devez d'abord dissocier toutes les ressources associées au produit. Les associations de ressources entre produits et ressources incluent les associations de portefeuilles TagOptions, les budgets et les actions de service. 

**Important**  
 Vous ne pouvez pas récupérer un produit une fois qu'il a été supprimé. 

**Pour supprimer un produit à l'aide de la AWS Service Catalog console**

1.  Accédez à la page **Portefeuilles** et sélectionnez le portefeuille contenant le produit que vous souhaitez supprimer. 

1.  Sélectionnez le produit que vous souhaitez supprimer, puis choisissez **Supprimer** dans le coin supérieur droit du volet du produit. 

1. Pour les produits *sans ressources associées*, confirmez le produit que vous souhaitez supprimer en saisissant **Supprimer** dans la zone de texte, puis en choisissant **Supprimer**. 

   Pour les produits *associés aux ressources*, passez à l'étape 4. 

1. Dans la fenêtre **Supprimer le produit**, consultez le tableau **des associations**, qui affiche toutes les ressources associées au produit. AWS Service Catalog tente de dissocier ces ressources lorsque vous supprimez le produit. 

1. Confirmez que vous souhaitez supprimer le produit et toutes les ressources associées en saisissant **Supprimer** dans la zone de texte. 

1. Choisissez **Dissocier et supprimer**. 

S'il n' AWS Service Catalog est pas possible de dissocier toutes les ressources du produit, celui-ci n'est pas supprimé. La fenêtre **Supprimer le produit** affiche le nombre de dissociations ayant échoué et une description de chaque échec. Pour plus d'informations sur la résolution des dissociations de ressources ayant échoué lors de la suppression d'un produit, voir *Résolution des dissociations de ressources ayant échoué lors de la suppression d'un produit ci-dessous*. 

**Topics**
+ [

# Suppression de produits à l'aide du AWS CLI
](product-delete-cli.md)
+ [

# Résolution des dissociations de ressources échouées lors de la suppression d'un produit
](product-delete-exception.md)

# Suppression de produits à l'aide du AWS CLI
<a name="product-delete-cli"></a>

AWS Service Catalog vous permet d'utiliser le [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)(AWS CLI) pour supprimer des produits de votre portefeuille. Il s' AWS CLI agit d'un outil open source qui vous permet d'interagir avec les AWS services à l'aide de commandes dans votre shell de ligne de commande. La fonction AWS Service Catalog force-delete nécessite un [AWS CLI alias](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-alias.html), c'est-à-dire un raccourci que vous pouvez créer dans le AWS CLI pour raccourcir les commandes ou les scripts que vous utilisez fréquemment. 

## Conditions préalables
<a name="product-delete-cli-requirements"></a>
+ Installez et configurez l’ AWS CLI. Pour plus d'informations, consultez la section [Installation ou mise à jour de la dernière version des principes de base de la](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) [configuration AWS CLI et de](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html) la configuration. Utilisez une AWS CLI version minimale de 1.11.24 ou 2.0.0. 
+ L'alias CLI de suppression du produit nécessite un terminal compatible avec bash et le processeur JSON de ligne de commande JQ. Pour plus d'informations sur l'installation du processeur JSON en ligne de commande, consultez [Download](https://stedolan.github.io/jq/download/) jq. 
+ Créez un AWS CLI alias pour les appels d'`Disassociation`API par lots, ce qui vous permet de supprimer un produit en une seule commande. 

Pour réussir à supprimer un produit, vous devez d'abord dissocier toutes les ressources associées au produit. Parmi les exemples d'associations de ressources de produits, citons les associations de portefeuilles, les budgets, les options de balise et les actions de service. Lorsque vous utilisez la CLI pour supprimer un produit, l'`force-delete-product`alias de la CLI vous permet d'appeler l'`Disassociate`API pour dissocier toutes les ressources susceptibles d'empêcher l'`DeleteProduct`API. Cela permet d'éviter un appel distinct à des dissociations individuelles. 

**Note**  
Les chemins de fichiers indiqués dans les procédures ci-dessous peuvent varier en fonction du système d'exploitation que vous utilisez pour effectuer ces actions. 

## Création d'un AWS CLI alias pour supprimer AWS Service Catalog des produits
<a name="product-delete-cli-alias"></a>

Lorsque vous utilisez le AWS CLI pour supprimer un AWS Service Catalog produit, l'`force-delete-product`alias CLI vous permet d'appeler l'`Disassociate`API pour dissocier toutes les ressources susceptibles d'empêcher l'`DeleteProduct`appel. 

**Créez un `alias` fichier dans votre dossier AWS CLI de configuration**

1. Dans la AWS CLI console, accédez au dossier de configuration. Par défaut, le chemin du dossier de configuration est `~/.aws/` sous Linux et macOS, ou `%USERPROFILE%\.aws\` sous Windows. 

1. Créez un sous-dossier nommé à `cli` l'aide de la navigation dans les fichiers ou en saisissant la commande suivante dans votre terminal préféré : 

   ```
                $ mkdir -p ~/.aws/cli
   ```

   Le chemin par défaut du `cli` dossier obtenu est `~/.aws/cli/` sous Linux et macOS, ou `%USERPROFILE%\.aws\cli` sous Windows. 

1. Dans le nouveau `cli` dossier, créez un fichier texte nommé `alias` sans extension de fichier. Vous pouvez créer le `alias` fichier à l'aide de la navigation dans les fichiers ou en saisissant la commande suivante dans le terminal de votre choix : 

   ```
                 $ touch ~/.aws/cli/alias
   ```

1. Entrez `[toplevel]` sur la première ligne.

1. Enregistrez le fichier. 

Vous pouvez ensuite ajouter l' force-delete-productalias à votre `alias` fichier en collant manuellement le script d'alias dans le fichier ou en utilisant une commande dans la fenêtre du terminal. 

**Ajoutez manuellement l' force-delete-productalias à votre `alias` fichier**

1. Dans la AWS CLI console, accédez à votre dossier AWS CLI de configuration et ouvrez le `alias` fichier. 

1. Entrez l'alias de code suivant dans le fichier, sous la `[toplevel]` ligne : 

   ```
                [command servicecatalog]
             	 force-delete-product =
             	   !f() {
             	     if [ "$#" -ne 1 ]; then
             	         echo "Illegal number of parameters"
             	         exit 1
             	     fi
             	 
             	     if [[ "$1" != prod-* ]]; then
             	        echo "Please provide a valid product id."
             	        exit 1
             	     fi
             	 
             	     productId=$1
             	     describeProductAsAdminResponse=$(aws servicecatalog describe-product-as-admin --id $productId)
             	     listPortfoliosForProductResponse=$(aws servicecatalog list-portfolios-for-product --product-id $productId)
             	 
             	     tagOptions=$(echo "$describeProductAsAdminResponse" | jq -r '.TagOptions[].Id')
             	     budgetName=$(echo "$describeProductAsAdminResponse" | jq -r '.Budgets[].BudgetName')
             	     portfolios=$(echo "$listPortfoliosForProductResponse" | jq -r '.PortfolioDetails[].Id')
             	     provisioningArtifacts=$(echo "$describeProductAsAdminResponse" | jq -r '.ProvisioningArtifactSummaries[].Id')
             	     provisioningArtifactServiceActionAssociations=()
             	 
             	     for provisioningArtifactId in $provisioningArtifacts; do
             	       listServiceActionsForProvisioningArtifactResponse=$(aws servicecatalog list-service-actions-for-provisioning-artifact --product-id $productId --provisioning-artifact-id $provisioningArtifactId)
             	       serviceActions=$(echo "$listServiceActionsForProvisioningArtifactResponse" | jq -r '[.ServiceActionSummaries[].Id] | join(",")')
             	       if [[ -n "$serviceActions" ]]; then
             	         provisioningArtifactServiceActionAssociations+=("${provisioningArtifactId}:${serviceActions}")
             	       fi
             	     done
             	 
             	     echo "Before deleting a product, the following associated resources must be disassociated. These resources will not be deleted. This action may take some time, depending on the number of resources being disassociated."
             	 
             	     echo "Portfolios:"
             	     for portfolioId in $portfolios; do
             	       echo "\t${portfolioId}"
             	     done
             	 
             	     echo "Budgets:"
             	     if [[ -n "$budgetName" ]]; then
             	       echo "\t${budgetName}"
             	     fi
             	 
             	     echo "Tag Options:"
             	     for tagOptionId in $tagOptions; do
             	       echo "\t${tagOptionId}"
             	     done
             	 
             	     echo "Service Actions on Provisioning Artifact:"
             	     for association in "${provisioningArtifactServiceActionAssociations[@]}"; do
             	       echo "\t${association}"
             	     done
             	 
             	     read -p "Are you sure you want to delete ${productId}? y,n "
             	     if [[ ! $REPLY =~ ^[Yy]$ ]]; then
             	        exit
             	     fi
             	 
             	     for portfolioId in $portfolios; do
             	       echo "Disassociating ${portfolioId}"
             	       aws servicecatalog disassociate-product-from-portfolio --product-id $productId --portfolio-id $portfolioId
             	     done
             	 
             	     if [[ -n "$budgetName" ]]; then
             	       echo "Disassociating ${budgetName}"
             	       aws servicecatalog disassociate-budget-from-resource --budget-name "$budgetName" --resource-id $productId
             	     fi
             	 
             	     for tagOptionId in $tagOptions; do
             	       echo "Disassociating ${tagOptionId}"
             	       aws servicecatalog disassociate-tag-option-from-resource --tag-option-id $tagOptionId --resource-id $productId
             	     done
             	 
             	     for association in "${provisioningArtifactServiceActionAssociations[@]}"; do
             	       associationPair=(${association//:/ })
             	       provisioningArtifactId=${associationPair[0]}
             	       serviceActionsList=${associationPair[1]}
             	       serviceActionIds=${serviceActionsList//,/ }
             	       for serviceActionId in $serviceActionIds; do
             	         echo "Disassociating ${serviceActionId} from ${provisioningArtifactId}"
             	         aws servicecatalog disassociate-service-action-from-provisioning-artifact --product-id $productId --provisioning-artifact-id $provisioningArtifactId --service-action-id $serviceActionId
             	       done
             	     done
             	 
             	     echo "Deleting product ${productId}"
             	     aws servicecatalog delete-product --id $productId
             	 
             	   }; f
   ```

1. Enregistrez le fichier. 

**Utilisez la fenêtre du terminal pour ajouter l' force-delete-productalias à votre `alias` fichier**

1. Ouvrez la fenêtre de votre terminal et exécutez la commande suivante

   `$ cat >> ~/.aws/cli/alias`

1. Collez le script d'alias dans la fenêtre du terminal, puis appuyez sur *CTRL\$1D* pour quitter la `cat` commande. 

**Appelez l' force-delete-productalias**

1. Dans la fenêtre de votre terminal, exécutez la commande suivante pour appeler l'alias de produit de suppression

   `$ aws servicecatalog force-delete-product {product-id} `

   L'exemple ci-dessous montre la commande `force-delete-product` alias et la réponse qui en résulte 

   ```
                 $ aws servicecatalog force-delete-product prod-123
   ```

   ```
                 Before deleting a product, the following associated resources must be disassociated. These resources will not be deleted. This action may take some time, depending on the number of resources being disassociated.
                 Portfolios:
                   port-123
                 Budgets:
                     budgetName
                 Tag Options:
                     tag-123
                 Service Actions on Provisioning Artifact:
                     pa-123:act-123
                 Are you sure you want to delete prod-123? y,n
   ```

1. Entrez `y` pour confirmer que vous souhaitez supprimer le produit. 

Une fois le produit supprimé avec succès, la fenêtre du terminal affiche les résultats suivants

```
          Disassociating port-123
          Disassociating budgetName
          Disassociating tag-123
          Disassociating act-123 from pa-123
          Deleting product prod-123
```

## Ressources supplémentaires
<a name="product-delete-cli-resources"></a>

Pour plus d'informations sur AWS CLI l'utilisation d'alias et la suppression de AWS Service Catalog produits, consultez les ressources suivantes :
+ [Création et utilisation d' AWS CLI alias](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-alias.html) dans le guide de l'utilisateur *AWS Command Line Interface (CLI)*. 
+ [AWS CLI dépôt d'alias](https://github.com/awslabs/awscli-aliases) dépôt git. 
+ [Supprimer AWS Service Catalog des produits](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-delete.html). 
+ [AWS re:Invent 2016 : L' AWS CLI utilisateur efficace sur](https://youtu.be/Xc1dHtWa9-Q?t=1593). *YouTube* 

# Résolution des dissociations de ressources échouées lors de la suppression d'un produit
<a name="product-delete-exception"></a>

Si votre précédente tentative de [suppression d'un produit](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-delete.html) a échoué en raison d'exceptions liées à la dissociation des ressources, consultez la liste des exceptions et leurs solutions ci-dessous. 

**Note**  
Si vous avez fermé la fenêtre **Supprimer des produits** avant de recevoir le message d'échec de la dissociation des ressources, vous pouvez suivre les étapes 1 à 3 de la section *Supprimer un produit* pour ouvrir à nouveau la fenêtre.

**Pour résoudre un échec de dissociation des ressources**

Dans la fenêtre **Supprimer le produit**, consultez la colonne **État du tableau des** associations. Identifiez l'exception de dissociation des ressources qui a échoué et les solutions suggérées :


****  

| Type d'exception de statut | Cause | Résolution | 
| --- | --- | --- | 
| Produit prod-\$1\$1\$1\$1 | AWS Service Catalog Impossible de supprimer le produit car le produit est toujours associé à des budgets TagOptions, dont au moins un ProvisioningArtifact avec des actions associées, le produit est toujours affecté à un portefeuille, le produit a des utilisateurs ou le produit est soumis à des contraintes.  | Essayez à nouveau de supprimer le produit. | 
| Utilisateur : n'usernameest pas autorisé à effectuer : | L'utilisateur qui tente de supprimer le produit ne dispose pas des autorisations nécessaires pour dissocier les ressources du produit.  | AWS Service Catalog recommande de contacter l'administrateur de votre compte pour plus d'informations sur la dissociation des ressources de produits que vous n'êtes pas actuellement autorisé à dissocier.  | 