我正在尝试将Azure Function应用程序(其中有一个Sping Boot 应用程序)与Azure API管理连接。我可以使用Azure UI来实现这一点。
但是,当我使用Azure Bicep尝试此操作时,我必须手动指定要在APIM中显示的所有API。
param location string = resourceGroup().location
resource bicep_poc 'Microsoft.ApiManagement/service@2022-09-01-preview' = {
name: 'bicep-poc'
location: location
sku: {
name: 'Consumption'
capacity: 0
}
identity: {
type: 'SystemAssigned'
}
properties: {
publisherEmail: 'abc@xyz.com'
publisherName: 'abcd'
}
}
// send apis
resource bicep_poc_bicep_fa_demo 'Microsoft.ApiManagement/service/apis@2022-09-01-preview' = {
parent: bicep_poc
name: 'bicep-fa-demo'
properties: {
displayName: 'bicep-fa-demo api function'
apiRevision: '1'
description: 'Import from "bicep-fa-demo" Function App'
subscriptionRequired: false
path: 'bicep-fa-demo/hello_1a'
protocols: [
'https'
]
isCurrent: true
}
}
resource bicep_poc_bicep_fa_demo_get_hello_world 'Microsoft.ApiManagement/service/apis/operations@2022-09-01-preview' = {
parent: bicep_poc_bicep_fa_demo
name: 'get-hello-world'
properties: {
displayName: 'hello-world'
method: 'GET'
urlTemplate: '/hello-world'
templateParameters: []
responses: []
}
}
resource bicep_poc_bicep_fa_demo_get_hello_world_policy 'Microsoft.ApiManagement/service/apis/operations/policies@2022-09-01-preview' = {
parent: bicep_poc_bicep_fa_demo_get_hello_world
name: 'policy'
properties: {
value: '<policies>\r\n <inbound>\r\n <base />\r\n <set-backend-service id="apim-generated-policy" backend-id="bicep-fa-demo" />\r\n </inbound>\r\n <backend>\r\n <base />\r\n </backend>\r\n <outbound>\r\n <base />\r\n </outbound>\r\n <on-error>\r\n <base />\r\n </on-error>\r\n</policies>'
format: 'xml'
}
}
这里我需要手动添加Microsoft.ApiManagement/service/apis/operations
。
有没有什么直接的方法可以像UI一样,通过连接lambda来创建Http触发器的所有api,并将其连接到后端(这里是function app)?
1条答案
按热度按时间mspsb9vt1#
除非您传递一个swagger模式,否则没有直接的方法,但是您可以通过分解为像this这样的模块来简化简单的GET操作。在模块内部,我声明了API、操作、策略和Web测试。
我的链接二头肌来自的存储库,显示了完整的端到端Azure Functions + APIM实现...可能对你有用。