我正在使用AWS的JAVA SDK来创建Polly客户端.像这样:
BasicAWSCredentials awsCreds = new BasicAWSCredentials("<IAM access Key>", "IAM secret key>");
AmazonPollyClient apClient = (AmazonPollyClient) AmazonPollyClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.build();
SynthesizeSpeechRequest tssRequest = new SynthesizeSpeechRequest();
tssRequest.setText(<text>);
tssRequest.setVoiceId(<voiceid>);
tssRequest.setOutputFormat(OutputFormat.Mp3);
SynthesizeSpeechResult tssResult = apClient.synthesizeSpeech(tssRequest);
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,我收到以下错误消息:
线程"main"中的异常com.amazonaws.SdkClientException:无法从com.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:56)链中的任何提供者加载com.amazonaws.client.builder.AwsClientBuilder的区域信息.setRegion(AwsClientBuilder.java:319)com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:295)at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:38)at com. eoffice.aws.speech.Polly.main(Polly.java:42)
我使用IAM策略模拟器检查了凭据.这工作正常,权限还可以.
在ClientBuilder中设置Region的方法对于AmazonPollyClientBuilder是不可见的,因此我没有(Java SDK)方式来指定区域.
更新: 当我问defaultAwsREgionProviderChain时,我收到相同的错误消息
DefaultAwsRegionProviderChain defaultAwsRegionProviderChain = new DefaultAwsRegionProviderChain();
System.out.println(defaultAwsRegionProviderChain.getRegion());
Run Code Online (Sandbox Code Playgroud)
更新2: 当我在de .aws文件夹中创建一个包含以下内容的配置文件时:
[默认] region = eu-west-1
它有效,但我需要一种方法来设置它而不依赖于文件系统.
我在使用 IBM Cloud Functions 时遇到了奇怪的行为。我有一个启用了网络的操作 (WebAction),我不需要对其进行身份验证。我使用 Postman(和浏览器)来测试这个新的 REST 端点。(下图左侧)结果是空的,实际的204 No Content 响应。
但是当我监视 Action 时,我可以看到它已被调用并返回了预期的 JSON(下图右侧)。所以代码被正确执行。
当我执行命令行调用时:
bx wsk action invoke --result talkToEoffice --param name FunctionWorld
Run Code Online (Sandbox Code Playgroud)
我确实看到了预期的结果。我应该提供额外的标题吗?
这是否与同步(阻塞)或非阻塞有关?