有没有简单的方法可以删除 oracle 云基础架构分区中的所有资源?

Lib*_*ian 1 oracle-cloud-infrastructure

有没有一种简单的方法可以删除 oracle 云基础设施租赁的一个隔间中的所有资源?因为很难手动跟踪隔间中的所有资源。我知道我们可以使用Tenancy Explorer。但即使使用租赁资源管理器也很难做到,因为

  1. 截至目前,Tenancy Explorer并未列出所有资源,例如流池。
  2. 该过程仍然是手动的。

Lib*_*ian 6

您可以使用 oci cli 从 shell 函数中轻松地做到这一点,如下所示

delcmpt(){
    OCI_TENANCY_NAME=<Ur Teanncy Name>
    OCI_TENANCY_OCID=<tenancy ocid>
    OCI_CMPT_ID=$1 #OCID for cmpt to be deleted, passed as argument

    OCI_CMPT_NAME=$(oci iam compartment get -c ${OCI_CMPT_ID} | jq  '.data.name')

    echo Compartment being deleted is ${OCI_CMPT_NAME} for 4 regions SJC, PHX, IAD and BOM.

    declare -a region_codes=("SJC" 
                "PHX" "IAD"
                "BOM"
                ) # list of region codes where cmpt resources exists

    for OCI_REGION_CODE in "${region_codes[@]}"
    do
        UNIQUE_STACK_ID=$(date "+DATE_%Y_%m_%d_TIME_%H_%M") 

        OCID_CMPT_STACK=$(oci resource-manager stack create-from-compartment --compartment-id ${OCI_TENANCY_OCID} \
        --config-source-compartment-id ${OCI_CMPT_ID} \
        --config-source-region ${OCI_REGION_CODE} --terraform-version "1.0.x"\
        --display-name "Stack_${UNIQUE_STACK_ID}_${OCI_REGION_CODE}" --description "Stack From Compartment ${OCI_CMPT_NAME} for region ${OCI_REGION_CODE}" --wait-for-state SUCCEEDED --query "data.resources[0].identifier" --raw-output)
        
        echo $OCID_CMPT_STACK

        oci resource-manager job create-destroy-job  --execution-plan-strategy 'AUTO_APPROVED'  --stack-id ${OCID_CMPT_STACK} --wait-for-state SUCCEEDED --max-wait-seconds 300
        # twice since it fails sometimes and running it twice and is idempotent
        oci resource-manager job create-destroy-job  --execution-plan-strategy 'AUTO_APPROVED'  --stack-id ${OCID_CMPT_STACK} --wait-for-state SUCCEEDED --max-wait-seconds 540
        
        oci resource-manager stack delete --stack-id ${OCID_CMPT_STACK} --force --wait-for-state DELETED

    done            
 
    oci iam compartment delete -c ${OCI_CMPT_ID} --force --wait-for-state SUCCEEDED

}

Run Code Online (Sandbox Code Playgroud)

OCI_CMPT_ID 是要删除的隔离专区的 OCID。OCI_TENANCY_OCID 是您的租赁 OCID

用法:shell $:delcmpt OCID_for_the_Compartment_to_be_deleted