【问题标题】:Asterisk AGI AWS "ProfileNotFound: The config profile (foo) could not be found"Asterisk AGI AWS“ProfileNotFound:找不到配置文件(foo)”
【发布时间】:2020-02-24 19:07:09
【问题描述】:

为了给您提供一些背景知识,我通过 Python AGI 从 Asterisk 启动了一个 bash 脚本,该脚本针对 Amazon Polly 运行并生成一个 .sln 文件。我在 CentOS 服务器上工作,但正在尝试将其迁移到 Debian 服务器。

这是给我带来问题的代码行

aws polly synthesize-speech --output-format pcm --debug --region us-east-2 --profile asterisk --voice-id $voice --text "$1" --sample-rate 8000 $filename.sln >/dev/null

我不断收到此错误

ProfileNotFound: The config profile (foo) could not be found

这是我的 /root/.aws/config 的示例

[default]
region = us-east-2
output = json

[profile asterisk]
region = us-east-2
output = json

[asterisk]
region = us-east-2
output = json

/root/.aws/credentials 看起来很相似,但其中包含密钥。 我什至尝试将所有这些数据存储在环境变量中并使用默认值以解决这个问题,但是我遇到了一个问题,即它抛出无法找到凭据,或者必须定义区域(通过定义内联区域来解决这个问题)。几乎就像,Asterisk 以某种方式从一些我无法获取凭据或配置/凭据文件的隔离会话中运行它。根据研究以及我的设置方式,它目前以 Root 身份运行,因此这应该不是问题。

非常感谢任何帮助,谢谢!

【问题讨论】:

    标签: python boto3 asterisk agi amazon-polly


    【解决方案1】:

    为了安全起见,Asterisk 应该在 asterisk 用户下运行。

    在您之前的安装中,它可能是在根目录下,所以一切正常。

    请确保您已为星号用户设置 AWS Polly 或创建 sudo 条目并使用 sudo。

    如果你使用系统命令,它也没有 shell(bash),所以你必须通过 bash 脚本启动它并自己设置 PATH 和其他必需的变量。

    【讨论】:

    • 先生,您的最后一句话我认为是编辑最终解决了我的问题。我想我没有意识到 bash 脚本在他们自己的没有环境变量的子实例中运行。我直接在脚本中导出了我需要的变量并且它有效。这不是设置的理想解决方案,但现在我更详细地知道发生了什么,我想我应该能够清理它。
    • 无论如何,使用系统调用并不理想。理想的是创建 fastAGI 或 HTTP 服务并使用 python 脚本或其他 api 生成您需要的文件。并管理本地缓存(将至少削减两次成本)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多