IBM Cloud Docs
環境変数を使用したシークレットおよび構成マップの参照 (CLI)

環境変数を使用したシークレットおよび構成マップの参照 (CLI)

Code Engineで、シークレットと構成マップを作成した後、キーと値のペアとして保管されている情報は、シークレット全体または構成マップ全体を参照するか、個々のキーを参照することによって、環境変数としてアプリ、ジョブ、または関数ワークロードによって取り込むことができます。

シークレットを環境変数として処理することは、構成マップを環境変数として処理することと類似しています。 シークレットを処理する場合は、データがエンコードされます。

構成マップまたはシークレットを参照する環境変数を持つアプリ、ジョブ、または関数を更新する際には、以下の情報を考慮してください。

  • 構成マップ (またはシークレット) を完全に参照する環境変数を持つアプリ、ジョブ、または関数を更新して、別の構成マップ (またはシークレット) を完全に参照する場合、完全参照は、設定されている順序で他の完全参照をオーバーライドします (最後に参照されたセットが最初のセットをオーバーライドします)。
  • ある構成マップ (またはシークレット) 内のキーを参照する環境変数を持つアプリ、ジョブ、または関数を更新して、別の構成マップ (またはシークレット) 内の同じキーを参照するようにすると、最後に参照されたキーが使用されます。
  • 特定のキーへの参照を追加するために、構成マップ (またはシークレット) を完全に参照する環境変数を持つアプリ、ジョブ、または関数を更新すると、特定のキー参照によって構成マップ全体 (またはシークレット) の参照がオーバーライドされます。

CLI を使用した構成マップまたはシークレットの参照に関する基本的な情報については、CLI を使用した構成マップの参照およびCLI を使用したシークレットの参照を参照してください。

シークレットまたは構成マップを処理するいくつかのシナリオを以下に示します。

CLI でのシークレット全体の参照

シークレットと構成マップは、キーと値のペアで構成されます。 環境変数は、完全なシークレットまたは構成マップを参照するときに、キーごとにエントリーを指定した結果です。 複数のシークレット (または構成マップ) に同じ名前付きキーが含まれている場合は、参照されているシークレットまたは構成マップ内のいずれか 1 つのキーのみを取得します。

このシナリオでは、ユーザー名およびパスワードを表すキーと値のペアが含まれるシークレットを作成してから、ジョブの実行時にそのシークレット全体を参照します。 シークレットの更新によってキーを追加し、その新規キーをジョブで使用する方法を示します。 このシナリオではシークレットを使用しますが、コマンドに含まれる configmapsecret に置き換えることによって、同じ手順で構成マップ全体を参照できます。

  1. mydatabasesec シークレットを作成し、--from-literal オプションを使用して、ユーザー名およびパスワードを表すキーと値のペアを指定します。

    ibmcloud ce secret create -n mydatabasesec --from-literal username=reader --from-literal password=abcd
    
  2. mydatabasesec コマンドを使用して、secret get シークレットの詳細を表示します。 シークレットの password キーと username キーの値はエンコードされます。

    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は、各キーの接頭部がPREFIXになっている構成マップ全体を参照することを指定します。 read_接頭部を使用すると、各キーの接頭部としてread_が付きます。 busybox イメージは、デフォルトでは出力を何も表示しないため、-c env オプションでコンテナー内のすべての環境変数を表示するよう指定します。

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

    ジョブまたはアプリ内のすべての環境変数が固有であることを確認するために、接頭部を使用することを検討してください。 例えば、キーab、およびcを持つ秘密がある場合、これらの環境変数はab、およびcとして表示されます。 ただし、read_などの接頭部を追加すると、read_aread_b、およびread_cなどの接頭部とともにキーが表示されます。 接頭部を使用すると、参照元のアプリ、ジョブ、またはジョブ実行内の環境変数もグループ化され、構成マップまたはシークレット内のキーの重複を回避するのに役立ちます。

  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. mydatabasesec コマンドを使用して、更新された secret get シークレットの詳細を表示します。 シークレットには、3 つのキー certificatepassword、および username が含まれるようになっています。 シークレットの値はエンコードされます。

    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 ジョブを使用するジョブを実行します。 先ほどは、mydatabasesec ジョブから demo シークレット全体を参照しました。 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 です。 certificate シークレット全体の username キー、password キー、および 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 での構成マップにおける個々のキーの参照

このシナリオでは、キーと値のペアが複数含まれる構成マップを作成してから、ジョブで特定のキーを参照します。 このシナリオでは構成マップを使用しますが、コマンドに含まれる secretconfigmap に置き換えることによって、同じ汎用手順を使用してシークレットでも個々のキーを参照できます。

  1. mydatabase 構成マップを作成し、--from-literal KEY=VALUE オプションを使用して、名前および URL を表すキーと値のペアを指定します。

    ibmcloud ce configmap create -n mydatabasecm --from-literal name=myname --from-literal url=myurl
    
  2. mydatabasecm コマンドを使用して、configmap get 構成マップの詳細を表示します。

    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. url 構成マップ内の mydatabasecm キーを参照するためにジョブに環境変数を設定します。 --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 での参照データのオーバーライド

参照されるシークレットおよび構成マップをオーバーライドできます。 シークレットまたは構成マップを処理するいくつかのシナリオを以下に示します。

シナリオ A 完全に参照されるシークレットを、完全に参照される別のシークレットでオーバーライドする

このシナリオでは、mydatabasesec-writer キーと username キーを含む新しい password シークレットを作成し、先に作成した username シークレット内の password キーと mydatabasesec キーをオーバーライドします。 mydatabasesec シークレットには username=reader キーと password=abcd キーが含まれます。

参照先全体は設定された順に他の参照先全体をオーバーライドします (後に設定された参照先が、先に設定された参照先をオーバーライドします)。

  1. 先に作成された writerjob シークレット全体を参照するために mydatabasesec ジョブに環境変数を設定します。 mydatabasesec シークレットには username=reader キーと password=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 ジョブ実行のログを表示します。 username シークレット全体の password キーと mydatabasesec キーが出力に表示されていることに注目してください。 シークレットの値は、デコードされて環境に追加されます。

    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. mydatabasesec-writer コマンドを使用して、secret get シークレットの詳細を表示します。 シークレットの password キーと username キーの値はエンコードされます。

    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. mydatabasesec-writerシークレット全体を参照するようにwriterjobジョブを更新し、write_接頭部を使用します。

    ibmcloud ce job update --name writerjob --env-from-secret write_=mydatabasesec-writer
    
  8. (オプション) 更新された writerjob ジョブの詳細を表示します。 このジョブでは、mydatabasesec シークレット全体と mydatabase-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 logsコマンドで--jobrunオプションを使用します。 ジョブ実行の特定のインスタンスのログを表示するには、jobrun logsコマンドで--instanceオプションを使用します。 必要に応じて、jobrun get --name writerjob2 コマンドを使用して、ジョブ実行のインスタンスを含め、このジョブ実行の詳細を表示します。 出力で、username シークレットの password キーと mydatabasesec-writer キーによって、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 完全に参照されているシークレットをキー参照でオーバーライドする

シークレットまたは構成マップ内のキーが参照されるとき、全体が参照されるシークレットまたは構成マップ内にその使用キーがある場合、順序に関係なく常に、そのキーの参照によってシークレット全体または構成マップ全体の参照がオーバーライドされます。

このシナリオでは、既に作成済みのシークレット mydatabasesec および mydatabasesec-writer を使用し、それらのシークレット内のキーをジョブで参照します。

  1. writerpic シークレットおよび mydatabasesec シークレットに含まれる特定のキーを参照するために、mydatabasesec-writer ジョブに環境変数を設定します。 mydatabasesec シークレットには username=reader キー、password=abcd キー、および certificate=cert.pem キーが含まれます。 mydatabasesec-writer シークレットには username=writer キーと password=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 シークレット全体の参照と、password シークレットの username キーおよび mydatabasesec-writer キーのキー参照が表示されます。

    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 シークレット全体を参照するようになったため、username シークレット内の password キーおよび mydatabasesec-writer キーの参照によってシークレット全体の参照がオーバーライドされます。 シークレットの値は、デコードされて環境に追加されます。

    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 新規キーによるキー参照のオーバーライド

シークレットまたは構成マップにある特定のキーの参照を更新し、その値を新規値でオーバーライドすることができます。

このシナリオでは、mydatabasecm キーが含まれる、前に作成した url:myurl 構成マップを使用して、そのキーの値を更新します。

  1. keyref 構成マップに含まれる特定のキーを参照するために、mydatabasecm ジョブに環境変数を設定します。

    ibmcloud ce job create -n keyref -i busybox -c env --env-from-configmap mydatabasecm:url
    
  2. (オプション) keyref ジョブの詳細を表示します。 url 構成マップ内の mydatabasecm キーのキー参照が出力に表示されます。

    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 ジョブの詳細を表示します。 url 構成マップ内の mydatabasecm キーのキー参照が出力に表示されます。

    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 を使用した全体が参照されるシークレットまたは構成マップの削除

全体が参照されるシークレットまたは構成を、ジョブまたはアプリから削除できます。

このシナリオでは、全体が参照される mydatabasesec シークレットを demo ジョブから削除します。

  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 でのキー参照の削除

シークレットまたは構成マップ内の、参照されるキーをジョブまたはアプリから削除できます。

このシナリオでは、url キーを keyref ジョブから削除します。

--env-from-configmap 構成マップ内の url キーを参照するために mydatabasecm オプションがジョブで使用されましたが、個々のキーを削除するために --env-rm オプションを使用できます。 job updateコマンドまたは app updateコマンドで--env-rmオプションを使用すると、鍵がシークレットまたは構成マップ内の個々の鍵参照であるかどうか、または鍵が--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