从同一KeyVault向新VMSS添加多个证书

时间:2018-01-05 16:03:41

标签: powershell azure azure-vm-scale-set

问题

我尝试在创建新VMSS时添加多个证书,但我收到错误列表机密包含重复的实例

  

/subscriptions/xxxxx/resourceGroups/xxxxx/providers/Microsoft.KeyVault/vaults/xxxxx,   这是不允许的。

创建VMSS的我的powershell是:

maxNumberCount

预期

在常见问题解答中:https://docs.microsoft.com/en-us/azure/virtual-machine-scale-sets/virtual-machine-scale-sets-faq 它有一个部分'当我从同一个密钥库添加多个证书后运行Update-AzureRmVmss时,我看到以下消息:'但我无法弄清楚如何修复我的脚本工作,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

我无法测试,但根据我对文档的阅读,您不能多次使用Train on 2116850 samples, validate on 234276 samples Epoch 1/1 --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-32-8ce1b684763f> in <module>() ----> 1 fit_nn(0.001, bs) <ipython-input-30-3e1be8cadb04> in fit_nn(lr, bs) 23 val_onehot_encoded_country, 24 val_onehot_encoded_highlight, ---> 25 val_onehot_encoded_note], val_onehot_encoded_quartile) 26 ) /home/prateek_dl/anaconda3/lib/python3.5/site-packages/keras/engine/training.py in fit(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs) 1596 initial_epoch=initial_epoch, 1597 steps_per_epoch=steps_per_epoch, -> 1598 validation_steps=validation_steps) 1599 1600 def evaluate(self, x, y, /home/prateek_dl/anaconda3/lib/python3.5/site-packages/keras/engine/training.py in _fit_loop(self, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps) 1181 batch_logs['size'] = len(batch_ids) 1182 callbacks.on_batch_begin(batch_index, batch_logs) -> 1183 outs = f(ins_batch) 1184 if not isinstance(outs, list): 1185 outs = [outs] /home/prateek_dl/anaconda3/lib/python3.5/site-packages/keras/backend/tensorflow_backend.py in __call__(self, inputs) 2271 updated = session.run(self.outputs + [self.updates_op], 2272 feed_dict=feed_dict, -> 2273 **self.session_kwargs) 2274 return updated[:len(self.outputs)] 2275 /home/prateek_dl/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py in run(self, fetches, feed_dict, options, run_metadata) 893 try: 894 result = self._run(None, fetches, feed_dict, options_ptr, --> 895 run_metadata_ptr) 896 if run_metadata: 897 proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) /home/prateek_dl/anaconda3/lib/python3.5/site-packages/tensorflow/python/client/session.py in _run(self, handle, fetches, feed_dict, options, run_metadata) 1091 feed_handles[subfeed_t] = subfeed_val 1092 else: -> 1093 np_val = np.asarray(subfeed_val, dtype=subfeed_dtype) 1094 1095 if (not is_tensor_handle_feed and /home/prateek_dl/anaconda3/lib/python3.5/site-packages/numpy/core/numeric.py in asarray(a, dtype, order) 480 481 """ --> 482 return array(a, dtype, copy=False, order=order) 483 484 def asanyarray(a, dtype=None, order=None): ValueError: setting an array element with a sequence. 。您必须在初始命令中添加同一商店中的所有证书,或在此处编辑列表:Add-AzureRmVmssSecret

对于您的代码,我会尝试:

$vmss.properties.osProfile.secrets[0].vaultCertificates

$cgCertConfig = New-AzureRmVmssVaultCertificateConfig -CertificateUrl $cgCertURL -CertificateStore 'My' $ktuCertConfig = New-AzureRmVmssVaultCertificateConfig -CertificateUrl $ktuCertURL -CertificateStore 'My' $vmssConfig = Add-AzureRmVmssSecret -VirtualMachineScaleSet $vmssConfig -SourceVaultId $vaultId -VaultCertificate $cgCertConfig,$ktuCertConfig 属性接受一个数组,因此请尝试一次传递所有证书。

答案 1 :(得分:0)

可以使用.Add属性上的VaultCertificates函数,例如:

$vmss = Get-AzVmss -ResourceGroupName $vmssResourceGroupName -VMScaleSetName $vmssName

# Add the certificate to the same collection
$vmss.VirtualMachineProfile.OsProfile.Secrets[0].VaultCertificates.Add($certConfig)

# Update VMSS
Update-AzVmss -ResourceGroupName $vmssResourceGroupName -Verbose -Name $vmssName -VirtualMachineScaleSet $vmss