对于我的新项目,我必须使用Micro服务和Api网关.所以我收集了有关Micro Service的详细信息,但Api Gateway部分并不清楚.
我的问题是,
我正在使用C#.Net来开发Api.
我从https://www.nginx.com/blog/building-microservices-using-an-api-gateway/获得了一些关于Api Gateway的信息
有没有人设法让NServiceBus网关组件工作?v3.0中的样本不像其他样本那样开箱即用.
分步指南或代码示例将有助于使此组件正常工作.
谢谢
我已经创建了几个RESTful微服务并对它们进行了对接.现在我想为他们建立一个基于Web的UI,并且能够创建用户并授予他们使用某些API的权限.
我知道我需要某种API网关.我的第一个想法是,我总是可以做那种暴力的方式:创建一些django应用程序,它将提供UI并代理所有API手动请求,但这似乎非常沉闷.也许有一些替代品?我已准备好了Tyk,但无法找到有关添加用户和授予权限的任何信息.
我可能可以创建一个可以作为API网关的应用程序,并通过编写一些可以对其进行建模的代码来自动代理请求.因此,例如,我基本上需要外部URL与实际api url和一些授权逻辑之间的映射.也许有类似的东西?
我想知道我的两种方法中哪一种更合适,或者还有另一种方法吗?
UI发送HTTP请求到GATEWAYGATEWAY发送HTTP请求到?SERVICE A?SERVICE A返回SUCCESS或ERROREVENT STORE并发布到QUEUEPROJECTION DATABASE 已更新?SERVICES可能消费事件UI发送HTTP请求到GATEWAYGATEWAY 发布事件到 QUEUE?SERVICE A 消费事件EVENT STORE并发布到QUEUEPROJECTION DATABASE 已更新?SERVICES可能消费事件GATEWAY消费事件并将响应(SUCCESS或ERROR)发送到UI如果我误解了一些概念,我真的很抱歉,我对这种建筑风格比较陌生。
在此先感谢您的帮助!:)
根据文档https://learn.microsoft.com/en-us/azure/application-gateway/how-application-gateway-works#modifications-to-the-request Azure应用程序网关添加到请求4标头:x-forwarded -for、x-forwarded-proto、x-forwarded-port 和 x-original-host。但它不适用于我们的应用程序。x-forwarded-for 不存在,所有其他标头均显示。我们正在使用标准层(不是标准 v2)的应用程序网关。是标准层的限制吗?
有人可以告诉我在美国最好的短信网关.我希望我的应用程序使用HTTP发送短信.所以我想要最好又便宜的网关,可以提供api发送短信.我的应用程序是用VB.NET编写的.
我的问题是,是否有任何开源(理想情况下)或要购买的软件/工具/库,我可以使用它来发送和接收USSD消息?我希望该工具/库/软件从我的服务器连接到USSD网关,然后为我发送和接收消息.我只想专注于编写应用程序的业务逻辑而不是其他任何东西.它就像我正在寻找像Kannel(用于SMS)的软件/工具/库.
如果没有这样的工具/库/软件那么在客户端需要做什么才能在与多个USSD网关通信的同时有效地处理大量流量?
我希望我的问题很明确!
期待你的回答
我正在使用AWS API Gateway(APIG)和Lambda函数构建无服务器的Web站点.我必须使用代理集成,因为后面的Lambda函数必须接收http请求标头.同时,需要提供一些二进制数据.就我而言,favicon.ico文件.其他人可能想要提供动态创建的PDF或Excel文件.APIG为此目的提供二元支持.使用base64对数据进行编码并配置该MIME内容类型,以便在将其提供给客户端之前对其进行解码.但是,这不适用于代理集成.代理集成只是跳过集成响应部分.
我尝试将favicon.ico的请求重定向到S3端点,但浏览器显示奇怪的行为.因为ico文件来自不同的重定向域,而不是同一个域.
使用base64对其进行编码并让客户端浏览器对其进行解码不是一种选择,因为这不是标准的,并且可能无法在所有浏览器中使用.
我认为在AWS为此添加新功能之前我无法做任何其他事情.有没有人调查过这个问题?有什么想法或建议吗?
这是一个例子
id: UpdateUser
uri: SHOULD NOT GO DOWNSTREAM (endpoint is in 'custom api gateway')
predicates:
- path=/api/users
filters:
- ValidateSession
Run Code Online (Sandbox Code Playgroud)
谢谢塞吉
我的 API 网关有两个阶段(开发和生产)。我希望每个分别指向 dev 和 prod lambda 别名。我尝试在 lambda 集成中使用 stageVariables,但这会引发验证错误,并且 API Gateway 无权调用 lambda。我也无法从 lambda 仪表板更改权限策略以包含 stageVariables。
首先,我向每个阶段添加了一个阶段变量 (LAMBDA_ALIAS),并具有适当的值。我尝试附加:${stageVariables.LAMBDA_ALIAS}到 lambda ARN。当我保存此内容时,更改仍然存在,但仪表板顶部出现验证错误:
1 validation error detected: Value 'arn:aws:lambda:us-east-2:xxx:function:auth:${stageVariables.LAMBDA_ALIAS}' at 'functionName' failed to satisfy constraint: Member must satisfy regular expression pattern: (arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?
Run Code Online (Sandbox Code Playgroud)
此外,我在点击 API 路由后注意到 CloudWatch 日志中出现集成错误:“在集成或 API 网关上配置的 IAM 角色没有调用集成的权限。请检查权限并重试。”
我已按照本指南创建了与完整调用 ARN 的新集成,但这也不起作用(它解析为 lambda ARN)。最后,我尝试通过 cli ( aws lambda add-permissions) 发出 JSON 语句,但返回了与上面所示相同的正则表达式错误。
这是我使用的 JSON 语句:
{
"StatementId": "xxx",
"Action": "lambda:InvokeFunction",
"FunctionName": "arn:aws:lambda:us-east-2:xxx:function:auth:${stageVariables.LAMBDA_ALIAS}",
"Principal": "apigateway.amazonaws.com", …Run Code Online (Sandbox Code Playgroud)