

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Löschen von Produkten mit dem AWS CLI


AWS Service Catalog ermöglicht es Ihnen, das [AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)(AWS CLI) zu verwenden, um Produkte aus Ihrem Portfolio zu löschen. Das AWS CLI ist ein Open-Source-Tool, mit dem Sie mithilfe von Befehlen in Ihrer Befehlszeilen-Shell mit AWS Diensten interagieren können. AWS Service Catalog Für die Funktion Force-Delete ist ein [AWS CLI Alias](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-alias.html) erforderlich. Dabei handelt es sich um eine Abkürzung, die Sie in der erstellen können AWS CLI , um häufig verwendete Befehle oder Skripts zu kürzen. 

## Voraussetzungen

+ Installieren und Konfigurieren der AWS CLI. Weitere Informationen finden Sie unter [Installation oder Aktualisierung der neuesten Version von AWS CLI und Grundlagen der](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) [Konfiguration](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html). Verwenden Sie eine AWS CLI Mindestversion von 1.11.24 oder 2.0.0. 
+ Der CLI-Alias Delete Product erfordert ein Bash-kompatibles Terminal und den JQ-Befehlszeilen-JSON-Prozessor. [Weitere Informationen zur Installation des Befehlszeilen-JSON-Prozessors finden Sie unter Laden Sie jq herunter.](https://stedolan.github.io/jq/download/) 
+ Erstellen Sie einen AWS CLI Alias für `Disassociation` Batch-API-Aufrufe, sodass Sie ein Produkt mit einem einzigen Befehl löschen können. 

Um ein Produkt erfolgreich zu löschen, müssen Sie zuerst die Zuordnung aller Ressourcen aufheben, die dem Produkt zugeordnet sind. Zu den Zuordnungen von Produktressourcen gehören beispielsweise Portfoliozuordnungen, Budgets, Tag-Optionen und Serviceaktionen. Wenn Sie die CLI zum Löschen eines Produkts verwenden, können Sie mit `force-delete-product` dem CLI-Alias die `Disassociate` API aufrufen, um alle Ressourcen zu trennen, die die `DeleteProduct` API verhindern würden. Dadurch wird ein separater Aufruf für einzelne Trennungen vermieden. 

**Anmerkung**  
Die in den folgenden Verfahren aufgeführten Dateipfade können je nachdem, welches Betriebssystem Sie für diese Aktionen verwenden, variieren. 

## Einen AWS CLI Alias zum Löschen von AWS Service Catalog Produkten erstellen


Wenn Sie das AWS CLI zum Löschen eines AWS Service Catalog Produkts verwenden, können Sie mit `force-delete-product` dem CLI-Alias die `Disassociate` API aufrufen, um alle Ressourcen zu trennen, die den `DeleteProduct` Aufruf verhindern würden. 

**Erstellen Sie eine `alias` Datei in Ihrem AWS CLI Konfigurationsordner**

1. Navigieren Sie in der AWS CLI Konsole zum Konfigurationsordner. Standardmäßig ist der Pfad des Konfigurationsordners `~/.aws/` unter Linux und macOS oder `%USERPROFILE%\.aws\` unter Windows. 

1. Erstellen Sie `cli` mithilfe der Dateinavigation oder durch Eingabe des folgenden Befehls in Ihrem bevorzugten Terminal einen Unterordner mit dem Namen: 

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

   Der resultierende Standardpfad für den `cli` Ordner ist `~/.aws/cli/` unter Linux und macOS oder `%USERPROFILE%\.aws\cli` unter Windows. 

1. Erstellen Sie im neuen `cli` Ordner eine Textdatei `alias` mit dem Namen ohne Dateierweiterung. Sie können die `alias` Datei mithilfe der Dateinavigation oder durch Eingabe des folgenden Befehls in Ihrem bevorzugten Terminal erstellen: 

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

1. Geben Sie `[toplevel]` in der ersten Zeile ein.

1. Speichern Sie die Datei. 

Als Nächstes können Sie den force-delete-product Alias zu Ihrer `alias` Datei hinzufügen, indem Sie das Alias-Skript manuell in die Datei einfügen oder einen Befehl im Terminalfenster verwenden. 

**Fügen Sie den force-delete-product Alias manuell zu Ihrer `alias` Datei hinzu**

1. Navigieren Sie in der AWS CLI Konsole zu Ihrem AWS CLI Konfigurationsordner und öffnen Sie die `alias` Datei. 

1. Geben Sie den folgenden Code-Alias in die Datei unter der `[toplevel]` Zeile ein: 

   ```
                [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. Speichern Sie die Datei. 

**Verwenden Sie das Terminalfenster, um den force-delete-product Alias zu Ihrer `alias` Datei hinzuzufügen**

1. Öffnen Sie Ihr Terminalfenster und führen Sie den folgenden Befehl aus

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

1. Fügen Sie das Alias-Skript in das Terminalfenster ein, und drücken Sie dann *STRG\$1D*, um den `cat` Befehl zu beenden. 

**Rufen Sie den Alias auf force-delete-product**

1. Führen Sie in Ihrem Terminalfenster den folgenden Befehl aus, um den Delete Product-Alias aufzurufen

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

   Das folgende Beispiel zeigt den `force-delete-product` Alias-Befehl und die daraus resultierende Antwort 

   ```
                 $ 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. Geben Sie ein`y`, um zu bestätigen, dass Sie das Produkt löschen möchten. 

Nach dem erfolgreichen Löschen des Produkts werden im Terminalfenster die folgenden Ergebnisse angezeigt

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

## Weitere Ressourcen


Weitere Informationen AWS CLI zur Verwendung von Aliasnamen und zum Löschen von AWS Service Catalog Produkten finden Sie in den folgenden Ressourcen:
+ [Erstellen und Verwenden von AWS CLI Aliasen](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-alias.html) im *AWS Command Line Interface (CLI) -Benutzerhandbuch*. 
+ [AWS CLI Alias-Repository](https://github.com/awslabs/awscli-aliases), Git-Repository. 
+ [AWS Service Catalog Produkte werden gelöscht](https://docs.aws.amazon.com/servicecatalog/latest/adminguide/productmgmt-delete.html). 
+ [AWS re:Invent 2016: Der effektive AWS CLI Nutzer](https://youtu.be/Xc1dHtWa9-Q?t=1593) auf. *YouTube* 