Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 ExAws不参与生产发布(Phoenix/Arc/ExAws)_Amazon S3_Elixir_Phoenix Framework - Fatal编程技术网

Amazon s3 ExAws不参与生产发布(Phoenix/Arc/ExAws)

Amazon s3 ExAws不参与生产发布(Phoenix/Arc/ExAws),amazon-s3,elixir,phoenix-framework,Amazon S3,Elixir,Phoenix Framework,我一直在尝试为阿凡达创建一个上传程序,但我一直面临一些问题,代码在dev上运行得非常好,但在生产版本中,我遇到了以下错误: =SUPERVISOR REPORT==== 8-Jul-2016::22:35:41 === Supervisor: {local,'Elixir.ExAws.Supervisor'} Context: child_terminated Reason: {#{'__exception__' => true,

我一直在尝试为阿凡达创建一个上传程序,但我一直面临一些问题,代码在dev上运行得非常好,但在生产版本中,我遇到了以下错误:

=SUPERVISOR REPORT==== 8-Jul-2016::22:35:41 ===
     Supervisor: {local,'Elixir.ExAws.Supervisor'}
     Context:    child_terminated
     Reason:     {#{'__exception__' => true,
                    '__struct__' => 'Elixir.Poison.SyntaxError',
                    message => <<"Unexpected token: <">>,
                    token => <<"<">>},
                  [{'Elixir.Poison.Parser','parse!',2,
                       [{file,"lib/poison/parser.ex"},{line,56}]},
                   {'Elixir.Poison','decode!',2,
                       [{file,"lib/poison.ex"},{line,83}]},
                   {'Elixir.ExAws.InstanceMeta',security_credentials,1,
                       [{file,"lib/ex_aws/instance_meta.ex"},{line,16}]},
                   {'Elixir.ExAws.Config.AuthCache',refresh_config,2,
                       [{file,"lib/ex_aws/config/auth_cache.ex"},{line,37}]},
                   {'Elixir.ExAws.Config.AuthCache',handle_call,3,
                       [{file,"lib/ex_aws/config/auth_cache.ex"},{line,27}]},
                   {gen_server,try_handle_call,4,
                       [{file,"gen_server.erl"},{line,615}]},
                   {gen_server,handle_msg,5,
                       [{file,"gen_server.erl"},{line,647}]},
                   {proc_lib,init_p_do_apply,3,
                       [{file,"proc_lib.erl"},{line,247}]}]}
     Offender:   [{pid,<0.2009.0>},
                  {id,'Elixir.ExAws.Config.AuthCache'},
                  {mfargs,
                      {'Elixir.ExAws.Config.AuthCache',start_link,
                          [[{name,'Elixir.ExAws.Config.AuthCache'}]]}},
                  {restart_type,permanent},
                  {shutdown,5000},
                  {child_type,worker}]

22:35:41.624 [error] Ranch protocol #PID<0.2011.0> (:cowboy_protocol) of listener MyApp.Endpoint.HTTP terminated
** (exit) exited in: GenServer.call(ExAws.Config.AuthCache, {:refresh_config, %ExAws.S3{config: %{access_key_id: [{:system, "AWS_ACCESS_KEY_ID"}, :instance_role], host: %{"ap-northeast-1" => 
"s3-ap-northeast-1.amazonaws.com", "ap-southeast-1" => "s3-ap-southeast-1.amazonaws.com", "ap-southeast-2" => "s3-ap-southeast-2.amazonaws.com", "eu-central-1" => "s3-eu-central-1.amazonaws.c
om", "eu-west-1" => "s3-eu-west-1.amazonaws.com", "sa-east-1" => "s3-sa-east-1.amazonaws.com", "us-east-1" => "s3.amazonaws.com", "us-west-1" => "s3-us-west-1.amazonaws.com", "us-west-2" => "
s3-us-west-2.amazonaws.com"}, http_client: ExAws.Request.HTTPoison, json_codec: Poison, region: "us-east-1", scheme: "https://", secret_access_key: [{:system, "AWS_SECRET_ACCESS_KEY"}, :insta
nce_role]}, service: :s3}}, 5000)
    ** (EXIT) an exception was raised:
        ** (Poison.SyntaxError) Unexpected token: <
            (poison) lib/poison/parser.ex:56: Poison.Parser.parse!/2
            (poison) lib/poison.ex:83: Poison.decode!/2
            (ex_aws) lib/ex_aws/instance_meta.ex:16: ExAws.InstanceMeta.security_credentials/1
            (ex_aws) lib/ex_aws/config/auth_cache.ex:37: ExAws.Config.AuthCache.refresh_config/2
            (ex_aws) lib/ex_aws/config/auth_cache.ex:27: ExAws.Config.AuthCache.handle_call/3
            (stdlib) gen_server.erl:615: :gen_server.try_handle_call/4
            (stdlib) gen_server.erl:647: :gen_server.handle_msg/5
            (stdlib) proc_lib.erl:247: :proc_lib.init_p_do_apply/3
=主管报告===2016年7月8日::22:35:41===
主管:{local,'Elixir.ExAws.Supervisor'}
上下文:child_终止
原因:{{}{“例外情况”=>正确,
“\uuuu结构”=>“长生不老药.毒药.合成错误”,
消息=>,,
令牌=>},
[{'Elixir.Poison.Parser','parse!',2,
[{file,“lib/poison/parser.ex”},{line,56}]},
{'Elixir.Poison','decode!',2,
[{file,“lib/poison.ex”},{line,83}]},
{'Elixir.ExAws.InstanceMeta',安全性凭据,1,
[{file,“lib/ex_aws/instance_meta.ex”},{line,16}]},
{'Elixir.ExAws.Config.AuthCache',刷新配置,2,
[{file,“lib/ex_aws/config/auth_cache.ex”},{line,37}]},
{'Elixir.ExAws.Config.AuthCache',句柄调用,3,
[{file,“lib/ex_aws/config/auth_cache.ex”},{line,27}]},
{gen_服务器,尝试处理呼叫,4,
[{file,“gen_server.erl”},{line,615}]},
{gen_server,handle_msg,5,
[{file,“gen_server.erl”},{line,647}]},
{proc_lib,init_p_do_apply,3,
[{file,“proc_lib.erl”},{line,247}]}
罪犯:[{pid,},
{id,'Elixir.ExAws.Config.AuthCache'},
{mfargs,
{'Elixir.ExAws.Config.AuthCache',启动链接,
[{name,'Elixir.ExAws.Config.AuthCache'}]},
{restart_type,permanent},
{关闭,5000},
{child_type,worker}]
22:35:41.624[错误]侦听器MyApp.Endpoint.HTTP的Ranch协议#PID(:cowboy_协议)已终止
**(退出)退出于:GenServer.call(ExAws.Config.AuthCache,{:刷新配置,%ExAws.S3{Config:%%{access_key_id:[{:系统,“AWS_access_key_id”},:实例_角色],主机:%%{“ap-northeast-1”=>
“s3-ap-northeast-1.amazonaws.com”、“ap-Southwest-1”=>“s3-ap-Southwest-1.amazonaws.com”、“ap-Southwest-2”=>“s3-ap-Southwest-2.amazonaws.com”、“eu-central-1”=>“s3-eu-central-1.amazonaws.c
om、“eu-west-1”=>“s3-eu-west-1.amazonaws.com”、“sa-east-1”=>“s3-sa-east-1.amazonaws.com”、“us-east-1”=>“s3.amazonaws.com”、“us-west-1”=>“s3-us-west-1.amazonaws.com”、“us-west-2”=>”
s3-us-west-2.amazonaws.com“},http_客户端:ExAws.Request.HTTPoison,json_编解码器:毒药,地区:“us-east-1”,方案:“https://”,秘密访问密钥:[{:系统,“AWS_秘密访问密钥”},安装
nce_角色]},服务::s3},5000)
**(退出)引发了一个异常:
**(Poison.SyntaxError)意外标记:<
(poison)lib/poison/parser.ex:56:poison.parser.parse/2.
(毒药)lib/毒药。例:83:毒药。解码/2.
(ex_aws)lib/ex_aws/instance_meta.ex:16:ExAws.InstanceMeta.security_credentials/1
(ex_aws)lib/ex_aws/config/auth_cache.ex:37:ExAws.config.AuthCache.refresh_config/2
(ex_aws)lib/ex_aws/config/auth_cache.ex:27:ExAws.config.AuthCache.handle_call/3
(stdlib)gen_server.erl:615::gen_server.try_handle_call/4
(stdlib)gen_server.erl:647::gen_server.handle_msg/5
(stdlib)proc_lib.erl:247::proc_lib.init_p_do_apply/3

谢谢。

您的堆栈跟踪显示ExAws使用的dep Poison无法解码json。如果您检查发出该调用的模块(
lib/ex\u aws/instance\u meta.ex
,您可以阅读),您会发现它与Amazon通信以检查您的凭据

最可能的情况是您的配置不正确,Amazon向您发送了一条格式为XML或HTML的错误消息(两者都以
开头)