如何解决IBM Cloud和terraform:如何创建和下载API密钥?
使用IBM Cloud provider plug-in for terraform可以进行access the current authentication token。
data "ibm_iam_auth_token" "tokendata" {}
我还成功创建了一个服务ID。
resource "ibm_iam_service_id" "serviceID" {
name = "test"
description = "New ServiceID"
}
如何创建API密钥,下载并使用它在服务ID下运行下一个terraform apply
?
解决方法
该任务有些棘手,因为该插件不会返回iam_id for service IDs,only the unique ID。
有两个选项。一种是将NULL资源与 curl 和 jq 一起使用
- 首先获取服务ID详细信息,包括iam_id,
- 然后通过POST创建API密钥。
1的代码段可能看起来像这样:
$dateTime = new \DateTime('NOW');
另一种选择是利用以下事实:iam_id似乎只是前缀$i = 1;
while (1) {
$ccp = new IPPCreditCardPaymentTxn();
$ccp->TxnData = $dateTime;
$BankAccountRef = new IPPReferenceType();
$BankAccountRef->value = "35";
$BankAccountRef->name = "null";
$ccp->BankAccountRef = $BankAccountRef;
$CreditCardAccountRef = new IPPReferenceType();
$CreditCardAccountRef->value = "41";
$CreditCardAccountRef->name = "null";
$ccp->CreditCardAccountRef = $CreditCardAccountRef;
$ccp->Amount = 10;
$result = $dataService->add($ccp);
echo "<br> Result id is: " .$result->Id . "<br><br>";
$error = $dataService->getLastError();
if ($error) {
echo "The Status: " . $error->getHttpStatusCode() . "<br><br>";
echo "The Helper: " . $error->getOAuthHelperError() . "<br><br>";
echo "The Response: " . $error->getResponseBody() . "<br><br>";
} else {
var_dump($result);
}
exit;
}
后跟唯一ID。因此,以下对我有用:
data have;
input DATE:date9. RATE;
format DATE date9.;
datalines;
31DEC2014 .
31DEC2015 .
31DEC2016 .
31DEC2017 0.1600
31DEC2018 0.1700
31DEC2019 0.1770
;
proc sql;
create table want as
select DATE,case rate
when . then (select rate from have(where=(rate))
having date=min(date))
else rate
end as rate
from have;
quit;
更新:使用此recent release,返回 iam_id 并可以直接对其进行寻址:
resource "null_resource" "devops_iam_id" {
// Get iam_id for service ID
provisioner "local-exec" {
command = "curl -X GET 'https://iam.cloud.ibm.com/v1/serviceids/${ibm_iam_service_id.myServiceID.id}' -H 'Authorization: ${data.ibm_iam_auth_token.iam_tokendata.iam_access_token}' -H 'Content-Type: application/json' | jq '.iam_id'"
}
}
可以使用IAM token data source获得必需的Bearer令牌:
iam-
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。