Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Eliminazione di prodotti utilizzando il AWS CLI
AWS Service Catalogti consente di utilizzare il AWS Command Line Interface(AWS CLI) per eliminare prodotti dal tuo portafoglio. AWS CLI è uno strumento open source che consente di interagire con i servizi AWS utilizzando i comandi nella shell a riga di comando. La funzione AWS Service Catalog force-delete richiede un AWS CLIalias, che è una scorciatoia che puoi creare AWS CLI per abbreviare i comandi o gli script che usi di frequente.
Prerequisiti
-
Istalla e configura la AWS CLI. Per ulteriori informazioni, vedere Installazione o aggiornamento della versione più recente di e Nozioni di base sulla configurazione. AWS CLI Usa una AWS CLI versione minima di 1.11.24 o 2.0.0.
-
L'alias CLI di eliminazione del prodotto richiede un terminale compatibile con bash e il processore JSON a riga di comando JQ. Per ulteriori informazioni sull'installazione del processore JSON a riga di comando, consulta Download jq.
-
Crea un AWS CLI alias per le chiamate
Disassociation
API in batch, che ti consente di eliminare un prodotto con un solo comando.
Per eliminare correttamente un prodotto, devi prima dissociare tutte le risorse associate al prodotto. Esempi di associazioni di risorse di prodotto includono associazioni di portafoglio, budget, opzioni di tag e azioni di servizio. Quando si utilizza la CLI per eliminare un prodotto, l'force-delete-product
alias CLI consente di chiamare l'Disassociate
API per dissociare tutte le risorse che potrebbero impedire l'API. DeleteProduct
In questo modo si evita una chiamata separata per le disassociazioni individuali.
Nota
I percorsi dei file illustrati nelle procedure seguenti possono variare a seconda del sistema operativo utilizzato per eseguire queste azioni.
Creazione di un AWS CLI alias per eliminare i prodotti AWS Service Catalog
Quando si utilizza AWS CLI per eliminare un AWS Service Catalog prodotto, l'force-delete-product
alias CLI consente di chiamare l'Disassociate
API per dissociare tutte le risorse che potrebbero impedire la chiamata. DeleteProduct
Crea un alias
file nella tua cartella di configurazione AWS CLI
-
Nella AWS CLI console, accedi alla cartella di configurazione. Per impostazione predefinita, il percorso della cartella di configurazione è
~/.aws/
su Linux e macOS o%USERPROFILE%\.aws\
su Windows. -
Crea una sottocartella denominata
cli
utilizzando la navigazione dei file o inserendo il seguente comando nel tuo terminale preferito:$ mkdir -p ~/.aws/cli
Il percorso predefinito della
cli
cartella risultante è~/.aws/cli/
su Linux e macOS o%USERPROFILE%\.aws\cli
su Windows. -
Nella nuova
cli
cartella, create un file di testo denominatoalias
senza estensione. È possibile creare ilalias
file utilizzando la navigazione dei file o inserendo il seguente comando nel terminale preferito:$ touch ~/.aws/cli/alias
-
Inserisci
[toplevel]
sulla prima riga. -
Salvare il file.
Successivamente, puoi aggiungere l' force-delete-product alias al tuo alias
file incollando manualmente lo script di alias nel file o utilizzando un comando nella finestra del terminale.
Aggiungi manualmente l' force-delete-product alias al tuo file alias
-
Nella AWS CLI console, accedi alla cartella di AWS CLI configurazione e apri il
alias
file. -
Inserisci il seguente alias di codice nel file, sotto la
[toplevel]
riga:[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
-
Salvare il file.
Usa la finestra del terminale per aggiungere l' force-delete-product alias al tuo file alias
-
Apri la finestra del terminale ed esegui il seguente comando
$ cat >> ~/.aws/cli/alias
-
Incolla lo script di alias nella finestra del terminale, quindi premi CTRL+D per uscire dal comando.
cat
Chiama l' force-delete-product alias
-
Nella finestra del terminale, esegui il comando seguente per richiamare l'alias di eliminazione del prodotto
$ aws servicecatalog force-delete-product {product-id}
L'esempio seguente mostra il comando
force-delete-product
alias e la risposta risultante$ 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
-
Inserisci
y
per confermare che desideri eliminare il prodotto.
Dopo aver eliminato con successo il prodotto, la finestra del terminale visualizza i seguenti risultati
Disassociating port-123 Disassociating budgetName Disassociating tag-123 Disassociating act-123 from pa-123 Deleting product prod-123
Risorse aggiuntive
Per ulteriori informazioni sull'AWS CLIutilizzo degli alias e sull'eliminazione AWS Service Catalog dei prodotti, consulta le seguenti risorse:
-
Creazione e utilizzo di AWS CLI alias nella guida per l'AWS Command Line Interfaceutente (CLI).
-
AWS CLIrepository di alias repository git
. -
AWSre:Invent 2016: The
Effective User on. AWS CLI YouTube