使用我尝试运行的 AWS CLI
aws cloudformation create-stack --stack-name FullstackLambda --template-url https://s3-us-west-2.amazonaws.com/awsappsync/resources/lambda/LambdaCFTemplate.yam --capabilities CAPABILITY_NAMED_IAM --region us-west-2
Run Code Online (Sandbox Code Playgroud)
但我得到了错误
An error occurred (ValidationError) when calling the CreateStack operation: S3 error: Access Denied
Run Code Online (Sandbox Code Playgroud)
我已经设置了我的凭证
aws configure
Run Code Online (Sandbox Code Playgroud)
PS我从AppSync文档中获得了create-stack命令(https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-lambda-resolvers.html)
我是 AWS 的新手,并尝试通过参考他们的demo来构建模型(从 Web 控制台)。但是,当我尝试创建模型时,它给了我以下错误。
无法在访问模型数据
https://s3.console.aws.amazon.com/s3/buckets/BUCKET_NAME/models/MODEL_NAME-v0.1.hdf5.请确保角色“阿尔恩:AWS:IAM :: ID:角色/服务的角色/ AmazonSageMaker-ExecutionRole- XXX ”是否存在,以及它的信任关系政策允许的动作“STS:AssumeRole”对于服务主体“sagemaker.amazonaws.com”。还要确保角色具有“s3:GetObject”权限并且对象位于eu-west-1。
我检查了IAM角色,它有AmazonSageMakerFullAccess和AmazonS3FullAccess附加政策。此外,还为角色指定了信任关系(如下所示)。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "sagemaker.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我正确指定了 ECR 和 S3 路径,但我无法弄清楚发生了什么。有人可以帮我解决这个问题吗?
抱歉,如果我无法提供更多信息,但如果需要,我会提供任何其他信息。
更新:
以下是 IAM 政策。
AmazonS3FullAccess
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
AmazonSageMaker-ExecutionPolicy-xxx
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [ …Run Code Online (Sandbox Code Playgroud) amazon-s3 validationerror amazon-web-services amazon-sagemaker
我有两个相关的(通过外键关系)模型,并为内联创建管理模型.在几种情况下(由管理员通过布尔字段编辑),我需要删除所有以前的对象(内联)并创建新对象.我已经尝试使用save_model,我可以获取所有当前对象的属性,并决定是否需要重新创建(内联)对象.楷模:
class Model1(models.Model):
reformat = models.BooleanField(default=False)
...
class Model2(models.Model):
model1 = ForeignKey(Model1, related_name='model2')
...
Run Code Online (Sandbox Code Playgroud)
管理员:
class Model2Inline(admin.TabularInline):
model = Model2
class Model1Admin(admin.ModelAdmin):
inlines = [Model2Inline]
def save_model(self, request, obj, form, change):
super(Model1Admin, self).save_model(request, obj, form, change)
if obj.reformat:
obj.model2.all().delete()
# creating new objects
...
obj.save()
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在model_save方法中删除这些对象,我会得到ValidationError.还有其他可能解决这个问题吗?
我正在关注关于在Django中提升的django教程ValidationError.
不幸的是,即使是最简单的片段也行不通.我已将下面的代码添加到我的验证器对象中:
raise ValidationError(_('Invalid value'), code='invalid')
Run Code Online (Sandbox Code Playgroud)
并得到错误
未定义全局名称"_"
我做错了什么?
我使用cakePHP 3,我在Form-> input()中有一个符号.如果故意我犯了错误,这个错误不会在表单字段下出现.它不会出现在任何地方.
我的代码是这样的:
$newUser = $this->Users->newEntity($this->request->data());
if (!$this->Users->save($newUser)) {
debug($newUser->errors());
$this->Flash->error('Error');
return;
}
Run Code Online (Sandbox Code Playgroud)
Debug显示错误,但是它们不应该自动出现在每个表单元素下面吗?
我有一个django模型,其中包含一个字段,我想在更新后总是比同一个模型实例中的前一个更大,如下所示:
class MyModel(models.Model):
version = models.FloatField()
prev_value = 0
def clean(self):
if self.version <= self.prev_value:
raise ValidationError('error msg')
def save(self,*args,**kwargs):
super(MyModel, self).save(*args, **kwargs)
self.prev_value = self.version
Run Code Online (Sandbox Code Playgroud)
我知道干净工作正常,因为我已经对同一个方法进行了其他验证,它工作正常,我做错了什么,我该如何解决?提前致谢.
我测试了它并且它没有在verion <prev_value的更新上抛出任何错误消息
编辑:即时通讯使用新的Django 1.4
我无法从我的视图中访问ValidationError消息.我设法在我的视图中获得的唯一输出是:
[ValidationError(username,Too short, sorry ;),[6])]
[ValidationError(password,Confirmation password doesn't match,[])]
Run Code Online (Sandbox Code Playgroud)
我只想输出错误消息:"太短,抱歉;)"和"确认密码不匹配".
我找到的解决方法是从表单中调用特定字段,然后访问错误消息:
@form("password").error.map(_.message).getOrElse("")
Run Code Online (Sandbox Code Playgroud)
谢谢,
我的观点register.scala.html:
@if(form.hasErrors) {
<div class="form-group">
<div class="alert alert-danger col-lg-6 text-center">
@for((key, vamlue) <- form.errors){
@value<br />
}
</div>
</div>
}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
public static Result registerSubmit(){
Form<User> registerForm = form(User.class).bindFromRequest();
String passwordConfirmation = registerForm.field("passwordConfirmation").value();
if(!registerForm.field("password").valueOr("").equals(passwordConfirmation)){
ValidationError e = new ValidationError("password", "Confirmation password doesn't match");
registerForm.reject(e);
}
if (registerForm.hasErrors()){
// Handle Error
return badRequest(register.render(registerForm));
} else {
// Check if all data are fine
// TODO : Redirect to …Run Code Online (Sandbox Code Playgroud) 我有一个Zend\Form带有多个嵌套Fieldsets的复合体。现在我需要实现交叉验证Fieldset。这意味着,验证规则是指Element来自不同Fieldsets 的多个s。我发现这样做的唯一方法是在 中实现此验证MyForm#isValid(),因为它是唯一的地方,我可以从中访问每个Fieldset地方。
MyForm extends Form
{
public function isValid()
{
$isFormValid = parent::isValid();
$isCrossFieldsetVaidationOk = // my additional validation logic
return $isFormValid && $isCrossFieldsetVaidationOk;
}
}
Run Code Online (Sandbox Code Playgroud)
尚未测试,但它会工作。问题在于添加错误消息。
我试过了
$this->setMessages(array_merge(
$this->getMessages(), ['my new message'])
);
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
如何添加Form错误消息?
将从Grails域对象上的validate()调用收到的面向开发人员的验证错误列表转换为面向用户的错误消息的最佳方法是什么?
示例:
具有值[x]的类[class testproj.AuthUser]的属性[email]不是有效的电子邮件地址
宁愿阅读:
给出的电子邮件不是有效的电子邮件地址
有内置的东西吗?
django ×3
validation ×3
amazon-s3 ×2
admin ×1
aws-appsync ×1
aws-cli ×1
aws-lambda ×1
cakephp ×1
cakephp-3.0 ×1
django-1.4 ×1
forms ×1
grails ×1
inlines ×1
java ×1
php ×1
python ×1
scala ×1
zend-form ×1