我试图找出如何在(我的)CloudFormation模板中将验证类型设置为Code(默认)Link.
如果我看一下这些文档,就没有提到.我的CloudFormation看起来像
SomeUserPoolResourceName:
Type: AWS::Cognito::UserPool
Properties:
UserPoolName: SomeResource_User_Pool
EmailVerificationType: Link # I want something like this
EmailVerificationSubject: 'Your verification link'
EmailVerificationMessage: 'Please click the link below to verify your email address. {##Verify Email##}' # fails because {####} is required
AliasAttributes:
- email
AutoVerifiedAttributes:
- email
Policies:
PasswordPolicy:
- ....
Schema:
- ....
Run Code Online (Sandbox Code Playgroud)
是否可以通过CloudFormation进行配置?
在我的网页上是用Highchart绘制的图表.现在,如果我调整整个窗口的大小,我希望此图表调整其大小(尤其是宽度).该守则看起来类似于:
window.onresize=function(){resized();}
function resized()
{
$("#container").highcharts().redraw();
}
Run Code Online (Sandbox Code Playgroud)
如果我覆盖重绘事件(使用类似"alert("resized");"),我将得到一个结果,因此应该调用该方法 - 但图表不会改变其大小.我还尝试手动设置图表大小
$("#container").highcharts().setSize(width, height, false);
Run Code Online (Sandbox Code Playgroud)
但两种方式都不起作用.还有其他解决方案吗?
我对 AWS 还很陌生,我尝试设计第一个 API。我倾向于使用 AWS 的以下元素:Cognito(用于用户身份验证)、Lambda(用于 REST API)和 RDS(用于 postgres)。我开发了一个实体关系模型,其中包括一个用户实体。这个实体将有一个id、email、password、name(以及其他一些东西)。
该实体应该有一个 id,它将在 erm 图中的其他部分用作外键。
我想要的是:用户实体将完全由 Cognito 处理,但用户的 id 可以在我的 RDS 中使用。
Afaik Cognito 仅支持 Facebook、Google 和 Amazon 帐户。但我也可以添加我自己的身份验证方法。所以我必须走这条路。
我已将 AWS APIGateway 配置为根据 JSON 架构验证请求。
例如路径 /vehicle,它附加了以下模式:
{
"type":"object",
"properties":{
"licensePlate":{
"pattern":"[A-Za-z]{1,3} [A-Za-z]{1,2} \\d{1,4}",
"type":"string"
},
"vehicleType":{
"type":"string",
"enum":[
"Truck",
"Trailer"
]
}
},
"required":[
"licensePlate",
"vehicleType"
]
}
Run Code Online (Sandbox Code Playgroud)
这工作正常。如果我提交无效请求,API 会以 400 响应{"message": "Invalid request body"}。我想自定义此消息,例如
{
"entity": "vehicleType",
"message": "missing"
}
Run Code Online (Sandbox Code Playgroud)
如果我查看网关的日志,似乎记录了类似的消息 ( object has missing required properties (["vehicleType"]))。我可以用那个吗?我怎样才能访问它?
日志:
Execution log for request test-request
Thu Feb 01 13:12:18 UTC 2018 : Starting execution for request: test-invoke-request
Thu Feb 01 13:12:18 UTC 2018 : HTTP …Run Code Online (Sandbox Code Playgroud) 我正在使用 AWS,并且有以下设置:UserPool; API网关、Lambda函数
API 网关使用 UserPool 授权者来保护 lambda 函数。到目前为止,这是有效的。现在我想将每个 lambda 函数限制为特定的用户组。因此,我在 CognitoPool 中创建了两个用户组(user和admin),并使用策略为每个组分配了特定角色。之后,我在 UserPool 中创建了一个用户并将其添加到该user组中。该用户仍然能够向每个路由/lambda 函数提交请求。
我如何提交请求?
IdToken(经过身份验证的用户)AuthorizationAuthorization标头,响应是 401(如预期)Authorization标头,每个 lambda 函数都可以被触发(不是预期的)用户池组的配置:
团体用户:
Role ARN: arn:aws:iam::xxxxxx:role/User用户角色指定为
{
"Version": "2012-10-17",
"Statement": [
"Action": [
"lambda:InvokeFunction",
"lambda:InvokeAsync"
],
"Resource": [
"arn:aws:lambda:region:xxxxxx:function:api-dev-getItems
],
"Effect": "Allow"
]
}
Run Code Online (Sandbox Code Playgroud)群组管理员:
Role ARN: arn:aws:iam::xxxxxx:role/AdminAdminRole 指定为
{
"Version": "2012-10-17",
"Statement": [
"Action": [
"lambda:InvokeFunction",
"lambda:InvokeAsync"
],
"Resource": …Run Code Online (Sandbox Code Playgroud)amazon-web-services amazon-cognito aws-lambda aws-api-gateway