通过DynamoDB NewImage流事件给出一些DynamoDB JSON,如何将其解组为常规JSON?
{"updated_at":{"N":"146548182"},"uuid":{"S":"foo"},"status":{"S":"new"}}
Run Code Online (Sandbox Code Playgroud)
通常我会使用AWS.DynamoDB.DocumentClient,但我似乎无法找到通用的Marshall/Unmarshall函数.
旁注:我是否会丢失任何将DynamoDB JSON解组为JSON并再次返回的内容?
运行节点应用程序时出现配置错误。错误是:
{ ConfigError: Missing region in config
at Request.VALIDATE_REGION (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:12027:47)
at Request.callListeners (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:11804:22)
at callNextListener (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:11794:14)
at C:\Users\chris\Documents\AWS API TEST\myapp\node_modules\aws-
sdk\dist\aws-sdk-react-native.js:12021:11
at finish (C:\Users\chris\Documents\AWS API TEST\myapp\node_modules\aws-
sdk\dist\aws-sdk-react-native.js:10842:9)
at Config.getCredentials (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:10887:9)
at Request.VALIDATE_CREDENTIALS (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:12016:28)
at Request.callListeners (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:11800:20)
at Request.emit (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:11776:12)
at Request.emit (C:\Users\chris\Documents\AWS API
TEST\myapp\node_modules\aws-sdk\dist\aws-sdk-react-native.js:13792:16)
message: 'Missing region in config',
code: 'ConfigError',
Run Code Online (Sandbox Code Playgroud)
我的代码是:
//Authenticate AWS:
var myCredentials = new AWS.CognitoIdentityCredentials({IdentityPoolId:'us-west-2a:"Identity Pool ID"'});
var myConfig = new AWS.Config({ …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 CDK 应用程序中使用 SDK。我的堆栈正在创建一个目录、一些网络内容,然后是一些使用需要 AD DNS IP 的 PowerShell 脚本加入域的实例,我目前使用它的方式如下:
const ds = new DirectoryService();
const result = new Promise(function (resolve: (value: string) => any, reject) {
ds.describeDirectories({}, function (err, data) {
if (err){
reject(data)
}else{
try{
if (data.DirectoryDescriptions){
if (data.DirectoryDescriptions[0].DnsIpAddrs){
resolve(data.DirectoryDescriptions[0].DnsIpAddrs.toString())
}
}
}catch (e) {
reject("Directory doesn't exist yet.")
}
}
})
});
result.then(value => {
const subs = {
"#{DNS_ADDRESSES}": value,
"#{SECRET_ID}": directory.directorySecret.secretArn
};
Object.entries(subs).forEach(
([key, value]) => {
domainJoinScript = domainJoinScript.replace(key, String(value));
}
);
new Stack(app, …Run Code Online (Sandbox Code Playgroud) javascript amazon-web-services typescript aws-sdk-js aws-cdk
我正在尝试使用 Node.js 应用程序中的 SSO 凭证通过 AWS-SDK 访问 AWS 资源。为此,我首先从 AWS CLI 创建了我的 SSO 配置文件,然后尝试在我尝试使用以下方法的应用程序中使用相同的配置文件:
Option1:
const AWS = require("aws-sdk");
const { defaultProvider } = require("@aws-sdk/credential-provider-node");
const route53 = new AWS.Route53({ credentials: defaultProvider({ profile: "my-sso-profile" })});
Option2:
const AWS = require("aws-sdk");
const { fromSSO } = require("@aws-sdk/credential-provider-sso");
const route53 = new AWS.Route53({ credentials: fromSSO ({ profile: "my-sso-profile" })});
Run Code Online (Sandbox Code Playgroud)
我运行时出现以下错误:
Error [CredentialsError]: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1
Run Code Online (Sandbox Code Playgroud)
即使我已经使用(setx AWS_SDK_LOAD_CONFIG 1)将环境变量AWS_SDK_LOAD_CONFIG设置为1。我仍然面临同样的问题
我的配置文件位于 users/user/.aws/config ,如下所示:
[profile my-sso-profile]
sso_start_url = https://*******.awsapps.com/start …Run Code Online (Sandbox Code Playgroud) amazon-web-services single-sign-on aws-sdk-nodejs aws-sdk-js
我正在使用AWS S3 JS SDK。我的 S3 存储桶中的文件夹内有文件夹,我想仅列出特定级别的文件夹。
这是结构:
bucket/folder1/folder2/folder3a/file1
bucket/folder1/folder2/folder3a/file2
bucket/folder1/folder2/folder3a/file3
bucket/folder1/folder2/folder3a/...
bucket/folder1/folder2/folder3b/file1
bucket/folder1/folder2/folder3b/file2
bucket/folder1/folder2/folder3b/file3
bucket/folder1/folder2/folder3b/...
bucket/folder1/folder2/folder3c/file1
bucket/folder1/folder2/folder3c/file2
bucket/folder1/folder2/folder3c/file3
bucket/folder1/folder2/folder3c/...
Run Code Online (Sandbox Code Playgroud)
如您所见,在文件夹 3 的级别,我有多个文件夹,每个文件夹都包含多个项目。我不关心这些物品。我只想列出第 3 级的文件夹名称。有没有好的方法可以做到这一点?
我发现的唯一方法是使用ListObjectsV2。但这也给了我一些导致结果集膨胀的文件,之后我需要进行手动过滤。有没有办法在 API 级别只获取文件夹名称?
如何使用 Javascript (TypeScript) aws-sdk v3 调用 lambda 函数?
我使用以下代码似乎不起作用:
// the payload (input) to the "my-lambda-func" is a JSON as follows:
const input = {
name: 'fake-name',
serial: 'fake-serial',
userId: 'fake-user-id'
};
// Payload of InvokeCommandInput is of type Uint8Array
const params: InvokeCommandInput = {
FunctionName: 'my-lambda-func-name',
InvocationType: 'RequestResponse',
LogType: 'Tail',
Payload: input as unknown as Uint8Array, // <---- payload is of type Uint8Array
};
console.log('params: ', params); // <---- so far so good.
const result = await lambda.invoke(params);
console.log('result: …Run Code Online (Sandbox Code Playgroud) 在aws-sdk v2JavaScript 中,我们使用以下方法实例化 s3 客户端:
var s3 = new AWS.S3({
accessKeyId: 'YOUR-ACCESSKEYID' ,
secretAccessKey: 'YOUR-SECRETACCESSKEY' ,
s3ForcePathStyle: true,
signatureVersion: 'v4'
});
Run Code Online (Sandbox Code Playgroud)
在这里你可以看到signatureVersion能够被指定。
在v3您实例化客户端时使用:
import { S3Client } from '@aws-sdk/client-s3';
credentials = {
accessKeyId: <ACCESS_KEY>,
secretAccessKey: <SECRET_ACCESS_KEY>
}
const client = new S3Client({
region: 'us-east-1',
credentials: credentials,
forcePathStyle: true,
})
Run Code Online (Sandbox Code Playgroud)
该文档对于如何执行此操作不是很清楚(并且没有示例)。我如何signatureVersion在 sdk 版本(v3)中为客户端指定?
我收到标题中指定的错误。
我尝试这样做:使用php上传带有签名 URL 的对象
问题如下:['starts-with', '$key', 'test/']
['starts-with', '$key', 'test/']这是如何运作的?
存储桶中存在测试文件夹。
请帮忙。
我的代码(服务器端 php):
$formInputs = ['acl' => 'private'];
// Construct an array of conditions for policy $options = [
['acl' => 'private'],
['bucket' => $bucket],
['starts-with', '$key', 'test/'] ];
// Optional: configure expiration time string $expires = '+2 hours';
$postObject = new \Aws\S3\PostObjectV4(
$client,
$bucket,
$formInputs,
$options,
$expires );
$formAttributes = $postObject->getFormAttributes(); $formInputs = $postObject->getFormInputs();
?>
----------
<form action="<?=$formAttributes['action']?>" method="<?=$formAttributes['method']?>" enctype="<?=$formAttributes['enctype']?>">
<?php
foreach($formInputs as $k=>$v){
echo'<input …Run Code Online (Sandbox Code Playgroud) 我尝试通过 PUT 接口将图像文件 (jpeg) 上传到 AWS S3,但收到错误 SignatureDoesNotMatch。
在我的服务器上,我有一个 Express node.js 应用程序,它带有一个端点来创建签名 URL。
'use strict';
const express = require('express');
const bodyParser = require('body-parser');
const config = require('./config');
// Load the AWS SDK for Node.js
const AWS = require('aws-sdk');
AWS.config.update({
accessKeyId: config.AWS_ACCESS_KEY_ID,
secretAccessKey: config.AWS_SECRET_ACCESS_KEY,
region: 'us-east-1'
});
const s3 = new AWS.S3();
const app = express();
const awsS3Router = express.Router();
// parse application/json
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
// AWS S3 REST endpoints
awsS3Router.get('/getImageDrop', function(req, res) {
if(!req.query.filename) {
res.status(400).send('Request query is empty!'); …Run Code Online (Sandbox Code Playgroud)aws-sdk-js ×10
amazon-s3 ×4
javascript ×4
node.js ×2
typescript ×2
amazon-ses ×1
aws-cdk ×1
aws-lambda ×1
aws-sdk ×1
json ×1
region ×1