返回
如何使用托管身份简化 Azure Event Grid 输出绑定的事件发送
python
2024-04-08 02:51:04
Azure Event Grid 输出绑定:使用托管身份的秘诀
作为开发人员,您经常需要使用 Azure Event Grid 将事件发送到其他服务。如果您希望简化此流程,可以使用 Azure Event Grid 输出绑定。然而,在 Python v2 中,使用托管身份而不是主题终结点和密钥时,您需要进行一些调整。
问题:
当您尝试使用托管身份时,可能会遇到以下问题:
topic_endpoint_uri
和topic_key_setting
参数不适用于托管身份。- 缺少
auth_settings
参数。
解决方案:
要解决此问题,请执行以下步骤:
- 删除
topic_endpoint_uri
和topic_key_setting
参数。 - 添加
auth_settings
参数,并将其设置为AzureAuthCredential.ManagedIdentity
。
修改后的代码:
@app.function_name(name="eventgrid_output")
@app.route(route="eventgrid_output")
@app.event_grid_output(
arg_name="outputEvent",
auth_settings=func.AzureAuthCredential.ManagedIdentity)
def eventgrid_output(eventGridEvent: func.EventGridEvent,
outputEvent: func.Out[func.EventGridOutputEvent]) -> None:
logging.log("eventGridEvent: ", eventGridEvent)
outputEvent.set(
func.EventGridOutputEvent(
id="test-id",
data={"tag1": "value1", "tag2": "value2"},
subject="test-subject",
event_type="test-event-1",
event_time=datetime.datetime.utcnow(),
data_version="1.0"))
结论:
通过使用托管身份,您可以简化使用 Azure Event Grid 输出绑定的过程。只需遵循本文中概述的步骤,您就可以轻松地将事件发送到其他服务,无需担心手动配置主题终结点和密钥。
常见问题解答:
-
什么是托管身份?
托管身份是 Azure 提供的一种服务,可自动管理服务主体的凭据,用于对 Azure 资源进行身份验证和授权。 -
为什么使用托管身份比使用主题终结点和密钥更好?
托管身份提供了更安全、更简单的身份验证方法,无需手动管理凭据。 -
此解决方案是否适用于 Python v3 中的 Azure Event Grid 输出绑定?
否,此解决方案仅适用于 Python v2 中的输出绑定。 -
如果我在应用托管身份时遇到问题怎么办?
请参阅 Azure 文档以获取有关如何使用托管身份的详细信息。 -
有哪些其他资源可以帮助我了解 Azure Event Grid 输出绑定?