问题:
我正在尝试从boto3获取经过身份验证的用户的区域.
使用案例:
我正在努力将缓存添加到https://github.com/pmazurek/aws-fuzzy-finder.我更愿意按区域缓存结果.
该软件包使用boto获取用户身份验证数据(密钥和区域).问题是该区域永远不会被用户明确传递,它是从boto读取的许多阴暗的地方之一中获取的,所以我真的没办法得到它.
我试过搜索boto3 api和谷歌搜索,但找不到任何像一个get_region或get_user_data方法.可能吗?
我正在使用这些参数在DynamoDB中创建一个表和GSI,根据文档:
configId是表的主键,我使用它publisherId作为GSI的主键.(为简洁起见,我删除了一些不必要的配置参数)
var params = {
TableName: 'Configs',
KeySchema: [
{
AttributeName: 'configId',
KeyType: 'HASH',
}
],
AttributeDefinitions: [
{
AttributeName: 'configId',
AttributeType: 'S',
},
{
AttributeName: 'publisherId',
AttributeType: 'S',
}
],
GlobalSecondaryIndexes: [
{
IndexName: 'publisher_index',
KeySchema: [
{
AttributeName: 'publisherId',
KeyType: 'HASH',
}
]
}
]
};
Run Code Online (Sandbox Code Playgroud)
我用这个查询这个表:
{ TableName: 'Configs',
IndexName: 'publisher_index',
KeyConditionExpression: 'publisherId = :pub_id',
ExpressionAttributeValues: { ':pub_id': { S: '700' } } }
Run Code Online (Sandbox Code Playgroud)
但我一直收到错误:
"ValidationException:一个或多个参数值无效:条件参数类型与模式类型不匹配"
在文档中,它指定主要KeyType可以是HASH或RANGE,并且您 …
使用AWS CLI从命令行解密密文时,密文会被解密而不会出现问题:
$ aws kms decrypt --ciphertext-blob fileb://encrypted-secrets --output text --query Plaintext --region us-east-1 | base64 --decode > decryped-secrets
Run Code Online (Sandbox Code Playgroud)
当尝试从js脚本执行此操作时,此解密操作也在本地工作:
#!/usr/local/bin/node
const fs = require('fs');
const AWS = require('aws-sdk');
const kms = new AWS.KMS({region:'us-east-1'});
const secretPath = './encrypted-secrets';
const encryptedSecret = fs.readFileSync(secretPath);
const params = {
CiphertextBlob: encryptedSecret
};
kms.decrypt(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
const decryptedScret = data['Plaintext'].toString();
console.log('decrypted secret', decryptedScret);
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当在AWS Lambda函数的上下文中尝试使用与上述几乎完全相同的代码时,调用该函数会导致超时:
'use strict';
const zlib = require('zlib');
const mysql …Run Code Online (Sandbox Code Playgroud) amazon-web-services aws-sdk aws-lambda aws-kms aws-sdk-nodejs
我们在AWS S3上使用了新的Aws SDK API.我们上传并标记了许多带标签的文件和文件夹.
我们如何过滤键值标签,或只过滤其中一个?我想找到key ="temp",或key ="temp"和value ="lol"的所有对象.
谢谢!
我正在尝试使用入门( Java中的AWS Lambda代码编写)页面中的Java代码示例,但我被困为com.amazonaws.services.lambda.runtime pacakge似乎缺失了
以下是示例代码:
package example;
import com.amazonaws.services.lambda.runtime.Context; //package does not exist error
import com.amazonaws.services.lambda.runtime.LambdaLogger; // package does not exist error
import com.amazonaws.services.s3.AmazonS3; // import works (not needed, I've put them in for testing import)
import com.amazonaws.services.s3.model.S3Object; // import works (not needed, I've put them in for testing import)
public class Hello {
public String myHandler(int myCount, Context context) {
LambdaLogger logger = context.getLogger();
logger.log("received : " + myCount);
return String.valueOf(myCount);
}
}
Run Code Online (Sandbox Code Playgroud)
我在Netbeans中通过命令行(指定aws …
用户成功登录后,我无法在从 AWS Cognito 返回的ID_TOKEN 中获取自定义属性。
我试过的步骤:
1.创建用户池 2.创建应用客户端并检查自定义属性(customattrib1,customattrib2)
用户池屏幕:
检查应用程序客户端配置中的自定义属性
3.使用admin-create-user api创建用户
下图显示了用户属性的值:
4.在客户端应用程序中使用 aws-cognito-auth.js 登录的用户。返回的 ID 令牌不包含自定义属性。
ID_TOKEN
{
"at_hash": "PKfjYDaiEty5mUOyJZlPQA",
"sub": "639d5016-2bd3-4c6f-b82d-21ae38071b09",
"email_verified": true,
"iss": "https://cognito-idp.ap-south-1.amazonaws.com/ap-south-1_XXXXXXX",
"phone_number_verified": true,
"cognito:username": "testuser",
"aud": "XYXYXYXYX",
"token_use": "id",
"auth_time": 1549349674,
"phone_number": "##########",
"exp": 1549353274,
"iat": 1549349674,
"email": "testuser@somedomain.com"
}
Run Code Online (Sandbox Code Playgroud)
我已经检查了下面的链接,其中包含有关此问题的一些信息,但到目前为止没有任何帮助。
如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中
如果用户池配置了 SAML 身份提供者,则 Cognito 用户池自定义属性不会显示在 ID 令牌中
https://www.reddit.com/r/aws/comments/a07dwg/cognito_add_custom_attribute_to_jwt_token/
请帮我弄清楚我是否遗漏了什么..
amazon-web-services openid-connect amazon-cognito aws-sdk aws-userpools
我有一个应用程序,它将数据发送到AWS Kinesis Firehose,并将数据写入我的S3存储桶.Firehose使用"yyyy/MM/dd/HH"格式来编写文件.
就像在这个示例S3路径中一样:
s3://mybucket/2016/07/29/12
Run Code Online (Sandbox Code Playgroud)
现在我有一个用Scala编写的Spark应用程序,我需要从特定时间段读取数据.我有开始和结束日期.数据采用JSON格式,这就是我sqlContext.read.json()不使用的原因sc.textFile().
如何快速有效地读取数据?
通配符 - 我可以选择特定日期或特定月份所有日期的所有小时数据,例如:
val df = sqlContext.read.json("s3://mybucket/2016/07/29/*")
val df = sqlContext.read.json("s3://mybucket/2016/07/*/*")
Run Code Online (Sandbox Code Playgroud)
但是,如果我必须从几天的日期读取数据,例如2016-07-29 - 2016-07-30我不能以相同的方式使用通配符方法.
这让我想到了下一点......
sc.textFile()sqlContext.read.json()联盟 - 云的前一个链接的第二个解决方案建议分别读取每个目录,然后将它们合并在一起.虽然他建议联合RDD-s,但也可以选择联合DataFrames.如果我手动生成给定日期时间段的日期字符串,那么我可能会创建一个不存在的路径,而不是忽略它,整个读取失败.相反,我可以使用AWS SDK并使用listObjectsAmazonS3Client中的函数来获取上一个链接中iMKanchwala解决方案中的所有密钥.
唯一的问题是我的数据不断变化.如果read.json()函数将所有数据作为单个参数获取,它将读取所有必需的数据,并且足够智能从数据中推断出json模式.如果我分别读取2个目录并且它们的模式不匹配,那么我认为联合这两个数据帧会成为一个问题.
Glob(?)语法 - nhahtdh的这个解决方案比选项1和2好一点,因为它们提供了更详细地指定日期和目录的选项,并作为单个"路径",因此它也适用于.read.json()
但同样,关于丢失的目录会出现一个熟悉的问题.假设我想要从20.07到30.07的所有数据,我可以这样声明:
val df = sqlContext.read.json("s3://mybucket/2016/07/[20-30]/*")
Run Code Online (Sandbox Code Playgroud)
但是,如果我从7月25日开始丢失数据,那么路径..16/07/25/就不存在了,整个功能都失败了.
显然,当请求的时间段是25.11.2015-12.02.2016时,它会变得更加困难,那么我需要以编程方式(在我的Scala脚本中)创建一个类似这样的字符串路径:
"s3://mybucket/{2015/11/[25-30],2015/12/*,2016/01/*,2016/02/[01-12]}/*"
Run Code Online (Sandbox Code Playgroud)
通过创建它,我会以某种方式确定这些25-30和01-12间隔都有相应的路径,如果缺少一个,它会再次失败.(幸运的是,Asterisk会处理丢失的目录,因为它会读取存在的所有内容)
如何从一个目录路径中一次性读取所有必要的数据,而不会因为某个日期间隔之间缺少目录而失败?
在AWS Cognito中,您可以将用户添加到组(首次创建组之后).用户可以属于一个或多个组.
使用JavaScipt SDK(https://github.com/aws/amazon-cognito-identity-js),有没有办法读取分配的组?会aws-sdk提供访问权限amazon-cognito-identity-js吗?
我正在编写代码以将文件上传到AWS S3并收到此异常:
AmazonClientException:未配置RegionEndpoint或ServiceURL
我的代码:
Console.WriteLine("ready to upload");
AWSCredentials credentials;
credentials = new BasicAWSCredentials(accessKeyID.Trim(), secretKey.Trim());
AmazonS3Client s3Client = new AmazonS3Client(accessKeyID.Trim(), secretKey.Trim(), Amazon.RegionEndpoint.USEast1);
Console.WriteLine("Successful verification");
Console.WriteLine("Check if the bucket exists");
if (!CheckBucketExists(s3Client, bucketName))
{
s3Client.PutBucket(bucketName);
Console.WriteLine("create bucket");
}
TransferUtility utility = new TransferUtility();
Console.WriteLine("Upload Directory......");
//exception here
utility.UploadDirectory(@"E:\telerikFile\13ginabdfglil.com", bucketName);
Run Code Online (Sandbox Code Playgroud)
例外:
Amazon.Runtime.AmazonClientException: No RegionEndpoint or ServiceURL configured
Amazon.Runtime.ClientConfig.Validate()
Amazon.S3.AmazonS3Config.Validate()
Amazon.Runtime.AmazonServiceClient..ctor(AWSCredentials credentials, ClientConfig config)
Amazon.S3.AmazonS3Client..ctor()
Amazon.S3.Transfer.TransferUtility..ctor()
Telerik2Amazon.Program.UploadFile()
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
aws-sdk ×10
amazon-s3 ×4
aws-lambda ×2
.net ×1
amazon-ec2 ×1
android ×1
apache-spark ×1
aws-cognito ×1
aws-java-sdk ×1
aws-kms ×1
aws-sdk-net ×1
boto ×1
java ×1
node.js ×1
python ×1
scala ×1
search ×1
tags ×1