我有几个用于管理不同项目的 AWS 配置文件。我们将默认的称为“user1”,将我想要使用的称为“user2”
因此,如果我只是这样做,aws s3 ls它当然会给我 user1 的信息,或者如果我这样做,aws s3 ls --profile=user2它会给我 user2 的信息,这里一切都很好
我也知道我可以export AWS_DEFAULT_PROFILE=user2这样做aws s3 ls,这正确地给了我 user2 的存储桶
问题是,我有一个 Node 应用程序,当我在本地运行时,我想使用 user2 的配置文件。我已经尝试过各种方式AWS_DEFAULT_PROFILE=user2 npm run dev,但不知道该怎么做?
问题如何运行本地 Node 程序并使其 AWS SDK 使用我所需的配置文件?
amazon-web-services aws-cli aws-sdk aws-sdk-nodejs aws-sdk-js
我目前正在开发一项技能,将成为股票投资组合经理。我希望表格有三个标题
UserID 是主键,目前我可以将股票数量添加到表中,然后在一个名为 GetPortfolioValue 的单独方法中查询数据库以返回特定 UserID 的股票名称和股票数量,然后我将执行一些操作计算返回投资组合值。
问题是,我无法在主键下添加另一个条目,因此投资组合中只能有一个股票期权,这很糟糕
我希望以后能够编辑投资组合,以防用户出售部分股票。
有没有办法使用 DynamoDB 来做到这一点?
amazon-web-services node.js amazon-dynamodb aws-sdk aws-lambda
我有一个 S3 存储桶demo,里面有一个对象demo/somefolder。当我调用s3.doesObjectExists("demo", "somefolder")它时返回 false。但是,当我调用 时s3.listObjects("demo", "somefolder"),ObjectListing返回的 引用了S3ObjectSummary.
对这里发生的事情有什么想法吗?
我正在使用 aws-sdk 节点模块将文件上传到 s3 存储桶。如果我尝试上传存储桶中已存在密钥的对象,我希望它覆盖现有对象。
有没有办法实现这种行为?
这是我的代码:
const uploadedImageData = await s3.upload({
Bucket: AWS_bucket_name,
Key: `profile-photo-${username}.jpg`,
Body: resizedImage,
ACL:'public-read-write',
}).promise();```
Run Code Online (Sandbox Code Playgroud) 有没有什么方法可以只使用id来获取一个或多个元素(具有相同的 id)?而不使用alsoe 属性?name
let params = {
TableName: "TableName",
Key: {
id: { S: req.body.ProjectId },
// name: { S: req.body.name }
},
};
ddb.getItem(params, function (err, data) {
if (err) {
console.log("Error", err);
res.send(err);
} else {
console.log("Success", data);
res.send(data);
}
});
Run Code Online (Sandbox Code Playgroud)
});
javascript amazon-web-services node.js amazon-dynamodb aws-sdk
我对 STS 的用例和优点感到困惑。根据文档,它是临时获取一个角色来执行 AWS 中 IAM 用户或服务无法执行的任务。请注意,我说的是编程访问(不是控制台访问)
例如,IAM 用户可能没有 S3 权限。据我的理解:
他可以通过联系AWS STS来获取临时访问密钥/令牌,并获取S3的访问密钥和秘密。
有了这些临时凭证,他就可以访问 S3。
我的问题是:
要从 AWS STS 获取临时凭证,他仍然需要现有的访问令牌(永久)和秘密,对吧?
如果他现有的访问令牌和秘密被泄露,攻击者仍然可以使用它首先从 STS 获取临时凭证,然后访问 S3,对吧?据我所知,攻击者将无法使用他的永久访问令牌和秘密直接访问 S3。
我正在尝试了解其正确的用例。我知道我很困惑,但也许我在循环思考。
提前致谢。
我尝试通过调用deleteUsagePlan函数并传递usagePlanId参数来使用AWS SDK删除使用计划,如下所示:
const params: AWSNXR.APIGateway.DeleteUsagePlanRequest = {
usagePlanId: usage_plan_id,
};
const apigw = new AWS.APIGateway();
const response = await apigw.deleteUsagePlan(params).promise();
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,我无法这样做,并且收到此错误:BadRequestException:无法删除使用计划 USAGE_PLAN_ID_HERE,因为有与其关联的 API 阶段,包括 API_ID_HERE:测试
重现步骤:
1-使用以下参数创建使用计划
名称:“my_usage_plan”,apiStages:[ apiId:“API_ID_HERE”,阶段:“测试”]
2-删除使用计划
使用计划 ID:USAGE_PLAN_ID
我在步骤 #2 中不断收到错误消息: BadRequestException: 无法删除使用计划 USAGE_PLAN_ID_HERE 因为有与其关联的 API 阶段,包括 API_ID_HERE:test
预期行为:
预期的行为是能够使用使用计划 ID 删除新创建的使用计划
附加内容:
我尝试解决此问题的方法: 1- 我尝试删除 API 网关上的测试阶段 2- 我使用相同的使用计划 ID 运行删除使用计划功能
使用计划已成功删除,没有任何错误,但是,我应该能够删除它,而无需删除阶段并在之后重新创建它。
我找不到解组 DynamoDB 记录数组的方法?我从 DynamoDB 中的查询返回多个项目,但无法使用unmarshal来自@aws-sdk/util-dynamodb记录数组的函数。当我迭代记录数组并解组每一条记录时,这可行,但这不是最好的解决方案,因为我要返回大量数据。如何让 DynamoDB 返回多条记录,而无需迭代记录数组来解组每条记录?
代码:
const client = new DynamoDBClient({ region: 'us-east-1' });
const currentDateUTC = moment().utc().format('YYYY-MM-DD');
const command = new QueryCommand({
TableName: 'Device-Data',
IndexName: 'timestamp-index',
KeyConditionExpression: '#timestamp = :timestamp',
ExpressionAttributeNames: { '#timestamp': 'timestamp' },
ExpressionAttributeValues: { ':timestamp': { S: currentDateUTC } },
});
const data = await client.send(command)
Run Code Online (Sandbox Code Playgroud)
回复:
[
{
deviceId: {
S: "test1",
},
userId: {
S: "318ecd46-bead-440f-83eb-60345aaa1c40",
},
timestamp: {
S: "2022-06-12",
},
frequency: {
S: "Monthly",
},
}, …Run Code Online (Sandbox Code Playgroud) 我正在尝试在节点js中使用aws-sdk从redis获取数据。到目前为止,我可以使用 client-elasticache 连接缓存。
redisClient = new ElastiCacheClient({region : "REGION"});
Run Code Online (Sandbox Code Playgroud)
图书馆 :@aws-sdk/client-elasticache
但我无法找到任何直接方法来使用此客户端从缓存获取数据,例如我们在 io-redis 中的get()或mget() 。有没有办法使用 aws-sdk 获取这样的数据?
amazon-web-services amazon-elasticache aws-sdk aws-sdk-nodejs
我想用雾写一个ruby脚本(aws-sdk的包装器).当然,我可以硬编码我的aws密钥和ID,但是我希望能够将它动态设置为我的shell env变量,因为我管理多个帐户.
require 'fog'
require 'json'
require 'logger'
aws_key_id = $aws_key_id
aws_secret_key = $aws_secret_key
queue_url = $sqs_queue_url
Run Code Online (Sandbox Code Playgroud)
这会有用吗?
aws-sdk ×10
amazon-s3 ×2
aws-cli ×2
aws-sdk-js ×2
node.js ×2
aws-lambda ×1
aws-sts ×1
fog ×1
javascript ×1
ruby ×1
secret-key ×1