async function getOosClient()

in solution/solution-compliance-audit-for-data-plane/source/function/ecs-patch-baseline/index.js [121:154]


async function getOosClient(eventParams, context) {
  const { regionId, accountId } = eventParams.invokingEvent.configurationItem;
  const { credentials } = context;

  // Assume Role 到需要检测的目标账号
  const stsClient = new RPCClient({
    accessKeyId: credentials.accessKeyId,
    accessKeySecret: credentials.accessKeySecret,
    securityToken: credentials.securityToken,
    endpoint: `https://sts.${regionId}.aliyuncs.com`,
    apiVersion: '2015-04-01',
  });

  const accountCredentials = await stsClient.request(
    'AssumeRole',
    {
      RegionId: regionId,
      RoleArn: `acs:ram::${accountId}:role/${eventParams.ruleParameters.configFcExecutionRoleName}`,
      RoleSessionName: 'EcsPatchBaselineInspection',
    },
    requestOption
  );

  // 构造 oos 服务的 client
  const oosClient = new RPCClient({
    accessKeyId: accountCredentials.Credentials.AccessKeyId,
    accessKeySecret: accountCredentials.Credentials.AccessKeySecret,
    securityToken: accountCredentials.Credentials.SecurityToken,
    endpoint: `https://oos.${regionId}.aliyuncs.com`,
    apiVersion: '2019-06-01',
  });

  return oosClient;
}