使用環境變數 (CLI) 參照密鑰及配置對映

在 Code Engine中,建立密鑰及 configmap 之後,應用程式、工作或函數工作負載可以透過參照完整密鑰或 configmap 或參照個別索引鍵,作為環境變數來使用儲存為鍵值組的資訊。

使用密鑰作為環境變數類似於使用 configmap 作為環境變數。 當您使用密鑰時,會對資料進行編碼。

當您更新應用程式、工作或函數時,如果該應用程式、工作或函數具有參照 configmap 或 secret 的環境變數,請考量下列資訊。

當您更新應用程式、工作或函數時,如果其環境變數完全參照 configmap (或密鑰),以完全參照不同的 configmap (或密鑰),則完整參照會以其設定順序置換其他完整參照 (最後一個參照集置換第一個集)。

當您更新一個應用程式、工作或函式,而該應用程式、工作或函式的環境變數引用一個 configmap (或 secret) 中的金鑰,以引用不同 configmap (或 secret) 中的相同金鑰時,則會使用最後一個引用的金鑰。

當您更新具有完整參照 configmap (或密碼) 的環境變數的應用程式、工作或函數,以將參照新增至特定金鑰時,特定金鑰參照會置換完整 configmap (或密碼) 參照。

如需使用 CLI 來參照配置對映或密鑰的基本資訊,請參閱 使用 CLI 來參照配置對映使用 CLI 來參照密鑰

可以針對密鑰或 configmap 完成下列實務範例。

使用 CLI 參照完整密鑰

密鑰和 configmap 由鍵值組組成。 環境變數是在參照完整密鑰或 configmap 時提供每個金鑰的項目的結果。 如果多個密鑰 (或 configmap) 包含相同的具名金鑰,則您只會在參照的密鑰或 configmap 中取得其中一個金鑰。

在此實務範例中,建立密鑰,其中包含使用者名稱及密碼的鍵值組,然後在執行工作時參照完整密鑰。 您可以更新密鑰以新增金鑰,然後示範在工作中使用新金鑰。 雖然此實務範例使用密鑰,但您可以在指令中以 configmap 替代 secret,以使用相同的步驟來完整參照 configmap。

  1. 建立 mydatabasesec 密鑰,並使用 --from-literal 選項指定使用者名稱及密碼的鍵值組。

    ibmcloud ce secret create -n mydatabasesec --from-literal username=reader --from-literal password=abcd
    
  2. 使用 secret get 指令來檢視 mydatabasesec 密鑰的詳細資料。 密鑰的 passwordusername 金鑰值已編碼。

    ibmcloud ce secret get -n mydatabasesec
    

    輸出範例

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2020-10-14 14:07:59 -0400 EDT
    
    Data:
    ---
    password: YWJjZA==
    username: cmVhZGVy
    
  3. 在工作上設定環境變數以參照完整 mydatabasesec 密鑰。 在此範例中,讓我們使用 --env-from-secret PREFIX=NAME 選項,其中 PREFIX=NAME 指定參照完整 configmap,其中每一個索引鍵都以 PREFIX 作為字首。 透過使用 read_ 字首,每一個金鑰都會以 read_ 作為字首。 因為依預設 busybox 影像不會列印任何輸出,所以 -c env 選項指定列印儲存器中的所有環境變數。

    ibmcloud ce job create -n demo -i busybox -c env --env-from-secret read_=mydatabasesec
    

    請考慮使用字首來協助確保工作或應用程式中的所有環境變數都是唯一的。 例如,如果您具有具有金鑰 abc 的秘密金鑰,則這些環境變數會顯示為 abc。 不過,如果您新增字首 (例如 read_),則金鑰會以字首顯示,例如 read_aread_bread_c。 使用字首也會將參照應用程式、工作或工作執行中的環境變數分組在一起,並協助您避免 configmap 或密鑰中的索引鍵重複。

  4. (選用) 檢視 demo 工作的詳細資料。 輸出會顯示 mydatabasesec 密鑰的完整參照。

    ibmcloud ce job get -n demo
    

    輸出範例

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6s
    Created:      2022-05-04T15:04:16-04:00
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                   Value
        Secret full reference  read_=mydatabasesec
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  5. 執行使用 demo 工作配置的工作。

    ibmcloud ce jobrun submit --name demo1 --job demo
    
  6. 顯示工作執行的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 在此範例中,顯示 demo1 工作執行的日誌。 請注意,在日誌輸出中,完整密鑰 mydatabasesec 的金鑰會以字首 read_ 顯示。 密鑰值會新增至已解碼的環境。

    ibmcloud ce jobrun logs --jobrun demo1
    

    輸出範例

    Getting logs for all instances of job run 'demo1'...
    Getting jobrun 'demo1'...
    Getting instances of jobrun 'demo1'...
    [...]
    
    HOSTNAME=demo1-0-0
    read_username=reader
    read_password=abcd
    JOB_INDEX=0
    CE_SUBDOMAIN=8aaon2dfwa0
    CE_JOBRUN=demo1
    [...]
    
  7. 更新 mydatabasesec 密鑰,以使用 --from-file 選項來新增金鑰。 此選項使用 --from-file FILE--from-file KEY=FILE 格式。 在下列指令中,certificate 是金鑰,cert.pem 是檔案的名稱。

    ibmcloud ce secret update -n mydatabasesec --from-file certificate=cert.pem
    
  8. 使用 secret get 指令來檢視已更新 mydatabasesec 密鑰的詳細資料。 密鑰現在包含三個金鑰: certificatepasswordusername。 密鑰值已編碼。

    ibmcloud ce secret get -n mydatabasesec
    

    輸出範例

    Getting generic secret 'mydatabasesec'...
    OK
    
    Name:          mydatabasesec
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m13s
    Created:       2020-10-14 13:35:43 -0400 EDT
    
    Data:
    ---
    certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tLS0tDQphc2RmO2Frc2pkZmxrYWpzZGZsa2phc2xka2ZqYWxza2RqZmxha3NqZGZsaw0KLS0tLS1FTkQgQ0VSVEZJQ0lBVEUtLS0tLS0tLS0t
    password: YWJjZA==
    username: cmVhZGVy
    
  9. 執行使用 demo 工作的工作。 先前,您已從 demo 工作參照完整密鑰 mydatabasesec。 若要讓工作使用更新的密鑰與新增的 certificate 鍵值組搭配,請提交新的工作執行。 若要更新應用程式以使用更新的密碼,請重新啟動應用程式。

    ibmcloud ce jobrun submit --name demo2 --job demo
    
  10. 使用 ibmcloud ce jobrun logs 指令來顯示工作執行的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 若要顯示工作執行特定實例的日誌,請在 jobrun logs 指令中使用 --instance 選項。 必要的話,請使用 jobrun get --name demo2 指令來顯示此工作執行的詳細資料,包括工作執行的實例。 在此範例中,顯示 demo2-0-0 執行中實例的日誌,其中 demo2 是工作執行的名稱,0arrayindex,而 0retryindex。 請注意,在輸出中,會顯示 certificateusernamepassword 完整密碼的金鑰 mydatabasesec。 密鑰值會新增至已解碼的環境。

ibmcloud ce jobrun logs --instance demo2-0-0

輸出範例

Getting logs for job run instance 'demo2-0-0'...
[...]

read_certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
read_password=abcd
read_username=reader

使用 CLI 參照 configmap 的個別索引鍵

在此實務範例中,讓我們建立包含多個鍵值組的 configmap,然後參照工作中的特定索引鍵。 雖然此實務範例使用 configmap,但您可以使用相同的一般步驟來參照具有密鑰的個別金鑰,方法是在指令中以 secret 代替 configmap

  1. 建立 mydatabase configmap,並使用 --from-literal KEY=VALUE 選項指定名稱和 URL 的鍵值對。

    ibmcloud ce configmap create -n mydatabasecm --from-literal name=myname --from-literal url=myurl
    
  2. 使用 configmap get 指令來檢視 mydatabasecm configmap 的詳細資料。

    ibmcloud ce configmap get -n mydatabasecm
    

    輸出範例

    Getting configmap 'mydatabasecm'...
    OK
    
    Name:          mydatabasecm
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           16s
    Created:       2020-10-14 13:31:19 -0400 EDT
    
    Data:
    ---
    name: myname
    url: myurl
    
  3. 在工作上設定環境變數,以參照 mydatabasecm configmap 中的 url 索引鍵。 使用 --env-from-configmap NAME:KEY_A,KEY_B 選項,其中 NAME:KEY_A 指定參照配置對映的 KEY_A

    ibmcloud ce job create --name keydemo --image busybox --command env --env-from-configmap mydatabasecm:url
    
  4. 執行使用 keydemo 工作的工作。

    ibmcloud ce jobrun submit --name keydemo1 --job keydemo
    
  5. 使用 ibmcloud ce jobrun logs 指令來顯示工作執行的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 若要顯示工作執行特定實例的日誌,請在 jobrun logs 指令中使用 --instance 選項。 必要的話,請使用 jobrun get --name keydemo1 指令來顯示此工作執行的詳細資料,包括工作執行的實例。 請注意輸出中的 url 是唯一參照的索引鍵,且工作未參照 name 索引鍵。

    ibmcloud ce jobrun logs --instance keydemo1-0-0
    

    輸出範例

    Getting logs for job run instance 'keydemo1-0-0'...
    [...]
    
    url=myurl
    [...]
    

使用 CLI 置換參照

您可以置換參照的密鑰及配置對映。 可以針對密鑰或 configmap 完成下列實務範例。

實務範例 A。 將完整參照的密鑰置換為另一個完整參照的密鑰

在此實務範例中,讓我們使用 usernamepassword 金鑰來建立新的 mydatabasesec-writer 密鑰,然後置換先前建立的 mydatabasesec 密鑰中的 usernamepassword 金鑰。 mydatabasesec 密鑰包含 username=readerpassword=abcd 金鑰。

完整參照會以其他完整參照的設定順序來置換它們 (最後一個參照集會置換第一個集)。

  1. writerjob 工作上設定環境變數,以參照先前建立的完整 mydatabasesec 密鑰。 mydatabasesec 密鑰包含 username=readerpassword=abcd 金鑰。

    ibmcloud ce job create -n writerjob -i busybox -c env --env-from-secret mydatabasesec
    
  2. (選用) 檢視 writerjob 工作的詳細資料。 輸出會顯示 mydatabasesec 密鑰的完整參照。

    ibmcloud ce job get -n writerjob
    

    輸出範例

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           17s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. 執行使用 writerjob 工作的工作。

    ibmcloud ce jobrun submit --name writerjob1 --job writerjob
    
  4. 顯示工作執行的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 在此範例中,顯示 writerjob1 工作執行的日誌。 請注意,在輸出中顯示完整密鑰 mydatabasesecusernamepassword 金鑰。 密鑰值會新增至已解碼的環境。

    ibmcloud ce jobrun logs --jobrun writerjob1
    

    輸出範例

    Getting jobrun 'writerjob1'...
    Getting instances of jobrun 'writerjob1'...
    Getting logs for all instances of job run 'writerjob1'...
    OK
    [...]
    
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=abcd
    username=reader
    [...]
    
  5. 建立 mydatabasesec-writer 密鑰,並使用 --from-literal 選項指定使用者名稱及密碼的鍵值組。

    ibmcloud ce secret create --name mydatabasesec-writer --from-literal username=writer --from-literal password=wxyz
    
  6. 使用 secret get 指令來檢視 mydatabasesec-writer 密鑰的詳細資料。 密鑰的 passwordusername 金鑰值已編碼。

    ibmcloud ce secret get -n mydatabasesec-writer
    

    輸出範例

    Getting generic secret 'mydatabasesec-writer'...
    OK
    
    Name:          mydatabasesec-writer
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           14s
    Created:       2020-10-14 13:44:16 -0400 EDT
    
    Data:
    ---
    password: d3h5eg==
    username: d3JpdGVy
    
  7. 更新 writerjob 工作以參照完整 mydatabasesec-writer 密鑰並使用 write_ 字首。

    ibmcloud ce job update --name writerjob --env-from-secret write_=mydatabasesec-writer
    
  8. (選用) 檢視已更新 writerjob 工作的詳細資料。 工作完全參照 mydatabasesecmydatabase-writer 密鑰。

    ibmcloud ce job get -n writerjob
    

    輸出範例

    Getting job 'writerjob'...
    OK
    
    Name:          writerjob
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           4m2s
    Created:       2021-02-12T07:12:08-06:00
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name                          Value  
        Secret full reference  mydatabasesec           
        Secret full reference  write_=mydatabasesec-writer   
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  9. 執行使用 writerjob 工作的工作。 因為 writerjob 工作已更新為同時參照 mydatabasesec 密鑰及 mydatabasesec-writer 密鑰,而且這兩個密鑰都包括 usernamepassword 的金鑰,所以前次參照的完整密鑰 mydatabasesec-writer 會置換 mydatabasesec 密鑰。

    若要讓工作執行使用工作的已更新配置及其完整參照密鑰的更新,請執行新的工作。 若要更新應用程式以使用更新的密碼,請重新啟動應用程式。

    ibmcloud ce jobrun submit --name writerjob2 --job writerjob
    
  10. 使用 ibmcloud ce jobrun logs 指令來顯示工作執行的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 若要顯示工作所有實例的日誌,請搭配使用 --jobrun 選項與 jobrun logs 指令。 若要顯示工作執行特定實例的日誌,請在 jobrun logs 指令中使用 --instance 選項。 必要的話,請使用 jobrun get --name writerjob2 指令來顯示此工作執行的詳細資料,包括工作執行的實例。 請注意,在輸出中,mydatabasesec-writer 密碼的 usernamepassword 金鑰會置換 mydatabasesec 密碼的金鑰。 此外,在日誌輸出中,會顯示完整密鑰 mydatabasesec-writer 的金鑰,並以字首 write_。密鑰值會新增至解碼的環境。

ibmcloud ce jobrun logs --instance writerjob2-0-0

輸出範例

Getting logs for job run instance 'writerjob2-0-0'...
[...]

certificate=-----BEGIN CERTIFICATE--------
asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
-----END CERTFICIATE----------
password=abcd
username=reader
write_password=wxyz
write_username=writer
[...]

實務 B 以金鑰參照置換完整參照的密鑰

如果密鑰或 configmap 中的金鑰位於完全參照的密鑰或 configmap 中,則一律會置換密鑰或 configmap 的完整參照,而不考慮順序。

在此實務範例中,讓我們使用先前建立的 mydatabasesecmydatabasesec-writer 密鑰,以及工作密鑰內的參照金鑰。

  1. writerpic 工作上設定環境變數,以參照 mydatabasesecmydatabasesec-writer 密鑰中的特定金鑰。 mydatabasesec 密鑰包含 username=readerpassword=abcdcertificate=cert.pem 金鑰。 mydatabasesec-writer 密鑰包含 username=writerpassword=wxyz 金鑰。

    ibmcloud ce job create -n writerpick -i busybox -c env --env-from-secret mydatabasesec-writer:username --env-from-secret mydatabasesec-writer:password --env-from-secret mydatabasesec
    
  2. (選用) 檢視 writerpick 工作的詳細資料。 輸出會顯示 mydatabasesec 密鑰的完整參照,以及 mydatabasesec-writer 密鑰之 passwordusername 金鑰的金鑰參照。

    ibmcloud ce job get -n writerpick
    

    輸出範例

    Getting job 'writerpick'...
    OK
    
    Name:          writerpick
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           107s
    Created:       2021-02-12T07:16:46-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                   Name           Value  
        Secret full reference  mydatabasesec    
        Secret key reference   password       mydatabasesec-writer.password  
        Secret key reference   username       mydatabasesec-writer.username  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. 執行使用 writerpick 工作的工作。

    ibmcloud ce jobrun submit --name writerpick1 --job writerpick
    
  4. 使用 ibmcloud ce jobrun logs 指令來顯示 writerpick1 工作執行的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 若要顯示工作執行特定實例的日誌,請在 jobrun logs 指令中使用 --instance 選項。 必要的話,請使用 jobrun get --name writerpick1 指令來顯示此工作執行的詳細資料,包括工作執行的實例。 因為 writerpick 工作已更新為參照 mydatabasesec-writer 密鑰中的特定金鑰,並參照完整 mydatabasesec 密鑰,所以 mydatabasesec-writer 密鑰中 usernamepassword 金鑰的參照會置換完整密鑰的參照。 密鑰值會新增至已解碼的環境。

    ibmcloud ce jobrun logs --instance writerpick1-0-0
    

    輸出範例

    Getting logs for job run instance 'writerpick1-0-0'...
    [...]
    
    username=writer
    certificate=-----BEGIN CERTIFICATE--------
    asdf;aksjdflkajsdflkjasldkfjalskdjflaksjdflk
    -----END CERTFICIATE----------
    password=wxyz
    [...]
    

實務範例 C。 以新金鑰置換金鑰參照

您可以更新密鑰或 configmap 中特定金鑰的參照,並將值置換為新值。

在此實務範例中,讓我們使用先前建立的 mydatabasecm configmap,其中包含 url:myurl 索引鍵以更新索引鍵的值。

  1. keyref 工作上設定環境變數,以參照 mydatabasecm configmap 中的特定索引鍵。

    ibmcloud ce job create -n keyref -i busybox -c env --env-from-configmap mydatabasecm:url
    
  2. (選用) 檢視 keyref 工作的詳細資料。 輸出會顯示 mydatabasecm configmap 中 url 索引鍵的索引鍵參照。

    ibmcloud ce job get -n keyref
    

    輸出範例

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           65s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:                 
        env  
    Environment Variables:    
        Type                     Name  Value  
        ConfigMap key reference  url   mydatabasecm.url  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    
  3. 執行使用 keyref 工作的工作。

    ibmcloud ce jobrun submit --name keyref1 --job keyref
    
  4. 顯示使用 ibmcloud ce jobrun logs 指令執行之 keyref1 工作的執行中實例的日誌。 您可以顯示工作執行之所有實例的日誌,或顯示工作執行之特定實例的日誌。 若要顯示工作執行特定實例的日誌,請在 jobrun logs 指令中使用 --instance 選項。 必要的話,請使用 jobrun get --name keyref1 指令來顯示此工作執行的詳細資料,包括工作執行的實例。 工作執行使用 url=myurl 金鑰參照。

    ibmcloud ce jobrun logs --instance keyref1-0-0
    

    輸出範例

    Getting logs for job run instance 'keyref1-0-0'...
    [...]
    
    url=myurl
    [...]
    
  5. 更新 keyref 工作,以將 url=myurl 置換為新的金鑰。 使用 --env 選項來更新 url 金鑰。 job update 指令上的 --env 選項以 NAME=VALUE 格式設定工作的環境變數。

    ibmcloud ce job update --name keyref --env url=newurl  
    
  6. (選用) 檢視 keyref 工作的詳細資料。 輸出會顯示 mydatabasecm configmap 中 url 索引鍵的索引鍵參照。

    ibmcloud ce job get -n keyref
    

    輸出範例

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           3m6s
    Created:       2021-02-12T07:18:44-06:00  
    
    Commands:                 
        env  
    Environment Variables:    
        Type     Name  Value  
        Literal  url   newurl  
    Image:                  busybox  
    Resource Allocation:      
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

使用 CLI 移除完整參照的密鑰或 configmap

您可以從工作或應用程式移除完整參照的密鑰或 configmap。

在此實務範例中,讓我們從 demo 工作中移除完整參照的 mydatabasesec 密鑰。

  1. 更新 demo 工作,以移除對 mydatabasesec 密鑰的參照。

    ibmcloud ce job update -n demo --env-from-secret-rm mydatabasesec
    
  2. 檢視 demo 工作的詳細資料。 輸出說明已移除 mydatabasesec 密鑰的參照。

    ibmcloud ce job get -n demo
    

    輸出範例

    Getting job 'demo'...
    OK
    
    Name:          demo
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           19m
    Created:       2021-02-12T07:05:23-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox    
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3
    

使用 CLI 移除金鑰參照

您可以從工作或應用程式中移除密鑰或 configmap 中的參照金鑰。

在此實務範例中,讓我們從 keyref 工作中移除 url 金鑰。

即使在工作上使用 --env-from-configmap 選項來參照 mydatabasecm configmap 中的 url 索引鍵,您也可以使用 --env-rm 選項來移除個別索引鍵。 您可以將 --env-rm 選項與 job updateapp update 指令搭配使用,以移除金鑰參照,而不論金鑰是否為密鑰或 configmap 中的個別金鑰參照,或金鑰是否直接在工作或應用程式上使用 --env 選項設定。

  1. 更新 keydef 工作,以移除 url 金鑰的參照。

    ibmcloud ce job update --name keyref --env-rm url
    
  2. 檢視 keyref 工作的詳細資料。 輸出說明已移除 url 索引鍵的參照。

    ibmcloud ce job get -n keyref
    

    輸出範例

    Getting job 'keyref'...
    OK
    
    Name:          keyref
    ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           6m27s
    Created:       2021-02-12T07:18:44-06:00  
    [...]
    
    Commands:               
        env  
    Image:                busybox  
    Resource Allocation:    
        CPU:     1  
        Memory:  4G  
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        Max Execution Time:    7200
        Retry Limit:           3