为什么会出现此错误?未知端点:无法访问的主机:`devicefarm.us-east-1.amazonaws.com'

时间:2018-08-03 13:46:12

标签: amazon-web-services aws-device-farm

我正在尝试在AWS Device Farm中列出项目。

这是我的代码:

const AWS = require('aws-sdk');
AWS.config.update({ region:'us-east-1' });
var credentials = new AWS.SharedIniFileCredentials({ profile: '***' });
AWS.config.credentials = credentials;

var devicefarm = new AWS.DeviceFarm();

async function run() {
    let projects = await devicefarm.listProjects().promise();
    console.log(projects);
}

run();

我收到此错误:

UnknownEndpoint: Inaccessible host: `devicefarm.us-east-1.amazonaws.com'.
This service may not be available in the `us-east-1' region.

6 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,并意识到上载失败是因为我的互联网连接太慢而无法解析存储段URL的DNS。但是,缓慢的连接并不是此错误的唯一原因-网络/服务器/服务/区域/数据中心中断也可能是根本原因。

AWS提供了一个仪表板来获取所提供服务的运行状况报告,并且在this link上也可以使用。还提供用于访问服务运行状况的API。

答案 1 :(得分:1)

根据http://docs.amazonaws.cn/en_us/general/latest/gr/rande.html,设备场仅在us-west-2中可用吗?

AWS.config.update({ region:'us-east-1' });更改为AWS.config.update({ region:'us-west-2' });是可行的:

工作代码:

const AWS = require('aws-sdk');
AWS.config.update({ region:'us-west-2' });
var credentials = new AWS.SharedIniFileCredentials({ profile: '***' });
AWS.config.credentials = credentials;

var devicefarm = new AWS.DeviceFarm();

async function run() {
    let projects = await devicefarm.listProjects().promise();
    console.log(projects);
}

run();

答案 2 :(得分:1)

我遇到了同样的错误,我已通过以下方式解决

错误:

区域:我选择的“Asia Pacific (Mumbai) ap-south-1

解决方案:

在 region 而不是写整个名字,你应该只提到地区代码

地区:ap-south-1

答案 3 :(得分:1)

我遇到了同样的问题并检查了所有 github 问题以及 SO 答案,没有太大帮助。

如果您也像我一样处于 corporate 环境中并且本地出现此错误,则很有可能是因为您没有设置代理在 SDK 中。

import HttpsProxyAgent from 'https-proxy-agent';
import AWS from 'aws-sdk';

  const s3 = new AWS.S3({
    apiVersion: '2006-03-01',
    signatureVersion: 'v4',
    credentials,
    httpOptions: { agent: new HttpsProxyAgent(process.env.https_proxy) },
  });

通常代码可能在您的 ec2/lambda 中工作,因为它们有 vpc 端点,但在本地您可能需要代理才能访问存储桶 URL:YourBucketName.s3.amazonaws.com

答案 4 :(得分:1)

对于仍然存在此问题的任何人,我设法通过将传入 endpointAWS.config.update() 参数从 ARN 字符串示例 arn:aws:dynamodb:ap-southeast-<generated from AWS>:table/<tableName> 更改为 URL 示例 {{ 1}},但在我的情况下将 https://dynamodb.aws-region.amazonaws.com 替换为您所在的地区 aws-region

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.Summary.html

答案 5 :(得分:0)

我也有同样的问题。我只是在 .env 文件中更改原点。

以前的值:-

“亚太地区(孟买)ap-south-1”

修正值:-

“ap-south-1”