Javascript Cloudfront createDistribution上的InvalidArgument错误
Node.js版本 v12.16.2 SDK版本号 v2.727.0 当我试图通过API创建一个新的Cloudfront发行版时,我收到一个错误,指出MinTTL是必填字段,但查看sdk文档,它表示该属性已被弃用。当我将MinTTL放在DefaultCacheBehavior字段上时,它表示ForwardedValues是必需的,这是另一个不推荐使用的属性。我用Typescript做这个,所以我也有类型检查告诉我这一切都很好。我还在构造函数上指定最新的API版本。我做错什么了吗 返回Javascript Cloudfront createDistribution上的InvalidArgument错误,javascript,node.js,amazon-web-services,amazon-cloudfront,aws-sdk-js,Javascript,Node.js,Amazon Web Services,Amazon Cloudfront,Aws Sdk Js,Node.js版本 v12.16.2 SDK版本号 v2.727.0 当我试图通过API创建一个新的Cloudfront发行版时,我收到一个错误,指出MinTTL是必填字段,但查看sdk文档,它表示该属性已被弃用。当我将MinTTL放在DefaultCacheBehavior字段上时,它表示ForwardedValues是必需的,这是另一个不推荐使用的属性。我用Typescript做这个,所以我也有类型检查告诉我这一切都很好。我还在构造函数上指定最新的API版本。我做错什么了吗 返回 { m
{
message: "The parameter MinTTL is required.",
code: "InvalidArgument",
statusCode: 400,
}
我在调用中传递的最后一个对象如下:
{
DistributionConfig: {
CallerReference: "3e408c41-d8d6-11ea-b123-177f1e4dc4e3",
Enabled: true,
Comment: “teste.com.br Production Distribution",
Aliases: {
Quantity: 2,
Items: [
"teste.com.br",
"www.teste.com.br",
],
},
Origins: {
Quantity: 1,
Items: [
{
Id: “teste.com.br3e408c40-d8d6-11ea-b123-177f1e4dc4e3",
DomainName: “my-production-load-balancer-domain-name”,
CustomOriginConfig: {
HTTPSPort: 443,
HTTPPort: 80,
OriginProtocolPolicy: "http-only",
OriginReadTimeout: 30,
OriginKeepaliveTimeout: 5,
},
},
],
},
ViewerCertificate: {
ACMCertificateArn: "arn:aws:acm:us-east-1:522904521474:certificate/e221dfd8-72b7-4431-b9db-b460fdsds3be9",
CloudFrontDefaultCertificate: false,
SSLSupportMethod: "sni-only",
MinimumProtocolVersion: "TLSv1.1_2016",
},
DefaultCacheBehavior: {
TargetOriginId: “teste.com.br3e408c40-d8d6-11ea-b123-177f1e4dc4e3",
TrustedSigners: {
Enabled: false,
Quantity: 0,
},
AllowedMethods: {
Quantity: 7,
Items: [
"GET",
"HEAD",
"OPTIONS",
"PUT",
"PATCH",
"POST",
"DELETE",
],
},
ViewerProtocolPolicy: "redirect-to-https",
},
IsIPV6Enabled: true,
},
}
你能打印出函数
createDistribution
的参数值吗?我在问题上添加了一个新的部分,显示了调用@jellycsc。我想你指的是我自己的功能,对吧?对不起,我不是这个意思。我要改写。您将一个大对象传递到this.cloudfront.createDistribution
。我想看看用真实值填充时实际存在什么。这有意义吗?哦,好吧,我现在明白了,我的错,我会在帖子上再做一次编辑,显示这一点。我将只编辑一些值,因为我不知道它们是否是敏感信息。。。我是aws的新手。如果您不想使用旧参数,您应该指定CachePolicyId
和/或OriginRequestPolicyId
。您能打印出函数createDistribution
的参数值吗?我在问题上添加了一个新的部分,显示调用@jellycsc。我想你指的是我自己的功能,对吧?对不起,我不是这个意思。我要改写。您将一个大对象传递到this.cloudfront.createDistribution
。我想看看用真实值填充时实际存在什么。这有意义吗?哦,好吧,我现在明白了,我的错,我会在帖子上再做一次编辑,显示这一点。我将只编辑一些值,因为我不知道它们是否是敏感信息。。。我是aws的新手。如果不想使用旧参数,则应指定CachePolicyId
和/或OriginRequestPolicyId
。
{
DistributionConfig: {
CallerReference: "3e408c41-d8d6-11ea-b123-177f1e4dc4e3",
Enabled: true,
Comment: “teste.com.br Production Distribution",
Aliases: {
Quantity: 2,
Items: [
"teste.com.br",
"www.teste.com.br",
],
},
Origins: {
Quantity: 1,
Items: [
{
Id: “teste.com.br3e408c40-d8d6-11ea-b123-177f1e4dc4e3",
DomainName: “my-production-load-balancer-domain-name”,
CustomOriginConfig: {
HTTPSPort: 443,
HTTPPort: 80,
OriginProtocolPolicy: "http-only",
OriginReadTimeout: 30,
OriginKeepaliveTimeout: 5,
},
},
],
},
ViewerCertificate: {
ACMCertificateArn: "arn:aws:acm:us-east-1:522904521474:certificate/e221dfd8-72b7-4431-b9db-b460fdsds3be9",
CloudFrontDefaultCertificate: false,
SSLSupportMethod: "sni-only",
MinimumProtocolVersion: "TLSv1.1_2016",
},
DefaultCacheBehavior: {
TargetOriginId: “teste.com.br3e408c40-d8d6-11ea-b123-177f1e4dc4e3",
TrustedSigners: {
Enabled: false,
Quantity: 0,
},
AllowedMethods: {
Quantity: 7,
Items: [
"GET",
"HEAD",
"OPTIONS",
"PUT",
"PATCH",
"POST",
"DELETE",
],
},
ViewerProtocolPolicy: "redirect-to-https",
},
IsIPV6Enabled: true,
},
}