Closed mayaaravotwm closed 4 years ago
Maya Do you have an example TF file you can provide with rules.json for reference as error appears right after working on data.akamai_property_rules.rules ...
data "akamai_property_rules" "rules" {
rules { # Default rule
behavior {
name = "origin"
option {
key = "cacheKeyHostname"
value = "ORIGIN_HOSTNAME"
}
option {
key = "originType"
value = "CUSTOMER"
}
option {
key = "hostname"
value = "1.2.3.4"
}
option {
key = "forwardHostHeader"
value = "REQUEST_HOST_HEADER"
}
option {
key = "compress"
value = true
}
option {
key = "enableTrueClientIp"
value = false
}
option {
key = "httpPort"
value = 80
}
option {
key = "httpsPort"
value = 443
}
option {
key = "verificationMode"
value = "CUSTOM"
}
option {
key = "originSni"
value = false
}
option {
key = "originCertsToHonor"
value = "STANDARD_CERTIFICATE_AUTHORITIES"
}
option {
key = "standardCertificateAuthorities"
values = ["akamai-permissive", "THIRD_PARTY_AMAZON"]
}
option {
key = "customValidCnValues"
values = ["{{Origin Hostname}}", "{{Forward Host Header}}"]
}
}
behavior {
name = "caching"
option {
key = "behavior"
value = "CACHE_CONTROL_AND_EXPIRES"
}
option {
key = "mustRevalidate"
value = true
}
option {
key = "defaultTtl"
value = "0h"
}
option {
key = "honorPrivateEnabled"
value = false
}
option {
key = "honorMustrevalidateEnabled"
value = false
}
}
behavior {
name = "allowPost"
option {
key = "enabled"
value = true
}
option {
key = "allowWithoutContentLength"
value = false
}
}
behavior {
name = "report"
option {
key = "logHost"
value = false
}
option {
key = "logReferer"
value = false
}
option {
key = "logUserAgent"
value = true
}
option {
key = "logAcceptLanguage"
value = false
}
option {
key = "logCookies"
value = "OFF"
}
option {
key = "logCustomLogField"
value = false
}
}
behavior {
name = "sureRoute"
option {
key = "enabled"
value = false
}
option {
key = "srDownloadLinkTitle"
value = ""
}
}
behavior {
name = "tieredDistribution"
option {
key = "enabled"
value = true
}
}
behavior {
name = "prefetch"
option {
key = "enabled"
value = true
}
}
behavior {
name = "realUserMonitoring"
option {
key = "enabled"
value = false
}
}
behavior {
name = "http2"
option {
key = "enabled"
value = ""
}
}
behavior {
name = "allowTransferEncoding"
option {
key = "enabled"
value = true
}
}
rule {
name = "Redirect to HTTPS"
behavior {
name = "redirect"
option {
key = "queryString"
value = "APPEND"
}
option {
key = "responseCode"
value = 301
}
option {
key = "destinationHostname"
value = "SAME_AS_REQUEST"
}
option {
key = "destinationPath"
value = "SAME_AS_REQUEST"
}
option {
key = "destinationProtocol"
value = "HTTPS"
}
option {
key = "mobileDefaultChoice"
value = "DEFAULT"
}
}
criteria {
name = "requestProtocol"
option {
key = "value"
value = "HTTP"
}
}
}
rule {
name = (var.env == "prod" ? "console.mobile.walkme.com" : "${data.terraform_remote_state.vpc.outputs.env}-console.mobile.walkme.com")
criteria {
name = "hostname"
option {
key = "matchOperator"
value = "IS_ONE_OF"
}
option {
key = "values"
values = [(var.env == "prod" ? "console.mobile.walkme.com" : "${data.terraform_remote_state.vpc.outputs.env}-console.mobile.walkme.com")]
}
}
behavior {
name = "origin"
option {
key = "cacheKeyHostname"
value = "ORIGIN_HOSTNAME"
}
option {
key = "compress"
value = true
}
option {
key = "customValidCnValues"
values = ["{{Origin Hostname}}", "{{Forward Host Header}}"]
}
option {
key = "enableTrueClientIp"
value = true
}
option {
key = "forwardHostHeader"
value = "ORIGIN_HOSTNAME"
}
option {
key = "hostname"
value = "${aws_cloudfront_distribution.s3_distribution.domain_name}"
}
option {
key = "httpPort"
value = 80
}
option {
key = "httpsPort"
value = 443
}
option {
key = "originCertificate"
value = ""
}
option {
key = "originCertsToHonor"
value = "STANDARD_CERTIFICATE_AUTHORITIES"
}
option {
key = "originSni"
value = false
}
option {
key = "originType"
value = "CUSTOMER"
}
option {
key = "ports"
value = ""
}
option {
key = "standardCertificateAuthorities"
values = ["akamai-permissive", "THIRD_PARTY_AMAZON"]
}
option {
key = "trueClientIpClientSetting"
value = false
}
option {
key = "trueClientIpHeader"
value = "True-Client-IP"
}
option {
key = "verificationMode"
value = "CUSTOM"
}
}
}
rule {
name = "Content Compression"
criteria {
name = "contentType"
option {
key = "matchCaseSensitive"
value = false
}
option {
key = "matchOperator"
value = "IS_ONE_OF"
}
option {
key = "matchWildcard"
value = true
}
option {
key = "values"
values = ["text/*","application/javascript","application/x-javascript","application/x-javascript*","application/json","application/x-json","application/*+json","application/*+xml","application/text","application/vnd.microsoft.icon","application/vnd-ms-fontobject","application/x-font-ttf","application/x-font-opentype","application/x-font-truetype","application/xmlfont/eot","application/xml","font/opentype","font/otf","font/eot","image/svg+xml","image/vnd.microsoft.icon"]
}
}
behavior {
name = "gzipResponse"
option {
key = "behavior"
value = "ALWAYS"
}
}
}
rule {
name = "Static Content"
criteria {
name = "fileExtension"
option {
key = "matchCaseSensitive"
value = false
}
option {
key = "matchOperator"
value = "IS_ONE_OF"
}
option {
key = "values"
values = ["aif","aiff","au","avi","bin","bmp","cab","carb","cct","cdf","class","css","doc","dcr","dtd","exe","flv","gcf","gff","gif","grv","hdml","hqx","ico","ini","jpeg","jpg","js","mov","mp3","nc","pct","pdf","png","ppc","pws","swa","swf","txt","vbs","w32","wav","wbmp","wml","wmlc","wmls","wmlsc","xsd","zip","pict","tif","tiff","mid","midi","ttf","eot","woff","woff2","otf","svg","svgz","webp","jxr","jar","jp2"]
}
}
behavior {
name = "caching"
option {
key = "behavior"
value = "CACHE_CONTROL_AND_EXPIRES"
}
option {
key = "mustRevalidate"
value = false
}
option {
key = "defaultTtl"
value = "1h"
}
option {
key = "honorPrivateEnabled"
value = false
}
option {
key = "honorMustrevalidateEnabled"
value = false
}
}
behavior {
name = "prefetch"
option {
key = "enabled"
value = false
}
}
behavior {
name = "prefetchable"
option {
key = "enabled"
value = true
}
}
}
rule {
name = "Dynamic Content"
criteria {
name = "cacheability"
option {
key = "matchOperator"
value = "IS_NOT"
}
option {
key = "value"
value = "CACHEABLE"
}
}
behavior {
name = "downstreamCache"
option {
key = "behavior"
value = "TUNNEL_ORIGIN"
}
}
}
}
}
I got the same crash today, when I upgraded from 0.1.4 to 0.1.5
Error: rpc error: code = Unavailable desc = transport is closing
panic: interface conversion: interface {} is nil, not string
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4:
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: goroutine 29 [running]:
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/akamai.extractRulesJSON.func1(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xc00050184e, 0xb06, ...)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/akamai/resource_akamai_property.go:1033 +0x645
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/tidwall/gjson.Result.ForEach(0x5, 0xc000501840, 0x40b6, 0x0, 0x0, 0x0, 0x0, 0xc00090ccc0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/tidwall/gjson/gjson.go:277 +0x33b
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/akamai.extractRulesJSON(0xc0001dfab0, 0x5, 0xc000501840, 0x40b6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, ...)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/akamai/resource_akamai_property.go:1026 +0xa5
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/akamai.unmarshalRulesFromJSONComp.func1(0x3, 0xc000501834, 0xa, 0xc000501835, 0x8, 0x0, 0x25, 0x5, 0xc000501840, 0x40b6, ...)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/akamai/diff_suppress_funcs.go:191 +0x1c4
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/tidwall/gjson.Result.ForEach(0x5, 0xc00050180f, 0x45aa, 0x0, 0x0, 0x0, 0xf, 0xc00090d138)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/tidwall/gjson/gjson.go:277 +0x33b
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/akamai.unmarshalRulesFromJSONComp(0xc0001dfab0, 0xc000501800, 0x45bc, 0xc000b0e240)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/akamai/diff_suppress_funcs.go:127 +0x1e0
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/akamai.getRulesForComp(0xc0001dfab0, 0xc000501800, 0x45bc, 0x1, 0x1, 0x169f)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/akamai/diff_suppress_funcs.go:92 +0x27e
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/akamai.suppressEquivalentJsonDiffs(0x111266a, 0x5, 0xc0003e8800, 0x16c6, 0xc000501800, 0x45bc, 0xc0001dfab0, 0x203000)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/akamai/diff_suppress_funcs.go:51 +0x509
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema.schemaMap.diff(0xc000453230, 0x111266a, 0x5, 0xc00046e300, 0xc000455e60, 0x139a3a0, 0xc0001dfab0, 0x0, 0x0, 0x0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema/schema.go:893 +0x3d4
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema.schemaMap.Diff(0xc000453230, 0xc00042b8b0, 0xc0004d2390, 0x0, 0xf12e60, 0x1d27d88, 0x1394c00, 0xc0004ac260, 0xffffffffffffffff, 0x0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema/schema.go:491 +0x216
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema.(*Resource).simpleDiff(0xc00014db00, 0xc00042b8b0, 0xc0004d2390, 0xf12e60, 0x1d27d88, 0x1, 0xc0004ac260, 0xc0004d2390)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema/resource.go:332 +0x85
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema.(*Provider).SimpleDiff(0xc00014dd00, 0xc000273ab8, 0xc00042b8b0, 0xc0004d2390, 0xc0001f3c10, 0xc0004d2390, 0x0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/schema/provider.go:312 +0x18f
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/plugin.(*GRPCProviderServer).PlanResourceChange(0xc000146528, 0x1393ca0, 0xc0003a6ab0, 0xc00045ab40, 0xc000146528, 0xc0003a6ab0, 0xc0002c9bd0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/helper/plugin/grpc_provider.go:634 +0x777
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/internal/tfplugin5._Provider_PlanResourceChange_Handler(0x10d4320, 0xc000146528, 0x1393ca0, 0xc0003a6ab0, 0xc00042b720, 0x0, 0x1393ca0, 0xc0003a6ab0, 0xc0004c2000, 0xa863)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/github.com/hashicorp/terraform/internal/tfplugin5/tfplugin5.pb.go:3199 +0x23e
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc.(*Server).processUnaryRPC(0xc000564900, 0x139f500, 0xc000556900, 0xc0001f4600, 0xc00013d230, 0x1cfdd08, 0x0, 0x0, 0x0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc/server.go:966 +0x470
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc.(*Server).handleStream(0xc000564900, 0x139f500, 0xc000556900, 0xc0001f4600, 0x0)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc/server.go:1245 +0xd25
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc.(*Server).serveStreams.func1.1(0xc000148090, 0xc000564900, 0x139f500, 0xc000556900, 0xc0001f4600)
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc/server.go:685 +0x9f
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: created by github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc.(*Server).serveStreams.func1
2020-01-10T12:36:09.471+0100 [DEBUG] plugin.terraform-provider-akamai_v0.1.5_x4: /opt/teamcity-agent/work/5d79fe75d4460a2f/src/github.com/terraform-providers/terraform-provider-akamai/vendor/google.golang.org/grpc/server.go:683 +0xa1
2020-01-10T12:36:09.478+0100 [DEBUG] plugin: plugin process exited: path=/foobar/akamai/global/aws_govcloud/.terraform/plugins/linux_amd64/terraform-provider-akamai_v0.1.5_x4 pid=13609 error="exit status 2"
2020/01/10 12:36:09 [ERROR] module.govcloud_userconsole_ui: eval: *terraform.EvalDiff, err: rpc error: code = Unavailable desc = transport is closing
2020/01/10 12:36:09 [ERROR] module.govcloud_userconsole_ui: eval: *terraform.EvalSequence, err: rpc error: code = Unavailable desc = transport is closing
2020/01/10 12:36:09 [TRACE] [walkPlan] Exiting eval tree: module.govcloud_userconsole_ui.akamai_property.prop
2020/01/10 12:36:09 [TRACE] vertex "module.govcloud_userconsole_ui.akamai_property.prop": visit complete
2020/01/10 12:36:09 [TRACE] vertex "module.govcloud_userconsole_ui.akamai_property.prop": dynamic subgraph encountered errors
2020/01/10 12:36:09 [TRACE] vertex "module.govcloud_userconsole_ui.akamai_property.prop": visit complete
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.output.property_id" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.output.property_version" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.output.property_production_version" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "output.govcloud-userconsole_ui-latest-version" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.output.property_edge_hostnames" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.output.property_staging_version" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "output.govcloud-userconsole_ui-endge_hostnames" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "output.govcloud-userconsole_ui-staging-version" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.akamai_property_activation.staging" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.akamai_property_activation.production" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "module.govcloud_userconsole_ui.provider.akamai (close)" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "output.govcloud-userconsole_ui-production-version" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "meta.count-boundary (EachMode fixup)" errored, so skipping
2020/01/10 12:36:09 [TRACE] dag/walk: upstream of "root" errored, so skipping
2020/01/10 12:36:09 [INFO] backend/local: plan operation completed
2020-01-10T12:36:09.482+0100 [DEBUG] plugin: plugin exited
Found issue this will be fixed in next release
Hey, happens to me too in v0.8.0
@mayaaravotwm We had a bug introduced around group datasource(duplicate group names making contract parameter mandatory ) that can create same RPC disconnection error Can you validate that your group resource does not crash the apply with a panic / rpc disconnection issue ?
hey @martinstibbe , since v0.5.0 we have unrelated changes shown as in [https://github.com/terraform-providers/terraform-provider-akamai/issues/89].
so i tried to upgrade to v0.8.0 in order to see if it was fixed and then I got - Error: rpc error: code = Unavailable desc = transport is closing
my data resources:
data "akamai_group" "group" {
name = "NAME"
}
data "akamai_contract" "contract" {
group = "NAME"
}
data "akamai_cp_code" "code" {
name = "NAME"
group = "${data.akamai_group.group.id}"
contract = "${data.akamai_contract.contract.id}"
}
data "akamai_property_rules" "rules" {
rules { # Default rule
behavior {
name = "origin"
option {
key = "cacheKeyHostname"
value = "ORIGIN_HOSTNAME"
}
option {
key = "originType"
value = "CUSTOMER"
}
option {
key = "hostname"
value = "1.2.3.4"
}
option {
key = "forwardHostHeader"
value = "REQUEST_HOST_HEADER"
}
option {
key = "compress"
value = true
}
option {
key = "enableTrueClientIp"
value = false
}
option {
key = "httpPort"
value = 80
}
option {
key = "httpsPort"
value = 443
}
option {
key = "verificationMode"
value = "CUSTOM"
}
option {
key = "originSni"
value = false
}
option {
key = "originCertsToHonor"
value = "STANDARD_CERTIFICATE_AUTHORITIES"
}
option {
key = "standardCertificateAuthorities"
values = ["akamai-permissive", "THIRD_PARTY_AMAZON"]
}
option {
key = "customValidCnValues"
values = ["{{Origin Hostname}}", "{{Forward Host Header}}"]
}
}
behavior {
name = "caching"
option {
key = "behavior"
value = "CACHE_CONTROL_AND_EXPIRES"
}
option {
key = "mustRevalidate"
value = true
}
option {
key = "defaultTtl"
value = "0h"
}
option {
key = "honorPrivateEnabled"
value = false
}
option {
key = "honorMustrevalidateEnabled"
value = false
}
}
behavior {
name = "allowPost"
option {
key = "enabled"
value = true
}
option {
key = "allowWithoutContentLength"
value = false
}
}
behavior {
name = "report"
option {
key = "logHost"
value = false
}
option {
key = "logReferer"
value = false
}
option {
key = "logUserAgent"
value = true
}
option {
key = "logAcceptLanguage"
value = false
}
option {
key = "logCookies"
value = "OFF"
}
option {
key = "logCustomLogField"
value = false
}
}
behavior {
name = "sureRoute"
option {
key = "enabled"
value = false
}
option {
key = "srDownloadLinkTitle"
value = ""
}
}
behavior {
name = "tieredDistribution"
option {
key = "enabled"
value = true
}
}
behavior {
name = "prefetch"
option {
key = "enabled"
value = true
}
}
behavior {
name = "realUserMonitoring"
option {
key = "enabled"
value = false
}
}
behavior {
name = "http2"
option {
key = "enabled"
value = ""
}
}
behavior {
name = "allowTransferEncoding"
option {
key = "enabled"
value = true
}
}
rule {
name = "Redirect to HTTPS"
behavior {
name = "redirect"
option {
key = "queryString"
value = "APPEND"
}
option {
key = "responseCode"
value = 301
}
option {
key = "destinationHostname"
value = "SAME_AS_REQUEST"
}
option {
key = "destinationPath"
value = "SAME_AS_REQUEST"
}
option {
key = "destinationProtocol"
value = "HTTPS"
}
option {
key = "mobileDefaultChoice"
value = "DEFAULT"
}
}
criteria {
name = "requestProtocol"
option {
key = "value"
value = "HTTP"
}
}
}
rule {
name = ADDRESS
criteria {
name = "hostname"
option {
key = "matchOperator"
value = "IS_ONE_OF"
}
option {
key = "values"
values = [ADDRESS]
}
}
behavior {
name = "origin"
option {
key = "cacheKeyHostname"
value = "ORIGIN_HOSTNAME"
}
option {
key = "compress"
value = true
}
option {
key = "customValidCnValues"
values = ["{{Origin Hostname}}", "{{Forward Host Header}}"]
}
option {
key = "enableTrueClientIp"
value = true
}
option {
key = "forwardHostHeader"
value = "ORIGIN_HOSTNAME"
}
option {
key = "hostname"
value = "${aws_cloudfront_distribution.s3_distribution.domain_name}"
}
option {
key = "httpPort"
value = 80
}
option {
key = "httpsPort"
value = 443
}
option {
key = "originCertificate"
value = ""
}
option {
key = "originCertsToHonor"
value = "STANDARD_CERTIFICATE_AUTHORITIES"
}
option {
key = "originSni"
value = false
}
option {
key = "originType"
value = "CUSTOMER"
}
option {
key = "ports"
value = ""
}
option {
key = "standardCertificateAuthorities"
values = ["akamai-permissive", "THIRD_PARTY_AMAZON"]
}
option {
key = "trueClientIpClientSetting"
value = false
}
option {
key = "trueClientIpHeader"
value = "True-Client-IP"
}
option {
key = "verificationMode"
value = "CUSTOM"
}
}
}
rule {
name = "Content Compression"
criteria {
name = "contentType"
option {
key = "matchCaseSensitive"
value = false
}
option {
key = "matchOperator"
value = "IS_ONE_OF"
}
option {
key = "matchWildcard"
value = true
}
option {
key = "values"
values = ["text/*", "application/javascript", "application/x-javascript", "application/x-javascript*", "application/json", "application/x-json", "application/*+json", "application/*+xml", "application/text", "application/vnd.microsoft.icon", "application/vnd-ms-fontobject", "application/x-font-ttf", "application/x-font-opentype", "application/x-font-truetype", "application/xmlfont/eot", "application/xml", "font/opentype", "font/otf", "font/eot", "image/svg+xml", "image/vnd.microsoft.icon"]
}
}
behavior {
name = "gzipResponse"
option {
key = "behavior"
value = "ALWAYS"
}
}
}
rule {
name = "Static Content"
criteria {
name = "fileExtension"
option {
key = "matchCaseSensitive"
value = false
}
option {
key = "matchOperator"
value = "IS_ONE_OF"
}
option {
key = "values"
values = ["aif", "aiff", "au", "avi", "bin", "bmp", "cab", "carb", "cct", "cdf", "class", "css", "doc", "dcr", "dtd", "exe", "flv", "gcf", "gff", "gif", "grv", "hdml", "hqx", "ico", "ini", "jpeg", "jpg", "js", "mov", "mp3", "nc", "pct", "pdf", "png", "ppc", "pws", "swa", "swf", "txt", "vbs", "w32", "wav", "wbmp", "wml", "wmlc", "wmls", "wmlsc", "xsd", "zip", "pict", "tif", "tiff", "mid", "midi", "ttf", "eot", "woff", "woff2", "otf", "svg", "svgz", "webp", "jxr", "jar", "jp2"]
}
}
behavior {
name = "caching"
option {
key = "behavior"
value = "CACHE_CONTROL_AND_EXPIRES"
}
option {
key = "mustRevalidate"
value = false
}
option {
key = "defaultTtl"
value = "1h"
}
option {
key = "honorPrivateEnabled"
value = false
}
option {
key = "honorMustrevalidateEnabled"
value = false
}
}
behavior {
name = "prefetch"
option {
key = "enabled"
value = false
}
}
behavior {
name = "prefetchable"
option {
key = "enabled"
value = true
}
}
}
rule {
name = "Dynamic Content"
criteria {
name = "cacheability"
option {
key = "matchOperator"
value = "IS_NOT"
}
option {
key = "value"
value = "CACHEABLE"
}
}
behavior {
name = "downstreamCache"
option {
key = "behavior"
value = "TUNNEL_ORIGIN"
}
}
}
rule {
name = "Security Headers"
behavior {
name = "modifyOutgoingResponseHeader"
option {
key = "action"
value = "MODIFY"
}
option {
key = "standardModifyHeaderName"
value = "OTHER"
}
option {
key = "newHeaderValue"
value = "max-age=31536000;preload"
}
option {
key = "avoidDuplicateHeaders"
value = true
}
option {
key = "customHeaderName"
value = "Strict-Transport-Security"
}
}
behavior {
name = "modifyOutgoingResponseHeader"
option {
key = "action"
value = "MODIFY"
}
option {
key = "standardModifyHeaderName"
value = "OTHER"
}
option {
key = "newHeaderValue"
value = "nosniff"
}
option {
key = "avoidDuplicateHeaders"
value = true
}
option {
key = "customHeaderName"
value = "X-Content-Type-Options"
}
}
behavior {
name = "modifyOutgoingResponseHeader"
option {
key = "action"
value = "MODIFY"
}
option {
key = "standardModifyHeaderName"
value = "OTHER"
}
option {
key = "newHeaderValue"
value = "no-referrer-when-downgrade"
}
option {
key = "avoidDuplicateHeaders"
value = true
}
option {
key = "customHeaderName"
value = "Referrer-Policy"
}
}
behavior {
name = "modifyOutgoingResponseHeader"
option {
key = "action"
value = "MODIFY"
}
option {
key = "standardModifyHeaderName"
value = "OTHER"
}
option {
key = "newHeaderValue"
value = "1; mode=block"
}
option {
key = "avoidDuplicateHeaders"
value = true
}
option {
key = "customHeaderName"
value = "X-XSS-Protection"
}
}
behavior {
name = "modifyOutgoingResponseHeader"
option {
key = "action"
value = "MODIFY"
}
option {
key = "standardModifyHeaderName"
value = "OTHER"
}
option {
key = "newHeaderValue"
value = "SAMEORIGIN"
}
option {
key = "avoidDuplicateHeaders"
value = true
}
option {
key = "customHeaderName"
value = "X-FRAME-OPTIONS"
}
}
}
}
}
my terraform output:
# akamai_property.mobile will be updated in-place
~ resource "akamai_property" "mobile" {
account = "ACCOUNT"
contact = [
"EMAIL",
]
contract = "CTR"
cp_code = "CP"
edge_hostnames = {
"ADDRESS" = "EDGE_HOSTNAME"
}
group = "GRP"
hostnames = {
"ADDRESS" = "EDGE_HOSTNAME"
}
id = "ID"
is_secure = true
name = "NAME"
product = "PRD"
production_version = 38
rule_format = "v2018-02-27"
~ rules = jsonencode(
~ {
~ accountId = "ACCOUNT_ID" -> ""
~ contractId = "CONTRACT_ID" -> ""
etag = ""
~ groupId = "GRP" -> ""
~ propertyId = "PROPERTY_ID" -> ""
~ propertyVersion = 38 -> 0
~ ruleFormat = "v2018-02-27" -> ""
~ rules = {
~ behaviors = [
{
name = "sureRoute"
options = {
enabled = false
srDownloadLinkTitle = ""
}
},
{
name = "caching"
options = {
behavior = "CACHE_CONTROL_AND_EXPIRES"
defaultTtl = "0h"
honorMustrevalidateEnabled = false
honorPrivateEnabled = false
mustRevalidate = true
}
},
{
name = "report"
options = {
logAcceptLanguage = false
logCookies = "OFF"
logCustomLogField = false
logHost = false
logReferer = false
logUserAgent = true
}
},
{
name = "origin"
options = {
cacheKeyHostname = "ORIGIN_HOSTNAME"
compress = true
customValidCnValues = [
"{{Origin Hostname}}",
"{{Forward Host Header}}",
]
enableTrueClientIp = false
forwardHostHeader = "REQUEST_HOST_HEADER"
hostname = "1.2.3.4"
httpPort = 80
httpsPort = 443
originCertsToHonor = "STANDARD_CERTIFICATE_AUTHORITIES"
originSni = false
originType = "CUSTOMER"
standardCertificateAuthorities = [
"akamai-permissive",
"THIRD_PARTY_AMAZON",
]
verificationMode = "CUSTOM"
}
},
{
name = "realUserMonitoring"
options = {
enabled = false
}
},
{
name = "allowPost"
options = {
allowWithoutContentLength = false
enabled = true
}
},
{
name = "allowTransferEncoding"
options = {
enabled = true
}
},
{
name = "prefetch"
options = {
enabled = true
}
},
{
name = "tieredDistribution"
options = {
enabled = true
}
},
{
name = "http2"
options = {
enabled = ""
}
},
- {
- name = "cpCode"
- options = {
- value = {
- id = 557659
}
}
},
]
~ children = [
~ {
behaviors = [
{
name = "downstreamCache"
options = {
behavior = "TUNNEL_ORIGIN"
}
},
]
criteria = [
{
name = "cacheability"
options = {
matchOperator = "IS_NOT"
value = "CACHEABLE"
}
},
]
- criteriaMustSatisfy = "all" -> null
name = "Dynamic Content"
options = {}
},
~ {
behaviors = [
{
name = "redirect"
options = {
destinationHostname = "SAME_AS_REQUEST"
destinationPath = "SAME_AS_REQUEST"
destinationProtocol = "HTTPS"
mobileDefaultChoice = "DEFAULT"
queryString = "APPEND"
responseCode = 301
}
},
]
criteria = [
{
name = "requestProtocol"
options = {
value = "HTTP"
}
},
]
- criteriaMustSatisfy = "all" -> null
name = "Redirect to HTTPS"
options = {}
},
~ {
behaviors = [
{
name = "gzipResponse"
options = {
behavior = "ALWAYS"
}
},
]
criteria = [
{
name = "contentType"
options = {
matchCaseSensitive = false
matchOperator = "IS_ONE_OF"
matchWildcard = true
values = [
"application/vnd.microsoft.icon",
"application/x-font-opentype",
"application/*+xml",
"application/x-font-ttf",
"font/otf",
"font/eot",
"application/*+json",
"image/svg+xml",
"application/xmlfont/eot",
"application/json",
"application/text",
"font/opentype",
"image/vnd.microsoft.icon",
"application/vnd-ms-fontobject",
"application/xml",
"application/x-javascript",
"application/javascript",
"application/x-javascript*",
"application/x-json",
"text/*",
"application/x-font-truetype",
]
}
},
]
- criteriaMustSatisfy = "all" -> null
name = "Content Compression"
options = {}
},
~ {
behaviors = [
{
name = "origin"
options = {
cacheKeyHostname = "ORIGIN_HOSTNAME"
compress = true
customValidCnValues = [
"{{Origin Hostname}}",
"{{Forward Host Header}}",
]
enableTrueClientIp = true
forwardHostHeader = "ORIGIN_HOSTNAME"
hostname = "HOSTNAME"
httpPort = 80
httpsPort = 443
originCertificate = ""
originCertsToHonor = "STANDARD_CERTIFICATE_AUTHORITIES"
originSni = false
originType = "CUSTOMER"
ports = ""
standardCertificateAuthorities = [
"akamai-permissive",
"THIRD_PARTY_AMAZON",
]
trueClientIpClientSetting = false
trueClientIpHeader = "True-Client-IP"
verificationMode = "CUSTOM"
}
},
]
criteria = [
{
name = "hostname"
options = {
matchOperator = "IS_ONE_OF"
values = [
"ADDRESS",
]
}
},
]
- criteriaMustSatisfy = "all" -> null
name = "ADDRESS"
options = {}
},
~ {
behaviors = [
{
name = "caching"
options = {
behavior = "CACHE_CONTROL_AND_EXPIRES"
defaultTtl = "1h"
honorMustrevalidateEnabled = false
honorPrivateEnabled = false
mustRevalidate = false
}
},
{
name = "prefetchable"
options = {
enabled = true
}
},
{
name = "prefetch"
options = {
enabled = false
}
},
]
criteria = [
{
name = "fileExtension"
options = {
matchCaseSensitive = false
matchOperator = "IS_ONE_OF"
values = [
"gif",
"tiff",
"nc",
"tif",
"gff",
"gcf",
"webp",
"au",
"wav",
"mov",
"txt",
"aif",
"xsd",
"bmp",
"dcr",
"dtd",
"jp2",
"ico",
"jxr",
"pdf",
"swf",
"jar",
"vbs",
"svg",
"otf",
"png",
"eot",
"js",
"cab",
"jpeg",
"midi",
"w32",
"pws",
"wmls",
"woff2",
"flv",
"cct",
"jpg",
"bin",
"wbmp",
"swa",
"cdf",
"pict",
"ttf",
"hqx",
"exe",
"ppc",
"hdml",
"aiff",
"css",
"wml",
"grv",
"avi",
"mp3",
"wmlc",
"pct",
"zip",
"wmlsc",
"svgz",
"mid",
"ini",
"woff",
"class",
"doc",
"carb",
]
}
},
]
- criteriaMustSatisfy = "all" -> null
name = "Static Content"
options = {}
},
~ {
behaviors = [
{
name = "modifyOutgoingResponseHeader"
options = {
action = "MODIFY"
avoidDuplicateHeaders = true
customHeaderName = "Strict-Transport-Security"
newHeaderValue = "max-age=31536000;preload"
standardModifyHeaderName = "OTHER"
}
},
{
name = "modifyOutgoingResponseHeader"
options = {
action = "MODIFY"
avoidDuplicateHeaders = true
customHeaderName = "X-XSS-Protection"
newHeaderValue = "1; mode=block"
standardModifyHeaderName = "OTHER"
}
},
{
name = "modifyOutgoingResponseHeader"
options = {
action = "MODIFY"
avoidDuplicateHeaders = true
customHeaderName = "X-FRAME-OPTIONS"
newHeaderValue = "SAMEORIGIN"
standardModifyHeaderName = "OTHER"
}
},
{
name = "modifyOutgoingResponseHeader"
options = {
action = "MODIFY"
avoidDuplicateHeaders = true
customHeaderName = "X-Content-Type-Options"
newHeaderValue = "nosniff"
standardModifyHeaderName = "OTHER"
}
},
{
name = "modifyOutgoingResponseHeader"
options = {
action = "MODIFY"
avoidDuplicateHeaders = true
customHeaderName = "Referrer-Policy"
newHeaderValue = "no-referrer-when-downgrade"
standardModifyHeaderName = "OTHER"
}
},
]
- criteriaMustSatisfy = "all" -> null
name = "Security Headers"
options = {}
},
]
name = "default"
~ options = {
- is_secure = true -> null
}
}
}
)
rulessha = "SHA"
staging_version = 38
~ version = 38 -> (known after apply)
}
Hello, After release v1.0.5, my terraform fails with the error:
when I got it back to v1.0.4 it worked again.
carsh.log: https://gist.github.com/mayaaravotwm/731e62c965cb69f19083c26d41aa0513
Expected Behavior work as v0.1.4
Actual Behavior terraform crash