微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“本地”Step Functions 状态机在主机上调用 moto_server 时出现 404 错误

如何解决“本地”Step Functions 状态机在主机上调用 moto_server 时出现 404 错误

在“本地”模式下使用 AWS Step Functions 状态机 (SFSM),即在笔记本电脑上的 Docker 内运行

尝试在我的笔记本电脑主机上运行指向模拟服务的任务

我可以在 Docker 上正确安装 SFSM,更新它,运行它

aws stepfunctions --endpoint http://localhost:8083 create-state-machine \
    --deFinition file://src/my_sfn.json \
    --role-arn 'arn:aws:iam::ACCTNUM:role/DummyRole' \
    --name my_sfn

我可以从 docker 运行 curl http://host.docker.internal:5000 并连接到 moto_server

我在 SFSM 容器上安装了 aws cli,并运行了 aws sns --endpoint http://host.docker.internal:5000 list-topics显示了正确的主题

我在我的 docker env 文件中设置了 SNS_ENDPOINT url 以指向主机

但如果运行 SFSM,我总是收到 404 Not Found 错误

2021-03-04 18:59:24.472: arn:aws:states:us-east-1:ACCTNUM:execution:my_sfn:7151fcf4-7e6f-4b16-9b64-2ac913e27e4c : {"Type":"TaskSubmitFailed","PrevIoUsEventId":4,"TaskSubmitFailedEventDetails":{"ResourceType":"sns","Resource":"publish","Error":"SNS.AmazonSNSException","Cause":"null (Service: AmazonSNS; Status Code: 404; Error Code: 404 NOT FOUND; Request ID: null; Proxy: null)"}}
2021-03-04 18:59:24.473: arn:aws:states:us-east-1:ACCTNUM:execution:my_sfn:7151fcf4-7e6f-4b16-9b64-2ac913e27e4c : {"Type":"ExecutionFailed","PrevIoUsEventId":5,"ExecutionFailedEventDetails":{"Error":"SNS.AmazonSNSException","Cause":"null (Service: AmazonSNS; Status Code: 404; Error Code: 404 NOT FOUND; Request ID: null; Proxy: null)"}}

my_sfn.json:

{
    "StartAt": "step1","States": {
        "step1": {
            "Type": "Task","Resource": "arn:aws:states:::sns:publish","Parameters":{
                "Message":{"Input":"howdy"},"TopicArn":"arn:aws:sns:us-west-2:ACCTNUM:foo"
            },"End": true
        }
    }
}

docker-env.txt:

SNS_ENDPOINT=http://host.docker.internal:5000

知道如何修复吗?

解决方法

看起来我必须向环境文件添加更多信息:

AWS_ACCOUNT_ID=123456789012
AWS_ACCESS_KEY_ID=AAAAAAAAAAAAAAAA
AWS_SECRET_ACCESS_KEY=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AWS_DEFAULT_REGION=us-west-2

始终使用相同的帐户 ID 和区域,并且有效

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。