oracle 是否有OCI配置文件的替代品?

yc0p9oo0  于 2022-12-18  发布在  Oracle
关注(0)|答案(1)|浏览(161)

医生说:
Oracle云基础架构SDK和CLI需要基本配置信息,如用户身份证明和租赁OCID。您可以通过以下方式提供此信息:使用配置文件;在运行时声明配置
还有,他们说:
如果您使用的是Oracle SDK或工具之一,请在代码[...]中的配置文件配置对象中提供所需的凭据。
我想知道如何在一个对象而不是一个配置文件中提供这些信息。我还没有找到任何例子。
我以字符串形式动态接收帐户凭据信息,没有配置文件。
下面是我的代码示例:

import * as identity from "oci-identity"
import common = require("oci-common")

interface Account {
  cliente: string,
  cloud_provider: {
    provider_name: string,
    tenancy: string,
    configFile: string,
    keyFile: string
  },
}

// Credentials
const provider: common.ConfigFileAuthenticationDetailsProvider = new common.ConfigFileAuthenticationDetailsProvider()
const client = new identity.IdentityClient({ authenticationDetailsProvider: this.provider });

const getTenancy = (accounts: Account) => {
  // Create a request and dependent object(s).
  const request: identity.requests.GetTenancyRequest = {
    tenancyId: id
  }

  // Send request to the Client.
  const response = await client.getTenancy(request)
}

const ids = ['id', 'id2', 'id3']

ids.forEach(id => {
  getTenancy(id)
})
hgqdbh6s

hgqdbh6s1#

已在https://github.com/oracle/oci-typescript-sdk/issues/175上应答。
简而言之,我需要使用SimpleAuthenticationDetailsProvider而不是ConfigFileAuthenticationDetailsProvider
第一个允许我们设置如下凭据:

const common = require("oci-common");
const identity = require("oci-identity");

// TODO: Fill in appropriate values for tenancy (str) / fingerprint (str) / passphrase(optional) (str | null) / privateKey (str) / region (common.Region)
const tenancy = "";
const user = "";
const fingerprint = "";
const passphrase = null; // optional parameter
const privateKey = ``;
const region = common.Region.US_PHOENIX_1; // Change to appropriate region

const provider = new common.SimpleAuthenticationDetailsProvider(
  tenancy,
  user,
  fingerprint,
  privateKey,
  passphrase,
  region
);

相关问题