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.
Suppression de produits à l'aide du AWS CLI
AWS Service Catalogvous permet d'utiliser le AWS Command Line Interface(AWS CLI) pour supprimer des produits de votre portefeuille. L'AWS CLI est un outil à code source libre qui vous permet d'interagir avec les services AWS à l'aide des commandes du shell de ligne de commande. La fonction AWS Service Catalog force-delete nécessite un AWS CLIalias, 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.
Prérequis
-
Installation et configuration de 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 configuration AWS CLI et de 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
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
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
-
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. -
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. -
Dans le nouveau
cli
dossier, créez un fichier texte nomméalias
sans extension de fichier. Vous pouvez créer lealias
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
-
Entrez
[toplevel]
sur la première ligne. -
Enregistrez le fichier.
Vous pouvez ensuite ajouter l' force-delete-product alias à 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-product alias à votre alias
fichier
-
Dans la AWS CLI console, accédez à votre dossier AWS CLI de configuration et ouvrez le
alias
fichier. -
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
-
Enregistrez le fichier.
Utilisez la fenêtre du terminal pour ajouter l' force-delete-product alias à votre alias
fichier
-
Ouvrez la fenêtre de votre terminal et exécutez la commande suivante
$ cat >> ~/.aws/cli/alias
-
Collez le script d'alias dans la fenêtre du terminal, puis appuyez sur CTRL+D pour quitter la
cat
commande.
Appelez l' force-delete-product alias
-
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
-
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
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 CLIalias dans le guide de l'utilisateur AWS Command Line Interface(CLI).
-
AWS CLIdépôt d'alias
dépôt git. -
AWSre:Invent 2016 : L'AWS CLIutilisateur efficace sur
. YouTube