@ -0,0 +1,107 @@ | |||||
<# | |||||
.SYNOPSIS | |||||
Deploys a template to Azure | |||||
.DESCRIPTION | |||||
Deploys an Azure Resource Manager template | |||||
.PARAMETER subscriptionId | |||||
The subscription id where the template will be deployed. | |||||
.PARAMETER resourceGroupName | |||||
The resource group where the template will be deployed. Can be the name of an existing or a new resource group. | |||||
.PARAMETER resourceGroupLocation | |||||
Optional, a resource group location. If specified, will try to create a new resource group in this location. If not specified, assumes resource group is existing. | |||||
.PARAMETER deploymentName | |||||
The deployment name. | |||||
.PARAMETER templateFilePath | |||||
Optional, path to the template file. Defaults to template.json. | |||||
.PARAMETER parametersFilePath | |||||
Optional, path to the parameters file. Defaults to parameters.json. If file is not found, will prompt for parameter values based on template. | |||||
#> | |||||
param( | |||||
[Parameter(Mandatory=$True)] | |||||
[string] | |||||
$subscriptionId, | |||||
[Parameter(Mandatory=$True)] | |||||
[string] | |||||
$resourceGroupName, | |||||
[string] | |||||
$resourceGroupLocation, | |||||
[Parameter(Mandatory=$True)] | |||||
[string] | |||||
$deploymentName, | |||||
[string] | |||||
$templateFilePath = "mesh_rp.linux.json", | |||||
[string] | |||||
$parametersFilePath = "parameters.json" | |||||
) | |||||
<# | |||||
.SYNOPSIS | |||||
Registers RPs | |||||
#> | |||||
Function RegisterRP { | |||||
Param( | |||||
[string]$ResourceProviderNamespace | |||||
) | |||||
Write-Host "Registering resource provider '$ResourceProviderNamespace'"; | |||||
Register-AzureRmResourceProvider -ProviderNamespace $ResourceProviderNamespace; | |||||
} | |||||
#****************************************************************************** | |||||
# Script body | |||||
# Execution begins here | |||||
#****************************************************************************** | |||||
$ErrorActionPreference = "Stop" | |||||
# sign in | |||||
Write-Host "Logging in..."; | |||||
Login-AzureRmAccount; | |||||
# select subscription | |||||
Write-Host "Selecting subscription '$subscriptionId'"; | |||||
Select-AzureRmSubscription -SubscriptionID $subscriptionId; | |||||
# Register RPs | |||||
$resourceProviders = @(); | |||||
if($resourceProviders.length) { | |||||
Write-Host "Registering resource providers" | |||||
foreach($resourceProvider in $resourceProviders) { | |||||
RegisterRP($resourceProvider); | |||||
} | |||||
} | |||||
#Create or check for existing resource group | |||||
$resourceGroup = Get-AzureRmResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue | |||||
if(!$resourceGroup) | |||||
{ | |||||
Write-Host "Resource group '$resourceGroupName' does not exist. To create a new resource group, please enter a location."; | |||||
if(!$resourceGroupLocation) { | |||||
$resourceGroupLocation = Read-Host "resourceGroupLocation"; | |||||
} | |||||
Write-Host "Creating resource group '$resourceGroupName' in location '$resourceGroupLocation'"; | |||||
New-AzureRmResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation | |||||
} | |||||
else{ | |||||
Write-Host "Using existing resource group '$resourceGroupName'"; | |||||
} | |||||
# Start the deployment | |||||
Write-Host "Starting deployment..."; | |||||
if(Test-Path $parametersFilePath) { | |||||
New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $parametersFilePath; | |||||
} else { | |||||
New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath; | |||||
} |
@ -0,0 +1,122 @@ | |||||
#!/bin/bash | |||||
set -euo pipefail | |||||
IFS=$'\n\t' | |||||
# -e: immediately exit if any command has a non-zero exit status | |||||
# -o: prevents errors in a pipeline from being masked | |||||
# IFS new value is less likely to cause confusing bugs when looping arrays or arguments (e.g. $@) | |||||
usage() { echo "Usage: $0 -i <subscriptionId> -g <resourceGroupName> -n <deploymentName> -l <resourceGroupLocation>" 1>&2; exit 1; } | |||||
declare subscriptionId="" | |||||
declare resourceGroupName="" | |||||
declare deploymentName="" | |||||
declare resourceGroupLocation="" | |||||
# Initialize parameters specified from command line | |||||
while getopts ":i:g:n:l:" arg; do | |||||
case "${arg}" in | |||||
i) | |||||
subscriptionId=${OPTARG} | |||||
;; | |||||
g) | |||||
resourceGroupName=${OPTARG} | |||||
;; | |||||
n) | |||||
deploymentName=${OPTARG} | |||||
;; | |||||
l) | |||||
resourceGroupLocation=${OPTARG} | |||||
;; | |||||
esac | |||||
done | |||||
shift $((OPTIND-1)) | |||||
#Prompt for parameters is some required parameters are missing | |||||
if [[ -z "$subscriptionId" ]]; then | |||||
echo "Your subscription ID can be looked up with the CLI using: az account show --out json " | |||||
echo "Enter your subscription ID:" | |||||
read subscriptionId | |||||
[[ "${subscriptionId:?}" ]] | |||||
fi | |||||
if [[ -z "$resourceGroupName" ]]; then | |||||
echo "This script will look for an existing resource group, otherwise a new one will be created " | |||||
echo "You can create new resource groups with the CLI using: az group create " | |||||
echo "Enter a resource group name" | |||||
read resourceGroupName | |||||
[[ "${resourceGroupName:?}" ]] | |||||
fi | |||||
if [[ -z "$deploymentName" ]]; then | |||||
echo "Enter a name for this deployment:" | |||||
read deploymentName | |||||
fi | |||||
if [[ -z "$resourceGroupLocation" ]]; then | |||||
echo "If creating a *new* resource group, you need to set a location " | |||||
echo "You can lookup locations with the CLI using: az account list-locations " | |||||
echo "Enter resource group location:" | |||||
read resourceGroupLocation | |||||
fi | |||||
#templateFile Path - template file to be used | |||||
templateFilePath="mesh_rp.linux.json" | |||||
if [ ! -f "$templateFilePath" ]; then | |||||
echo "$templateFilePath not found" | |||||
exit 1 | |||||
fi | |||||
#parameter file path | |||||
parametersFilePath="parameters.json" | |||||
if [ ! -f "$parametersFilePath" ]; then | |||||
echo "$parametersFilePath not found" | |||||
exit 1 | |||||
fi | |||||
if [ -z "$subscriptionId" ] || [ -z "$resourceGroupName" ] || [ -z "$deploymentName" ]; then | |||||
echo "Either one of subscriptionId, resourceGroupName, deploymentName is empty" | |||||
usage | |||||
fi | |||||
#login to azure using your credentials | |||||
az account show 1> /dev/null | |||||
if [ $? != 0 ]; | |||||
then | |||||
az login | |||||
fi | |||||
#set the default subscription id | |||||
az account set --subscription $subscriptionId | |||||
set +e | |||||
#Check for existing RG | |||||
az group show --name $resourceGroupName 1> /dev/null | |||||
if [ $? != 0 ]; then | |||||
echo "Resource group with name" $resourceGroupName "could not be found. Creating new resource group.." | |||||
set -e | |||||
( | |||||
set -x | |||||
az group create --name $resourceGroupName --location $resourceGroupLocation 1> /dev/null | |||||
) | |||||
else | |||||
echo "Using existing resource group..." | |||||
fi | |||||
#Start deployment | |||||
echo "Starting deployment..." | |||||
( | |||||
set -x | |||||
az group deployment create --name "$deploymentName" --resource-group "$resourceGroupName" --template-file "$templateFilePath" --parameters "@${parametersFilePath}" | |||||
) | |||||
if [ $? == 0 ]; | |||||
then | |||||
echo "Template has been successfully deployed" | |||||
fi |
@ -0,0 +1,71 @@ | |||||
require 'azure_mgmt_resources' | |||||
class Deployer | |||||
# Initialize the deployer class with subscription, resource group and resource group location. The class will raise an | |||||
# ArgumentError if there are empty values for Tenant Id, Client Id or Client Secret environment variables. | |||||
# | |||||
# @param [String] subscription_id the subscription to deploy the template | |||||
# @param [String] resource_group the resource group to create or update and then deploy the template | |||||
# @param [String] resource_group_location the location of the resource group | |||||
def initialize(subscription_id, resource_group, resource_group_location) | |||||
raise ArgumentError.new("Missing template file 'template.json' in current directory.") unless File.exist?('mesh_rp.linux.json') | |||||
raise ArgumentError.new("Missing parameters file 'parameters.json' in current directory.") unless File.exist?('parameters.json') | |||||
@resource_group = resource_group | |||||
@subscription_id = subscription_id | |||||
@resource_group_location = resource_group_location | |||||
provider = MsRestAzure::ApplicationTokenProvider.new( | |||||
ENV['AZURE_TENANT_ID'], | |||||
ENV['AZURE_CLIENT_ID'], | |||||
ENV['AZURE_CLIENT_SECRET']) | |||||
credentials = MsRest::TokenCredentials.new(provider) | |||||
@client = Azure::ARM::Resources::ResourceManagementClient.new(credentials) | |||||
@client.subscription_id = @subscription_id | |||||
end | |||||
# Deploy the template to a resource group | |||||
def deploy | |||||
# ensure the resource group is created | |||||
params = Azure::ARM::Resources::Models::ResourceGroup.new.tap do |rg| | |||||
rg.location = @resource_group_location | |||||
end | |||||
@client.resource_groups.create_or_update(@resource_group, params).value! | |||||
# build the deployment from a json file template from parameters | |||||
template = File.read(File.expand_path(File.join(__dir__, 'mesh_rp.linux.json'))) | |||||
deployment = Azure::ARM::Resources::Models::Deployment.new | |||||
deployment.properties = Azure::ARM::Resources::Models::DeploymentProperties.new | |||||
deployment.properties.template = JSON.parse(template) | |||||
deployment.properties.mode = Azure::ARM::Resources::Models::DeploymentMode::Incremental | |||||
# build the deployment template parameters from Hash to {key: {value: value}} format | |||||
deploy_params = File.read(File.expand_path(File.join(__dir__, 'parameters.json'))) | |||||
deployment.properties.parameters = JSON.parse(deploy_params)["parameters"] | |||||
# put the deployment to the resource group | |||||
@client.deployments.create_or_update(@resource_group, 'azure-sample', deployment) | |||||
end | |||||
end | |||||
# Get user inputs and execute the script | |||||
if(ARGV.empty?) | |||||
puts "Please specify subscriptionId resourceGroupName resourceGroupLocation as command line arguments" | |||||
exit | |||||
end | |||||
subscription_id = ARGV[0] # Azure Subscription Id | |||||
resource_group = ARGV[1] # The resource group for deployment | |||||
resource_group_location = ARGV[2] # The resource group location | |||||
msg = "\nInitializing the Deployer class with subscription id: #{subscription_id}, resource group: #{resource_group}" | |||||
msg += "\nand resource group location: #{resource_group_location}...\n\n" | |||||
puts msg | |||||
# Initialize the deployer class | |||||
deployer = Deployer.new(subscription_id, resource_group, resource_group_location) | |||||
puts "Beginning the deployment... \n\n" | |||||
# Deploy the template | |||||
deployment = deployer.deploy | |||||
puts "Done deploying!!" |
@ -0,0 +1,781 @@ | |||||
{ | |||||
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json", | |||||
"contentVersion": "1.0.0.0", | |||||
"parameters": { | |||||
"location": { | |||||
"type": "string", | |||||
"metadata": { | |||||
"description": "Location of the resources." | |||||
}, | |||||
"defaultValue": "eastus" | |||||
} | |||||
}, | |||||
"resources": [ | |||||
{ | |||||
"apiVersion": "2018-07-01-preview", | |||||
"name": "eShopNetwork", | |||||
"type": "Microsoft.ServiceFabricMesh/networks", | |||||
"location": "[parameters('location')]", | |||||
"dependsOn": [], | |||||
"properties": { | |||||
"addressPrefix": "10.0.0.4/22", | |||||
"ingressConfig": { | |||||
"layer4": [ | |||||
{ | |||||
"name": "catalogapiIngress", | |||||
"publicPort": "5001", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "catalogapi-svc", | |||||
"endpointName": "catalogListener" | |||||
}, | |||||
{ | |||||
"name": "basketapiIngress", | |||||
"publicPort": "5002", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "basketapi-svc", | |||||
"endpointName": "basketListener" | |||||
}, | |||||
{ | |||||
"name": "orderingapiIngress", | |||||
"publicPort": "5004", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "orderingapi-svc", | |||||
"endpointName": "orderingListener" | |||||
}, | |||||
{ | |||||
"name": "marketingapiIngress", | |||||
"publicPort": "5005", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "marketingapi-svc", | |||||
"endpointName": "marketingListener" | |||||
}, | |||||
{ | |||||
"name": "locationsapiIngress", | |||||
"publicPort": "5007", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "locationsapi-svc", | |||||
"endpointName": "locationsListener" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
}, | |||||
{ | |||||
"apiVersion": "2018-07-01-preview", | |||||
"name": "eShopOnMesh", | |||||
"type": "Microsoft.ServiceFabricMesh/applications", | |||||
"location": "[parameters('location')]", | |||||
"dependsOn": [ | |||||
"Microsoft.ServiceFabricMesh/networks/eShopNetwork" | |||||
], | |||||
"properties": { | |||||
"description": "eShopOnContainers on mesh", | |||||
"services": [ | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "sqldata-svc", | |||||
"properties": { | |||||
"description": "SQL Server (sql-data svc)", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "sqldata", | |||||
"image": "microsoft/mssql-server-linux:latest", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "sqldataListener", | |||||
"port": "1433" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ACCEPT_EULA", | |||||
"value": "Y" | |||||
}, | |||||
{ | |||||
"name": "SA_PASSWORD", | |||||
"value": "Pass@word" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "1", | |||||
"memoryInGB": "4" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "rabbitmq-svc", | |||||
"properties": { | |||||
"description": "rabbitmq", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "rabbitmq", | |||||
"image": "rabbitmq:3-management-alpine", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "rabbitmqListener", | |||||
"port": "5672" | |||||
}, | |||||
{ | |||||
"name": "rabbitManagementListener", | |||||
"port": "15672" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ACCEPT_EULA", | |||||
"value": "Y" | |||||
}, | |||||
{ | |||||
"name": "SA_PASSWORD", | |||||
"value": "Pass@word" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "1", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "mongo-svc", | |||||
"properties": { | |||||
"description": "mongo", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "mongo", | |||||
"image": "mongo:3.4.17", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "mongoListener", | |||||
"port": "27017" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "1", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "identityapi-svc", | |||||
"properties": { | |||||
"description": "Identity API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "identity-api", | |||||
"image": "eshop/identity.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "identityListener", | |||||
"port": "80" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:80" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.IdentityDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "SpaClient", | |||||
"value": "http://0.0.0.0:5104" | |||||
}, | |||||
{ | |||||
"name": "XamarinCallback", | |||||
"value": "http://0.0.0.0:5105/xamarincallback" | |||||
}, | |||||
{ | |||||
"name": "MvcClient", | |||||
"value": "http://0.0.0.0:5100" | |||||
}, | |||||
{ | |||||
"name": "LocationApiClient", | |||||
"value": "http://0.0.0.0:5109" | |||||
}, | |||||
{ | |||||
"name": "MarketingApiClient", | |||||
"value": "http://0.0.0.0:5110" | |||||
}, | |||||
{ | |||||
"name": "BasketApiClient", | |||||
"value": "http://0.0.0.0:5103" | |||||
}, | |||||
{ | |||||
"name": "OrderingApiClient", | |||||
"value": "http://0.0.0.0:5102" | |||||
}, | |||||
{ | |||||
"name": "MobileShoppingAggClient", | |||||
"value": "http://0.0.0.0:5120" | |||||
}, | |||||
{ | |||||
"name": "WebShoppingAggClient", | |||||
"value": "http://0.0.0.0:5121" | |||||
}, | |||||
{ | |||||
"name": "UseCustomizationData", | |||||
"value": "True" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "catalogapi-svc", | |||||
"properties": { | |||||
"description": "Catalog API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "catalog-api", | |||||
"image": "eshop/catalog.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "catalogListener", | |||||
"port": "81" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:81" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "PicBaseUrl", | |||||
"value": "http://0.0.0.0:5202/api/v1/c/catalog/items/[0]/pic/" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "basketapi-svc", | |||||
"properties": { | |||||
"description": "Basket API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "basket-api", | |||||
"image": "eshop/basket.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "basketListener", | |||||
"port": "82" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:82" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.BasketDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "orderingapi-svc", | |||||
"properties": { | |||||
"description": "Ordering API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "ordering-api", | |||||
"image": "eshop/ordering.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "orderingListener", | |||||
"port": "83" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:83" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "CheckUpdateTime", | |||||
"value": "30000" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "orderingbackgroundtasks-svc", | |||||
"properties": { | |||||
"description": "Ordering backgroundtasks API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "ordering-backgroundtasks", | |||||
"image": "eshop/ordering.backgroundtasks:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "orderingbackgroundtasksListener", | |||||
"port": "84" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:84" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "CheckUpdateTime", | |||||
"value": "30000" | |||||
}, | |||||
{ | |||||
"name": "GracePeriodTime", | |||||
"value": "1" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "UseCustomizationData", | |||||
"value": "True" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "marketingapi-svc", | |||||
"properties": { | |||||
"description": "Marketing API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "marketing-api", | |||||
"image": "eshop/marketing.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "marketingListener", | |||||
"port": "85" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:85" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.MarketingDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "MongoConnectionString", | |||||
"value": "mongo-svc" | |||||
}, | |||||
{ | |||||
"name": "MongoDatabase", | |||||
"value": "MarketingDb" | |||||
}, | |||||
{ | |||||
"name": "PicBaseUrl", | |||||
"value": "http://0.0.0.0:5110/api/v1/campaigns/[0]/pic/" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "UseCustomizationData", | |||||
"value": "True" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "paymentapi-svc", | |||||
"properties": { | |||||
"description": "Payment API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "payment-api", | |||||
"image": "eshop/payment.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "paymentListener", | |||||
"port": "86" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:86" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "locationsapi-svc", | |||||
"properties": { | |||||
"description": "Locations API Service.", | |||||
"osType": "linux", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "locations-api", | |||||
"image": "eshop/locations.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "locationsListener", | |||||
"port": "87" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:87" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "mongo-svc" | |||||
}, | |||||
{ | |||||
"name": "Database", | |||||
"value": "LocationsDb" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} |
@ -0,0 +1,781 @@ | |||||
{ | |||||
"$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json", | |||||
"contentVersion": "1.0.0.0", | |||||
"parameters": { | |||||
"location": { | |||||
"type": "string", | |||||
"metadata": { | |||||
"description": "Location of the resources." | |||||
}, | |||||
"defaultValue": "eastus" | |||||
} | |||||
}, | |||||
"resources": [ | |||||
{ | |||||
"apiVersion": "2018-07-01-preview", | |||||
"name": "eShopNetwork", | |||||
"type": "Microsoft.ServiceFabricMesh/networks", | |||||
"location": "[parameters('location')]", | |||||
"dependsOn": [], | |||||
"properties": { | |||||
"addressPrefix": "10.0.0.4/22", | |||||
"ingressConfig": { | |||||
"layer4": [ | |||||
{ | |||||
"name": "catalogapiIngress", | |||||
"publicPort": "5001", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "catalogapi-svc", | |||||
"endpointName": "catalogListener" | |||||
}, | |||||
{ | |||||
"name": "basketapiIngress", | |||||
"publicPort": "5002", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "basketapi-svc", | |||||
"endpointName": "basketListener" | |||||
}, | |||||
{ | |||||
"name": "orderingapiIngress", | |||||
"publicPort": "5004", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "orderingapi-svc", | |||||
"endpointName": "orderingListener" | |||||
}, | |||||
{ | |||||
"name": "marketingapiIngress", | |||||
"publicPort": "5005", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "marketingapi-svc", | |||||
"endpointName": "marketingListener" | |||||
}, | |||||
{ | |||||
"name": "locationsapiIngress", | |||||
"publicPort": "5007", | |||||
"applicationName": "eShopOnMesh", | |||||
"serviceName": "locationsapi-svc", | |||||
"endpointName": "locationsListener" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
}, | |||||
{ | |||||
"apiVersion": "2018-07-01-preview", | |||||
"name": "eShopOnMesh", | |||||
"type": "Microsoft.ServiceFabricMesh/applications", | |||||
"location": "[parameters('location')]", | |||||
"dependsOn": [ | |||||
"Microsoft.ServiceFabricMesh/networks/eShopNetwork" | |||||
], | |||||
"properties": { | |||||
"description": "eShopOnContainers on mesh", | |||||
"services": [ | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "sqldata-svc", | |||||
"properties": { | |||||
"description": "SQL Server (sql-data svc)", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "sqldata", | |||||
"image": "microsoft/mssql-server-windows:latest", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "sqldataListener", | |||||
"port": "1433" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ACCEPT_EULA", | |||||
"value": "Y" | |||||
}, | |||||
{ | |||||
"name": "SA_PASSWORD", | |||||
"value": "Pass@word" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "1", | |||||
"memoryInGB": "4" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "rabbitmq-svc", | |||||
"properties": { | |||||
"description": "rabbitmq", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "rabbitmq", | |||||
"image": "rabbitmq:3-management-alpine", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "rabbitmqListener", | |||||
"port": "5672" | |||||
}, | |||||
{ | |||||
"name": "rabbitManagementListener", | |||||
"port": "15672" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ACCEPT_EULA", | |||||
"value": "Y" | |||||
}, | |||||
{ | |||||
"name": "SA_PASSWORD", | |||||
"value": "Pass@word" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "1", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "mongo-svc", | |||||
"properties": { | |||||
"description": "mongo", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "mongo", | |||||
"image": "mongo:3.4.17", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "mongoListener", | |||||
"port": "27017" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "1", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "identityapi-svc", | |||||
"properties": { | |||||
"description": "Identity API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "identity-api", | |||||
"image": "eshop/identity.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "identityListener", | |||||
"port": "80" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:80" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.IdentityDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "SpaClient", | |||||
"value": "http://0.0.0.0:5104" | |||||
}, | |||||
{ | |||||
"name": "XamarinCallback", | |||||
"value": "http://0.0.0.0:5105/xamarincallback" | |||||
}, | |||||
{ | |||||
"name": "MvcClient", | |||||
"value": "http://0.0.0.0:5100" | |||||
}, | |||||
{ | |||||
"name": "LocationApiClient", | |||||
"value": "http://0.0.0.0:5109" | |||||
}, | |||||
{ | |||||
"name": "MarketingApiClient", | |||||
"value": "http://0.0.0.0:5110" | |||||
}, | |||||
{ | |||||
"name": "BasketApiClient", | |||||
"value": "http://0.0.0.0:5103" | |||||
}, | |||||
{ | |||||
"name": "OrderingApiClient", | |||||
"value": "http://0.0.0.0:5102" | |||||
}, | |||||
{ | |||||
"name": "MobileShoppingAggClient", | |||||
"value": "http://0.0.0.0:5120" | |||||
}, | |||||
{ | |||||
"name": "WebShoppingAggClient", | |||||
"value": "http://0.0.0.0:5121" | |||||
}, | |||||
{ | |||||
"name": "UseCustomizationData", | |||||
"value": "True" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "catalogapi-svc", | |||||
"properties": { | |||||
"description": "Catalog API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "catalog-api", | |||||
"image": "eshop/catalog.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "catalogListener", | |||||
"port": "81" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:81" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.CatalogDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "PicBaseUrl", | |||||
"value": "http://0.0.0.0:5202/api/v1/c/catalog/items/[0]/pic/" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "basketapi-svc", | |||||
"properties": { | |||||
"description": "Basket API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "basket-api", | |||||
"image": "eshop/basket.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "basketListener", | |||||
"port": "82" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:82" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.BasketDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "orderingapi-svc", | |||||
"properties": { | |||||
"description": "Ordering API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "ordering-api", | |||||
"image": "eshop/ordering.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "orderingListener", | |||||
"port": "83" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:83" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "CheckUpdateTime", | |||||
"value": "30000" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "orderingbackgroundtasks-svc", | |||||
"properties": { | |||||
"description": "Ordering backgroundtasks API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "ordering-backgroundtasks", | |||||
"image": "eshop/ordering.backgroundtasks:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "orderingbackgroundtasksListener", | |||||
"port": "84" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:84" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "CheckUpdateTime", | |||||
"value": "30000" | |||||
}, | |||||
{ | |||||
"name": "GracePeriodTime", | |||||
"value": "1" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "UseCustomizationData", | |||||
"value": "True" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "marketingapi-svc", | |||||
"properties": { | |||||
"description": "Marketing API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "marketing-api", | |||||
"image": "eshop/marketing.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "marketingListener", | |||||
"port": "85" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:85" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "Server=sqldata-svc;Database=Microsoft.eShopOnContainers.Services.MarketingDb;User Id=sa;Password=Pass@word" | |||||
}, | |||||
{ | |||||
"name": "MongoConnectionString", | |||||
"value": "mongo-svc" | |||||
}, | |||||
{ | |||||
"name": "MongoDatabase", | |||||
"value": "MarketingDb" | |||||
}, | |||||
{ | |||||
"name": "PicBaseUrl", | |||||
"value": "http://0.0.0.0:5110/api/v1/campaigns/[0]/pic/" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureStorageEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "UseCustomizationData", | |||||
"value": "True" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "paymentapi-svc", | |||||
"properties": { | |||||
"description": "Payment API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "payment-api", | |||||
"image": "eshop/payment.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "paymentListener", | |||||
"port": "86" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:86" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
}, | |||||
{ | |||||
"type": "Microsoft.ServiceFabricMesh/services", | |||||
"location": "[parameters('location')]", | |||||
"name": "locationsapi-svc", | |||||
"properties": { | |||||
"description": "Locations API Service.", | |||||
"osType": "windows", | |||||
"codePackages": [ | |||||
{ | |||||
"name": "locations-api", | |||||
"image": "eshop/locations.api:dev", | |||||
"endpoints": [ | |||||
{ | |||||
"name": "locationsListener", | |||||
"port": "87" | |||||
} | |||||
], | |||||
"environmentVariables": [ | |||||
{ | |||||
"name": "ASPNETCORE_ENVIRONMENT", | |||||
"value": "Development" | |||||
}, | |||||
{ | |||||
"name": "ASPNETCORE_URLS", | |||||
"value": "http://0.0.0.0:87" | |||||
}, | |||||
{ | |||||
"name": "ConnectionString", | |||||
"value": "mongo-svc" | |||||
}, | |||||
{ | |||||
"name": "Database", | |||||
"value": "LocationsDb" | |||||
}, | |||||
{ | |||||
"name": "identityUrl", | |||||
"value": "http://identity.api" | |||||
}, | |||||
{ | |||||
"name": "IdentityUrlExternal", | |||||
"value": "http://10.121.122.162:5105" | |||||
}, | |||||
{ | |||||
"name": "EventBusConnection", | |||||
"value": "rabbitmq-svc" | |||||
}, | |||||
{ | |||||
"name": "AzureServiceBusEnabled", | |||||
"value": "False" | |||||
}, | |||||
{ | |||||
"name": "OrchestratorType", | |||||
"value": "SF" | |||||
} | |||||
], | |||||
"resources": { | |||||
"requests": { | |||||
"cpu": "0.5", | |||||
"memoryInGB": "1" | |||||
} | |||||
} | |||||
} | |||||
], | |||||
"replicaCount": "1", | |||||
"networkRefs": [ | |||||
{ | |||||
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'eShopNetwork')]" | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} | |||||
} | |||||
] | |||||
} |
@ -0,0 +1,9 @@ | |||||
{ | |||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", | |||||
"contentVersion": "1.0.0.0", | |||||
"parameters": { | |||||
"location": { | |||||
"value": "eastus" | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,23 @@ | |||||
#Install mesh extension | |||||
az extension add --name mesh | |||||
#Desploy command | |||||
az mesh deployment create --resource-group {{resource-group}} --template-file {{path-file}} --parameters {{parameters}} | |||||
Examples: | |||||
- [resource-group] test | |||||
- [path-file] C:/Users/epique/Desktop/mesh_rp.linux.json | |||||
- [parameters] "{'location': {'value': 'eastus'}}" | |||||
#Logs command | |||||
az mesh code-package-log get --app-name {{app-name}} --code-package-name {{code-package-name}} -g {{resource-group}} --service-name {{service-name}} --replica-name {{replica-name}} | |||||
Examples: | |||||
- [app-name] eShopOnMesh | |||||
- [code-package-name] catalog-api | |||||
- [resource-group] test | |||||
- [service-name] catalogapi-svc | |||||
- [replica-name] 0 (is numeric, start into 0) | |||||
#Show service command | |||||
az mesh service show --app-name {{app-name}} -g {{resource-group}} -n {{service-name}} |