我创建了一个简单的API测试来发布文档。终端节点需要使用AWS访问和密钥进行身份验证。这是我的API测试代码。
public static async Task<HttpResponseMessage> PostRequest(string requestUrl, dynamic json = null, byte[] file = null)
{
var credentials = new ImmutableCredentials(accessKey, secretKey, null);
var url= url.SetQueryParams(json);
var httpContent = new ByteArrayContent(file );
var response = await client.PostAsync(
postUrl,
httpContent,
regionName: regionName,
serviceName: serviceName,
credentials: credentials);
return response;
}
[目前,这些凭据是硬编码的(我知道这不是很好)。通过CI管道,我正在使用CircleCi,并将AWS密钥存储在环境变量部分中。我现在的问题是如何访问和实现这些变量到我的测试代码中?
关于我要执行的操作的想法是,我不想在源代码控制中对我的AWS密钥进行硬编码。
我使用circleci,但我不使用dot.net。
我已将AWS凭证添加为circleci项目的环境变量。在那之后,我不包括我的nodejs代码的凭据部分。 aws-sdk
的nodejs
将使用环境变量来获取凭据。我认为基于dot.net的应用程序的行为也应相同。
希望这会有所帮助。
您可以使用CircleCI context存储AWS密钥,然后在CircleCI配置中指定上下文。这将阻止将它们保留在代码中。