菜单
开源 RSS

SystemsManagerClient

SystemsManagerClient 与 AWS Systems Manager 服务交互。

通过它,用户可以在调用者的 AWS 账户和区域中从 Systems Manager 服务获取参数。

专门的 ssm.js jslib 包和包含所有内容的 aws.js 包都包含 SystemsManagerClient

方法

函数描述
getParameter从 Amazon Systems Manager 中检索参数。

抛出

SystemsManagerClient 方法在失败时抛出错误。

Error条件
InvalidSignatureError使用无效凭据时
SystemsManagerServiceErrorAWS 回复请求的操作时发生错误

示例

JavaScript
import exec from 'k6/execution';

import {
  AWSConfig,
  SystemsManagerClient,
} from 'https://jslib.k6.io/aws/0.13.0/ssm.js';

const awsConfig = new AWSConfig({
  region: __ENV.AWS_REGION,
  accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
  secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
  sessionToken: __ENV.AWS_SESSION_TOKEN,
});

const systemsManager = new SystemsManagerClient(awsConfig);
const testParameterName = 'jslib-test-parameter';
const testParameterValue = 'jslib-test-value';
const testParameterSecretName = 'jslib-test-parameter-secret';
// this value was created with --type SecureString
const testParameterSecretValue = 'jslib-test-secret-value';

export default async function () {
  // Currently the parameter needs to be created before hand

  // Let's get its value
  // getParameter returns a parameter object: e.g. {name: string, value: string...}
  const parameter = await systemsManager.getParameter(testParameterName);
  if (parameter.value !== testParameterValue) {
    exec.test.abort('test parameter not found');
  }

  // Let's get the secret value with decryption
  // destructure the parameter object to get to the values you want
  const { value: encryptedParameterValue } = await systemsManager.getParameter(
    testParameterSecretName,
    true
  );
  if (encryptedParameterValue !== testParameterSecretValue) {
    exec.test.abort('encrypted test parameter not found');
  }
}

查询用户 Systems Manager 服务参数的 k6 脚本