Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghapus produk menggunakan AWS CLI
AWS Service Catalogmemungkinkan Anda menggunakan AWS Command Line Interface(AWS CLI) untuk menghapus produk dari portofolio Anda. AWS CLIIni adalah alat open source yang memungkinkan Anda berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Fungsi AWS Service Catalog force-delete memerlukan AWS CLIalias, yang merupakan pintasan yang dapat Anda buat AWS CLI untuk mempersingkat perintah atau skrip yang sering Anda gunakan.
Prasyarat
-
Instal dan konfigurasikan AWS CLI. Untuk informasi selengkapnya, lihat Menginstal atau memperbarui versi terbaru dari dasar-dasar Konfigurasi AWS CLI dan. Gunakan AWS CLI versi minimum 1.11.24 atau 2.0.0.
-
Alias CLI produk hapus memerlukan terminal yang kompatibel dengan bass dan prosesor JSON baris perintah JQ. Untuk informasi selengkapnya tentang menginstal prosesor JSON baris perintah, lihat Download jq.
-
Buat AWS CLI Alias untuk mengumpulkan panggilan
Disassociation
API, memungkinkan Anda menghapus produk dalam satu perintah.
Agar berhasil menghapus produk, Anda harus memisahkan semua sumber daya yang terkait dengan produk terlebih dahulu. Contoh asosiasi sumber daya produk termasuk asosiasi portofolio, anggaran, Opsi Tag, dan Tindakan Layanan. Saat menggunakan CLI untuk menghapus produk, force-delete-product
alias CLI memungkinkan Anda memanggil API untuk memisahkan sumber daya apa pun yang akan mencegah Disassociate
API. DeleteProduct
Ini menghindari panggilan terpisah untuk disasosiasi individu.
catatan
Jalur file yang ditunjukkan dalam prosedur di bawah ini dapat bervariasi tergantung pada sistem operasi yang Anda gunakan untuk melakukan tindakan ini.
Membuat AWS CLI alias untuk menghapus produk AWS Service Catalog
Saat menggunakan AWS CLI untuk menghapus AWS Service Catalog produk, force-delete-product
alias CLI memungkinkan Anda memanggil Disassociate
API untuk memisahkan sumber daya apa pun yang akan mencegah panggilan. DeleteProduct
Buat alias
file di folder AWS CLI konfigurasi Anda
-
Di AWS CLI konsol, arahkan ke folder configuraiton. Secara default, jalur folder konfigurasi ada
~/.aws/
di Linux dan macOS, atau%USERPROFILE%\.aws\
di Windows. -
Buat sub-folder bernama
cli
menggunakan navigasi file atau dengan memasukkan perintah berikut di terminal pilihan Anda:$ mkdir -p ~/.aws/cli
Jalur default
cli
folder yang dihasilkan ada~/.aws/cli/
di Linux dan macOS, atau%USERPROFILE%\.aws\cli
di Windows. -
Di
cli
folder baru, buat file teks bernamaalias
tanpa ekstensi file. Anda dapat membuatalias
file menggunakan navigasi file atau dengan memasukkan perintah berikut di terminal pilihan Anda:$ touch ~/.aws/cli/alias
-
Masukkan
[toplevel]
pada baris pertama. -
Simpan file tersebut.
Selanjutnya, Anda dapat menambahkan force-delete-product alias ke alias
file Anda dengan menempelkan skrip alias secara manual ke dalam file, atau dengan menggunakan perintah di jendela terminal.
Tambahkan force-delete-product alias ke file Anda alias
secara manual
-
Di AWS CLI konsol, navigasikan ke folder AWS CLI konfigurasi Anda dan buka
alias
file. -
Masukkan alias kode berikut ke dalam file, di bawah
[toplevel]
baris:[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
-
Simpan file tersebut.
Gunakan jendela terminal untuk menambahkan force-delete-product alias ke file Anda alias
-
Buka jendela terminal Anda dan jalankan perintah berikut
$ cat >> ~/.aws/cli/alias
-
Tempel skrip alias ke jendela terminal, lalu tekan CTRL+D untuk keluar dari perintah.
cat
Panggil force-delete-product alias
-
Di jendela terminal Anda, jalankan perintah berikut untuk memanggil alias delete product
$ aws servicecatalog force-delete-product {product-id}
Contoh di bawah ini menunjukkan perintah
force-delete-product
alias dan respons yang dihasilkan$ 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
-
Masukkan
y
untuk mengonfirmasi bahwa Anda ingin menghapus produk.
Setelah berhasil menghapus produk, jendela terminal menampilkan hasil berikut
Disassociating port-123 Disassociating budgetName Disassociating tag-123 Disassociating act-123 from pa-123 Deleting product prod-123
Sumber daya tambahan
Untuk informasi selengkapnya tentangAWS CLI, menggunakan alias, dan menghapus AWS Service Catalog produk, tinjau sumber daya berikut:
-
Membuat dan menggunakan AWS CLI alias dalam panduan pengguna AWS Command Line Interface(CLI).
-
AWS CLIrepositori alias repositori git
. -
AWSRe: Invent 2016: Pengguna yang Efektif AWS CLI di
. YouTube