зеркало из https://github.com/Azure/ForresterDemo.git
NEW UPDATE
This commit is contained in:
Родитель
91e7a368bc
Коммит
6e9e21d21e
|
@ -0,0 +1,43 @@
|
|||
name: Build and deploy .NET Core application to Function App ToyotaLocistics with API Management Service ToyotaLogisticsSystem2-ToyotaLogisticsSystem2
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
env:
|
||||
AZURE_FUNCTIONAPP_NAME: ToyotaLocistics
|
||||
AZURE_FUNCTIONAPP_PACKAGE_PATH: ToyotaFunctionApp/publish
|
||||
CONFIGURATION: Release
|
||||
DOTNET_CORE_VERSION: 3.1.x
|
||||
WORKING_DIRECTORY: ToyotaFunctionApp
|
||||
AZURE_APIM_RESOURCEGROUP: ToyotaLogistics
|
||||
AZURE_APIM_SERVICENAME: ToyotaLogisticsSystem2
|
||||
AZURE_APIM_API_ID: ToyotaLogisticsSystem2
|
||||
AZURE_APIM_RESOURCE_PATH: /
|
||||
AZURE_APIM_SWAGGERURL: https://toyotalocistics.azurewebsites.net/api/swagger.json
|
||||
jobs:
|
||||
build-and-deploy:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup .NET Core
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: ${{ env.DOTNET_CORE_VERSION }}
|
||||
- name: Restore
|
||||
run: dotnet restore "${{ env.WORKING_DIRECTORY }}"
|
||||
- name: Build
|
||||
run: dotnet build "${{ env.WORKING_DIRECTORY }}" --configuration ${{ env.CONFIGURATION }} --no-restore
|
||||
- name: Publish
|
||||
run: dotnet publish "${{ env.WORKING_DIRECTORY }}" --configuration ${{ env.CONFIGURATION }} --no-build --output "${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}"
|
||||
- name: Deploy to Azure Function App
|
||||
uses: Azure/functions-action@v1
|
||||
with:
|
||||
app-name: ${{ env.AZURE_FUNCTIONAPP_NAME }}
|
||||
publish-profile: ${{ secrets.ToyotaLocistics_bd9b }}
|
||||
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
|
||||
- name: Azure Login
|
||||
uses: azure/login@v1
|
||||
with:
|
||||
creds: ${{ secrets.ToyotaLogisticsSystem2_SPN }}
|
||||
- name: Import API into Azure API Management
|
||||
run: az apim api import --path "${{ env.AZURE_APIM_RESOURCE_PATH }}" --resource-group ${{ env.AZURE_APIM_RESOURCEGROUP }} --service-name ${{ env.AZURE_APIM_SERVICENAME }} --api-id ${{ env.AZURE_APIM_API_ID }} --specification-url "${{ env.AZURE_APIM_SWAGGERURL }}" --specification-format OpenApi --subscription-required false
|
|
@ -0,0 +1,131 @@
|
|||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"resourceGroupName": {
|
||||
"type": "string",
|
||||
"defaultValue": "ToyotaLogistics",
|
||||
"metadata": {
|
||||
"_parameterType": "resourceGroup",
|
||||
"description": "Name of the resource group for the resource. It is recommended to put resources under same resource group for better tracking."
|
||||
}
|
||||
},
|
||||
"resourceGroupLocation": {
|
||||
"type": "string",
|
||||
"defaultValue": "eastus",
|
||||
"metadata": {
|
||||
"_parameterType": "location",
|
||||
"description": "Location of the resource group. Resource groups could have different location than resources."
|
||||
}
|
||||
},
|
||||
"resourceLocation": {
|
||||
"type": "string",
|
||||
"defaultValue": "[parameters('resourceGroupLocation')]",
|
||||
"metadata": {
|
||||
"_parameterType": "location",
|
||||
"description": "Location of the resource. By default use resource group's location, unless the resource provider is not supported there."
|
||||
}
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"type": "Microsoft.Resources/resourceGroups",
|
||||
"name": "[parameters('resourceGroupName')]",
|
||||
"location": "[parameters('resourceGroupLocation')]",
|
||||
"apiVersion": "2019-10-01"
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Resources/deployments",
|
||||
"name": "[concat(parameters('resourceGroupName'), 'Deployment', uniqueString(concat('ToyotaLogisticsSystem2', subscription().subscriptionId)))]",
|
||||
"resourceGroup": "[parameters('resourceGroupName')]",
|
||||
"apiVersion": "2019-10-01",
|
||||
"dependsOn": [
|
||||
"[parameters('resourceGroupName')]"
|
||||
],
|
||||
"properties": {
|
||||
"mode": "Incremental",
|
||||
"template": {
|
||||
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"resources": [
|
||||
{
|
||||
"name": "ToyotaLogisticsSystem2",
|
||||
"type": "Microsoft.ApiManagement/service",
|
||||
"location": "[parameters('resourceLocation')]",
|
||||
"properties": {
|
||||
"publisherEmail": "demoadmin@pmgevents.onmicrosoft.com",
|
||||
"publisherName": "Julie Strauss",
|
||||
"notificationSenderEmail": "apimgmt-noreply@mail.windowsazure.com",
|
||||
"hostnameConfigurations": [
|
||||
{
|
||||
"type": "Proxy",
|
||||
"hostName": "toyotalogisticssystem2.azure-api.net",
|
||||
"encodedCertificate": null,
|
||||
"keyVaultId": null,
|
||||
"certificatePassword": null,
|
||||
"negotiateClientCertificate": false,
|
||||
"certificate": null,
|
||||
"defaultSslBinding": true
|
||||
}
|
||||
],
|
||||
"publicIPAddresses": null,
|
||||
"privateIPAddresses": null,
|
||||
"additionalLocations": null,
|
||||
"virtualNetworkConfiguration": null,
|
||||
"customProperties": {
|
||||
"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10": "False",
|
||||
"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11": "False",
|
||||
"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10": "False",
|
||||
"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11": "False",
|
||||
"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30": "False",
|
||||
"Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2": "False"
|
||||
},
|
||||
"virtualNetworkType": "None",
|
||||
"certificates": null,
|
||||
"apiVersionConstraint": {
|
||||
"minApiVersion": null
|
||||
}
|
||||
},
|
||||
"sku": {
|
||||
"name": "Consumption",
|
||||
"capacity": 0
|
||||
},
|
||||
"apiVersion": "2019-12-01"
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.ApiManagement/service/apis",
|
||||
"name": "ToyotaLogisticsSystem2/ToyotaLogisticsSystem2",
|
||||
"properties": {
|
||||
"displayName": "Toyota Logistics Function",
|
||||
"apiRevision": "1",
|
||||
"description": "Functions used to send vehicle parts data",
|
||||
"subscriptionRequired": false,
|
||||
"serviceUrl": "https://toyotalogisticssystem2.azurewebsites.net/api",
|
||||
"path": "",
|
||||
"protocols": [
|
||||
"https"
|
||||
],
|
||||
"authenticationSettings": {
|
||||
"oAuth2": null,
|
||||
"openid": null
|
||||
},
|
||||
"subscriptionKeyParameterNames": {
|
||||
"header": "Ocp-Apim-Subscription-Key",
|
||||
"query": "subscription-key"
|
||||
},
|
||||
"isCurrent": true
|
||||
},
|
||||
"apiVersion": "2019-12-01",
|
||||
"dependsOn": [
|
||||
"ToyotaLogisticsSystem2"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"_dependencyType": "apis.azure"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,175 @@
|
|||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"metadata": {
|
||||
"_dependencyType": "function.windows.appService"
|
||||
},
|
||||
"parameters": {
|
||||
"resourceGroupName": {
|
||||
"type": "string",
|
||||
"defaultValue": "ToyotaLogistics",
|
||||
"metadata": {
|
||||
"description": "Name of the resource group for the resource. It is recommended to put resources under same resource group for better tracking."
|
||||
}
|
||||
},
|
||||
"resourceGroupLocation": {
|
||||
"type": "string",
|
||||
"defaultValue": "eastus",
|
||||
"metadata": {
|
||||
"description": "Location of the resource group. Resource groups could have different location than resources, however by default we use API versions from latest hybrid profile which support all locations for resource types we support."
|
||||
}
|
||||
},
|
||||
"resourceName": {
|
||||
"type": "string",
|
||||
"defaultValue": "ToyotaLogisticAPI",
|
||||
"metadata": {
|
||||
"description": "Name of the main resource to be created by this template."
|
||||
}
|
||||
},
|
||||
"resourceLocation": {
|
||||
"type": "string",
|
||||
"defaultValue": "[parameters('resourceGroupLocation')]",
|
||||
"metadata": {
|
||||
"description": "Location of the resource. By default use resource group's location, unless the resource provider is not supported there."
|
||||
}
|
||||
}
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"type": "Microsoft.Resources/resourceGroups",
|
||||
"name": "[parameters('resourceGroupName')]",
|
||||
"location": "[parameters('resourceGroupLocation')]",
|
||||
"apiVersion": "2019-10-01"
|
||||
},
|
||||
{
|
||||
"type": "Microsoft.Resources/deployments",
|
||||
"name": "[concat(parameters('resourceGroupName'), 'Deployment', uniqueString(concat(parameters('resourceName'), subscription().subscriptionId)))]",
|
||||
"resourceGroup": "[parameters('resourceGroupName')]",
|
||||
"apiVersion": "2019-10-01",
|
||||
"dependsOn": [
|
||||
"[parameters('resourceGroupName')]"
|
||||
],
|
||||
"properties": {
|
||||
"mode": "Incremental",
|
||||
"expressionEvaluationOptions": {
|
||||
"scope": "inner"
|
||||
},
|
||||
"parameters": {
|
||||
"resourceGroupName": {
|
||||
"value": "[parameters('resourceGroupName')]"
|
||||
},
|
||||
"resourceGroupLocation": {
|
||||
"value": "[parameters('resourceGroupLocation')]"
|
||||
},
|
||||
"resourceName": {
|
||||
"value": "[parameters('resourceName')]"
|
||||
},
|
||||
"resourceLocation": {
|
||||
"value": "[parameters('resourceLocation')]"
|
||||
}
|
||||
},
|
||||
"template": {
|
||||
"$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"resourceGroupName": {
|
||||
"type": "string"
|
||||
},
|
||||
"resourceGroupLocation": {
|
||||
"type": "string"
|
||||
},
|
||||
"resourceName": {
|
||||
"type": "string"
|
||||
},
|
||||
"resourceLocation": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"variables": {
|
||||
"storage_name": "[toLower(concat('storage', uniqueString(concat(parameters('resourceName'), subscription().subscriptionId))))]",
|
||||
"appServicePlan_name": "[concat('Plan', uniqueString(concat(parameters('resourceName'), subscription().subscriptionId)))]",
|
||||
"storage_ResourceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('resourceGroupName'), '/providers/Microsoft.Storage/storageAccounts/', variables('storage_name'))]",
|
||||
"appServicePlan_ResourceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('resourceGroupName'), '/providers/Microsoft.Web/serverFarms/', variables('appServicePlan_name'))]",
|
||||
"function_ResourceId": "[concat('/subscriptions/', subscription().subscriptionId, '/resourceGroups/', parameters('resourceGroupName'), '/providers/Microsoft.Web/sites/', parameters('resourceName'))]"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"location": "[parameters('resourceLocation')]",
|
||||
"name": "[parameters('resourceName')]",
|
||||
"type": "Microsoft.Web/sites",
|
||||
"apiVersion": "2015-08-01",
|
||||
"tags": {
|
||||
"[concat('hidden-related:', variables('appServicePlan_ResourceId'))]": "empty"
|
||||
},
|
||||
"dependsOn": [
|
||||
"[variables('appServicePlan_ResourceId')]",
|
||||
"[variables('storage_ResourceId')]"
|
||||
],
|
||||
"kind": "functionapp",
|
||||
"properties": {
|
||||
"name": "[parameters('resourceName')]",
|
||||
"kind": "functionapp",
|
||||
"httpsOnly": true,
|
||||
"reserved": false,
|
||||
"serverFarmId": "[variables('appServicePlan_ResourceId')]",
|
||||
"siteConfig": {
|
||||
"alwaysOn": true
|
||||
}
|
||||
},
|
||||
"identity": {
|
||||
"type": "SystemAssigned"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"name": "appsettings",
|
||||
"type": "config",
|
||||
"apiVersion": "2015-08-01",
|
||||
"dependsOn": [
|
||||
"[variables('function_ResourceId')]"
|
||||
],
|
||||
"properties": {
|
||||
"AzureWebJobsDashboard": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storage_name'), ';AccountKey=', listKeys(variables('storage_ResourceId'), '2017-10-01').keys[0].value, ';EndpointSuffix=', 'core.windows.net')]",
|
||||
"AzureWebJobsStorage": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storage_name'), ';AccountKey=', listKeys(variables('storage_ResourceId'), '2017-10-01').keys[0].value, ';EndpointSuffix=', 'core.windows.net')]",
|
||||
"FUNCTIONS_EXTENSION_VERSION": "~3",
|
||||
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"location": "[parameters('resourceGroupLocation')]",
|
||||
"name": "[variables('storage_name')]",
|
||||
"type": "Microsoft.Storage/storageAccounts",
|
||||
"apiVersion": "2017-10-01",
|
||||
"tags": {
|
||||
"[concat('hidden-related:', concat('/providers/Microsoft.Web/sites/', parameters('resourceName')))]": "empty"
|
||||
},
|
||||
"properties": {
|
||||
"supportsHttpsTrafficOnly": true
|
||||
},
|
||||
"sku": {
|
||||
"name": "Standard_LRS"
|
||||
},
|
||||
"kind": "Storage"
|
||||
},
|
||||
{
|
||||
"location": "[parameters('resourceGroupLocation')]",
|
||||
"name": "[variables('appServicePlan_name')]",
|
||||
"type": "Microsoft.Web/serverFarms",
|
||||
"apiVersion": "2015-08-01",
|
||||
"sku": {
|
||||
"name": "S1",
|
||||
"tier": "Standard",
|
||||
"family": "S",
|
||||
"size": "S1"
|
||||
},
|
||||
"properties": {
|
||||
"name": "[variables('appServicePlan_name')]"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"apis1": {
|
||||
"resourceId": "/subscriptions/[parameters('subscriptionId')]/resourceGroups/[parameters('resourceGroupName')]/providers/Microsoft.ApiManagement/service/ToyotaLogisticsSystem2/apis/ToyotaLogisticsSystem2",
|
||||
"type": "apis.azure"
|
||||
}
|
||||
}
|
||||
}
|
Загрузка…
Ссылка в новой задаче