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 der AWS CLI
AWS Service Catalog ermöglicht Ihnen die Verwendung von AWS Command Line Interface (AWS CLI), um Produkte aus Ihrem Portfolio zu löschen. Die AWS CLI ist ein Open-Source-Tool, mit dem Sie über Befehle in Ihrer Befehlszeilen-Shell mit den AWS-Services interagieren können. Die Funktion zum Löschen AWS Service Catalogerzwingen erfordert einen AWS CLI Alias . Dabei handelt es sich um eine Verknüpfung, die Sie in der erstellen können, AWS CLI um Befehle oder Skripts zu verkürzen, die Sie häufig verwenden.
Voraussetzungen
-
Installieren und Konfigurieren der AWS CLI. Weitere Informationen finden Sie unter Installieren oder Aktualisieren der neuesten Version von AWS CLI und Konfigurationsgrundlagen. Verwenden Sie eine AWS CLI-Mindestversion von 1.11.24 oder 2.0.0.
-
Der CLI-Alias für das Löschen von Produkten erfordert ein Bash-kompatibles Terminal und den JQ-Befehlszeilen-JSON-Prozessor. Weitere Informationen zur Installation des Befehlszeilen-JSON-Prozessors finden Sie unter Download jq
. -
Erstellen Sie einen AWS CLI Alias für Batch
Disassociation
-API-Aufrufe, sodass Sie ein Produkt in einem einzigen Befehl löschen können.
Um ein Produkt erfolgreich zu löschen, müssen Sie zuerst alle dem Produkt zugeordneten Ressourcen trennen. Beispiele für Produktressourcenzuordnungen sind Portfoliozuordnungen, Budgets, Tag-Optionen und Service-Aktionen. Wenn Sie die CLI zum Löschen eines Produkts verwenden, können Sie mit dem CLIforce-delete-product
-Alias die Disassociate
API aufrufen, um die Zuordnung aller Ressourcen aufzuheben, die die DeleteProduct
API verhindern würden. Dadurch wird ein separater Aufruf für einzelne Zuordnungen vermieden.
Anmerkung
Die in den folgenden Verfahren gezeigten Dateipfade können je nachdem, welches Betriebssystem Sie für die Ausführung dieser Aktionen verwenden, variieren.
Erstellen eines AWS CLI Alias zum Löschen von AWS Service Catalog Produkten
Wenn Sie die AWS CLI zum Löschen eines AWS Service Catalog Produkts verwenden, können Sie mit dem CLIforce-delete-product
-Alias die Disassociate
API aufrufen, um die Zuordnung aller Ressourcen aufzuheben, die den DeleteProduct
Aufruf verhindern würden.
Erstellen einer -alias
Datei in Ihrem AWS CLI Konfigurationsordner
-
Navigieren Sie in der -AWS CLIKonsole zum Konfigurationsordner. Standardmäßig ist der Konfigurationsordnerpfad
~/.aws/
unter Linux und macOS oder%USERPROFILE%\.aws\
unter Windows. -
Erstellen Sie mithilfe der
cli
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. -
Erstellen Sie im neuen
cli
Ordner eine Textdateialias
mit dem Namen ohne Dateierweiterung. Sie können diealias
Datei mithilfe der Dateinavigation oder durch Eingabe des folgenden Befehls in Ihrem bevorzugten Terminal erstellen:$ touch ~/.aws/cli/alias
-
Geben Sie
[toplevel]
in die erste Zeile ein. -
Speichern Sie die Datei.
Als Nächstes können Sie den force-delete-product Alias zu Ihrer alias
Datei hinzufügen, indem Sie das Aliasskript manuell in die Datei einfügen oder einen Befehl im Terminalfenster verwenden.
Manuelles Hinzufügen des force-delete-product Alias zu Ihrer alias
Datei
-
Navigieren Sie in der -AWS CLIKonsole zu Ihrem AWS CLI Konfigurationsordner und öffnen Sie die -
alias
Datei. -
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
-
Speichern Sie die Datei.
Verwenden Sie das Terminalfenster, um den force-delete-product Alias zu Ihrer alias
Datei hinzuzufügen
-
Öffnen Sie Ihr Terminalfenster und führen Sie den folgenden Befehl aus
$ cat >> ~/.aws/cli/alias
-
Fügen Sie das Aliasskript in das Terminalfenster ein und drücken Sie dann STRG+D, um den
cat
Befehl zu beenden.
Aufrufen des force-delete-product Alias
-
Führen Sie in Ihrem Terminalfenster den folgenden Befehl aus, um den Alias Produkt löschen aufzurufen
$ aws servicecatalog force-delete-product {product-id}
Das folgende Beispiel zeigt den
force-delete-product
Aliasbefehl 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
-
Geben Sie ein
y
, um zu bestätigen, dass Sie das Produkt löschen möchten.
Nach erfolgreichem 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 zu AWS CLI, zur Verwendung von Aliassen und zum Löschen von AWS Service Catalog Produkten finden Sie in den folgenden Ressourcen:
-
Erstellen und Verwenden von AWS CLI Aliassen im AWS Command Line Interface (CLI)-Benutzerhandbuch.
-
Git-RepositoryAWS CLI für Alias-Repository
. -
AWS re:Invent 2016: Der effektive AWS CLI Benutzer
auf YouTube.