如何在Temporal RoadRunner插件中使用基于API Key的身份验证?
使用API密钥配置RoadRunner Worker连接Temporal云服务
API密钥是Temporal云的一种身份验证方案,作为mTLS的替代选项,可用于SDK和CLI的工作流管理操作。
在PHP客户端中,你已经可以通过代码实现API密钥认证:
$address = $_ENV['TEMPORAL_ADDRESS'] ?? 'temporalio-server:7233'; $serviceClient = isset($_ENV['TEMPORAL_API_KEY']) ? ServiceClient::createSSL($address)->withAuthKey($_ENV['TEMPORAL_API_KEY']) : ServiceClient::create($address); $options = (new ClientOptions) ->withNamespace($_ENV['TEMPORAL_NAMESPACE'] ?? 'default'); return WorkflowClient::create($serviceClient, $options);
针对RoadRunner Worker的配置问题,你之前尝试的headers配置不符合RoadRunner的Temporal插件Schema规范,所以会出现验证错误。正确的做法是使用插件提供的auth配置项来传递API密钥:
temporal: address: ${TEMPORAL_ADDRESS:-temporalio-server:7233} activities: num_workers: 10 namespace: ${TEMPORAL_NAMESPACE:-default} auth: token: "Bearer ${TEMPORAL_API_KEY}"
这个配置会自动将Bearer令牌注入到请求的Authorization头中,和PHP客户端的实现逻辑一致。RoadRunner的Temporal插件专门提供了auth.token字段来处理这类Bearer令牌认证,无需手动添加自定义headers。
内容的提问来源于stack exchange,提问作者chx
相关产品推荐
相关产品推荐

