use of com.microsoft.azure.management.appservice.WebApp in project azure-sdk-for-java by Azure.
the class ManageLinuxWebAppStorageAccountConnection method runSample.
/**
* Main function which runs the actual sample.
* @param azure instance of the azure client
* @return true if sample runs successfully
*/
public static boolean runSample(Azure azure) {
// New resources
final String suffix = ".azurewebsites.net";
final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
final String app1Url = app1Name + suffix;
final String storageName = SdkContext.randomResourceName("jsdkstore", 20);
final String containerName = SdkContext.randomResourceName("jcontainer", 20);
final String rgName = SdkContext.randomResourceName("rg1NEMV_", 24);
try {
//============================================================
// Create a storage account for the web app to use
System.out.println("Creating storage account " + storageName + "...");
StorageAccount storageAccount = azure.storageAccounts().define(storageName).withRegion(Region.US_WEST).withNewResourceGroup(rgName).create();
String accountKey = storageAccount.getKeys().get(0).value();
String connectionString = String.format("DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s", storageAccount.name(), accountKey);
System.out.println("Created storage account " + storageAccount.name());
//============================================================
// Upload a few files to the storage account blobs
System.out.println("Uploading 2 blobs to container " + containerName + "...");
CloudBlobContainer container = setUpStorageAccount(connectionString, containerName);
uploadFileToContainer(container, "helloworld.war", ManageLinuxWebAppStorageAccountConnection.class.getResource("/helloworld.war").getPath());
uploadFileToContainer(container, "install_apache.sh", ManageLinuxWebAppStorageAccountConnection.class.getResource("/install_apache.sh").getPath());
System.out.println("Uploaded 2 blobs to container " + container.getName());
//============================================================
// Create a web app with a new app service plan
System.out.println("Creating web app " + app1Name + "...");
WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withExistingResourceGroup(rgName).withNewLinuxPlan(PricingTier.STANDARD_S1).withPublicDockerHubImage("tomcat:8-jre8").withStartUpCommand("/bin/bash -c \"sed -ie 's/appBase=\\\"webapps\\\"/appBase=\\\"\\\\/home\\\\/site\\\\/wwwroot\\\\/webapps\\\"/g' conf/server.xml && catalina.sh run\"").withConnectionString("storage.connectionString", connectionString, ConnectionStringType.CUSTOM).withAppSetting("storage.containerName", containerName).withAppSetting("PORT", "8080").create();
System.out.println("Created web app " + app1.name());
Utils.print(app1);
//============================================================
// Deploy a web app that connects to the storage account
// Source code: https://github.com/jianghaolu/azure-samples-blob-explorer
System.out.println("Deploying azure-samples-blob-traverser.war to " + app1Name + " through FTP...");
Utils.uploadFileToFtp(app1.getPublishingProfile(), "azure-samples-blob-traverser.war", ManageLinuxWebAppStorageAccountConnection.class.getResourceAsStream("/azure-samples-blob-traverser.war"));
System.out.println("Deployment azure-samples-blob-traverser.war to web app " + app1.name() + " completed");
Utils.print(app1);
// warm up
System.out.println("Warming up " + app1Url + "/azure-samples-blob-traverser...");
curl("http://" + app1Url + "/azure-samples-blob-traverser");
Thread.sleep(5000);
System.out.println("CURLing " + app1Url + "/azure-samples-blob-traverser...");
System.out.println(curl("http://" + app1Url + "/azure-samples-blob-traverser"));
return true;
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
try {
System.out.println("Deleting Resource Group: " + rgName);
azure.resourceGroups().beginDeleteByName(rgName);
System.out.println("Deleted Resource Group: " + rgName);
} catch (NullPointerException npe) {
System.out.println("Did not create any resources in Azure. No clean up is necessary");
} catch (Exception g) {
g.printStackTrace();
}
}
return false;
}
use of com.microsoft.azure.management.appservice.WebApp in project azure-sdk-for-java by Azure.
the class ManageLinuxWebAppWithDomainSsl method runSample.
/**
* Main function which runs the actual sample.
* @param azure instance of the azure client
* @return true if sample runs successfully
*/
public static boolean runSample(Azure azure) {
// New resources
final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
final String rgName = SdkContext.randomResourceName("rgNEMV_", 24);
final String domainName = SdkContext.randomResourceName("jsdkdemo-", 20) + ".com";
final String certPassword = "StrongPass!12";
try {
//============================================================
// Create a web app with a new app service plan
System.out.println("Creating web app " + app1Name + "...");
WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withNewResourceGroup(rgName).withNewLinuxPlan(PricingTier.STANDARD_S1).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
System.out.println("Created web app " + app1.name());
Utils.print(app1);
//============================================================
// Create a second web app with the same app service plan
System.out.println("Creating another web app " + app2Name + "...");
AppServicePlan plan = azure.appServices().appServicePlans().getById(app1.appServicePlanId());
WebApp app2 = azure.webApps().define(app2Name).withExistingLinuxPlan(plan).withExistingResourceGroup(rgName).withBuiltInImage(RuntimeStack.NODEJS_6_9_3).create();
System.out.println("Created web app " + app2.name());
Utils.print(app2);
//============================================================
// Purchase a domain (will be canceled for a full refund)
System.out.println("Purchasing a domain " + domainName + "...");
AppServiceDomain domain = azure.appServices().domains().define(domainName).withExistingResourceGroup(rgName).defineRegistrantContact().withFirstName("Jon").withLastName("Doe").withEmail("jondoe@contoso.com").withAddressLine1("123 4th Ave").withCity("Redmond").withStateOrProvince("WA").withCountry(CountryIsoCode.UNITED_STATES).withPostalCode("98052").withPhoneCountryCode(CountryPhoneCode.UNITED_STATES).withPhoneNumber("4258828080").attach().withDomainPrivacyEnabled(true).withAutoRenewEnabled(false).create();
System.out.println("Purchased domain " + domain.name());
Utils.print(domain);
//============================================================
// Bind domain to web app 1
System.out.println("Binding http://" + app1Name + "." + domainName + " to web app " + app1Name + "...");
app1 = app1.update().defineHostnameBinding().withAzureManagedDomain(domain).withSubDomain(app1Name).withDnsRecordType(CustomHostNameDnsRecordType.CNAME).attach().apply();
System.out.println("Finished binding http://" + app1Name + "." + domainName + " to web app " + app1Name);
Utils.print(app1);
//============================================================
// Create a self-singed SSL certificate
String pfxPath = ManageLinuxWebAppWithDomainSsl.class.getResource("/").getPath() + app2Name + "." + domainName + ".pfx";
String cerPath = ManageLinuxWebAppWithDomainSsl.class.getResource("/").getPath() + app2Name + "." + domainName + ".cer";
System.out.println("Creating a self-signed certificate " + pfxPath + "...");
Utils.createCertificate(cerPath, pfxPath, domainName, certPassword, "*." + domainName);
System.out.println("Created self-signed certificate " + pfxPath);
//============================================================
// Bind domain to web app 2 and turn on wild card SSL for both
System.out.println("Binding https://" + app1Name + "." + domainName + " to web app " + app1Name + "...");
app1 = app1.update().withManagedHostnameBindings(domain, app1Name).defineSslBinding().forHostname(app1Name + "." + domainName).withPfxCertificateToUpload(new File(pfxPath), certPassword).withSniBasedSsl().attach().apply();
System.out.println("Finished binding http://" + app1Name + "." + domainName + " to web app " + app1Name);
Utils.print(app1);
System.out.println("Binding https://" + app2Name + "." + domainName + " to web app " + app2Name + "...");
app2 = app2.update().withManagedHostnameBindings(domain, app2Name).defineSslBinding().forHostname(app2Name + "." + domainName).withExistingCertificate(app1.hostNameSslStates().get(app1Name + "." + domainName).thumbprint()).withSniBasedSsl().attach().apply();
System.out.println("Finished binding http://" + app2Name + "." + domainName + " to web app " + app2Name);
Utils.print(app2);
return true;
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
try {
System.out.println("Deleting Resource Group: " + rgName);
azure.resourceGroups().deleteByName(rgName);
System.out.println("Deleted Resource Group: " + rgName);
} catch (NullPointerException npe) {
System.out.println("Did not create any resources in Azure. No clean up is necessary");
} catch (Exception g) {
g.printStackTrace();
}
}
return false;
}
use of com.microsoft.azure.management.appservice.WebApp in project azure-sdk-for-java by Azure.
the class ManageLinuxWebAppWithTrafficManager method runSample.
/**
* Main function which runs the actual sample.
* @param azure instance of the azure client
* @return true if sample runs successfully
*/
public static boolean runSample(Azure azure) {
if (ManageLinuxWebAppWithTrafficManager.azure == null) {
ManageLinuxWebAppWithTrafficManager.azure = azure;
}
// New resources
final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
final String app2Name = SdkContext.randomResourceName("webapp2-", 20);
final String app3Name = SdkContext.randomResourceName("webapp3-", 20);
final String app4Name = SdkContext.randomResourceName("webapp4-", 20);
final String app5Name = SdkContext.randomResourceName("webapp5-", 20);
final String plan1Name = SdkContext.randomResourceName("jplan1_", 15);
final String plan2Name = SdkContext.randomResourceName("jplan2_", 15);
final String plan3Name = SdkContext.randomResourceName("jplan3_", 15);
final String domainName = SdkContext.randomResourceName("jsdkdemo-", 20) + ".com";
final String tmName = SdkContext.randomResourceName("jsdktm-", 20);
try {
//============================================================
// Purchase a domain (will be canceled for a full refund)
System.out.println("Purchasing a domain " + domainName + "...");
azure.resourceGroups().define(RG_NAME).withRegion(Region.US_WEST).create();
domain = azure.appServices().domains().define(domainName).withExistingResourceGroup(RG_NAME).defineRegistrantContact().withFirstName("Jon").withLastName("Doe").withEmail("jondoe@contoso.com").withAddressLine1("123 4th Ave").withCity("Redmond").withStateOrProvince("WA").withCountry(CountryIsoCode.UNITED_STATES).withPostalCode("98052").withPhoneCountryCode(CountryPhoneCode.UNITED_STATES).withPhoneNumber("4258828080").attach().withDomainPrivacyEnabled(true).withAutoRenewEnabled(false).create();
System.out.println("Purchased domain " + domain.name());
Utils.print(domain);
//============================================================
// Create a self-singed SSL certificate
pfxPath = ManageLinuxWebAppWithTrafficManager.class.getResource("/").getPath() + app2Name + "." + domainName + ".pfx";
String cerPath = ManageLinuxWebAppWithTrafficManager.class.getResource("/").getPath() + app2Name + "." + domainName + ".cer";
System.out.println("Creating a self-signed certificate " + pfxPath + "...");
Utils.createCertificate(cerPath, pfxPath, domainName, CERT_PASSWORD, "*." + domainName);
//============================================================
// Create 3 app service plans in 3 regions
System.out.println("Creating app service plan " + plan1Name + " in US West...");
AppServicePlan plan1 = createAppServicePlan(plan1Name, Region.US_WEST);
System.out.println("Created app service plan " + plan1.name());
Utils.print(plan1);
System.out.println("Creating app service plan " + plan2Name + " in Europe West...");
AppServicePlan plan2 = createAppServicePlan(plan2Name, Region.EUROPE_WEST);
System.out.println("Created app service plan " + plan2.name());
Utils.print(plan1);
System.out.println("Creating app service plan " + plan3Name + " in Asia East...");
AppServicePlan plan3 = createAppServicePlan(plan3Name, Region.ASIA_SOUTHEAST);
System.out.println("Created app service plan " + plan2.name());
Utils.print(plan1);
//============================================================
// Create 5 web apps under these 3 app service plans
System.out.println("Creating web app " + app1Name + "...");
WebApp app1 = createWebApp(app1Name, plan1);
System.out.println("Created web app " + app1.name());
Utils.print(app1);
System.out.println("Creating another web app " + app2Name + "...");
WebApp app2 = createWebApp(app2Name, plan2);
System.out.println("Created web app " + app2.name());
Utils.print(app2);
System.out.println("Creating another web app " + app3Name + "...");
WebApp app3 = createWebApp(app3Name, plan3);
System.out.println("Created web app " + app3.name());
Utils.print(app3);
System.out.println("Creating another web app " + app3Name + "...");
WebApp app4 = createWebApp(app4Name, plan1);
System.out.println("Created web app " + app4.name());
Utils.print(app4);
System.out.println("Creating another web app " + app3Name + "...");
WebApp app5 = createWebApp(app5Name, plan1);
System.out.println("Created web app " + app5.name());
Utils.print(app5);
//============================================================
// Create a traffic manager
System.out.println("Creating a traffic manager " + tmName + " for the web apps...");
TrafficManagerProfile trafficManager = azure.trafficManagerProfiles().define(tmName).withExistingResourceGroup(RG_NAME).withLeafDomainLabel(tmName).withTrafficRoutingMethod(TrafficRoutingMethod.PRIORITY).defineAzureTargetEndpoint("endpoint1").toResourceId(app1.id()).withRoutingPriority(1).attach().defineAzureTargetEndpoint("endpoint2").toResourceId(app2.id()).withRoutingPriority(2).attach().defineAzureTargetEndpoint("endpoint3").toResourceId(app3.id()).withRoutingPriority(3).attach().create();
System.out.println("Created traffic manager " + trafficManager.name());
Utils.print(trafficManager);
//============================================================
// Scale up the app service plans
System.out.println("Scaling up app service plan " + plan1Name + "...");
plan1.update().withCapacity(plan1.capacity() * 2).apply();
System.out.println("Scaled up app service plan " + plan1Name);
Utils.print(plan1);
System.out.println("Scaling up app service plan " + plan2Name + "...");
plan2.update().withCapacity(plan2.capacity() * 2).apply();
System.out.println("Scaled up app service plan " + plan2Name);
Utils.print(plan2);
System.out.println("Scaling up app service plan " + plan3Name + "...");
plan3.update().withCapacity(plan3.capacity() * 2).apply();
System.out.println("Scaled up app service plan " + plan3Name);
Utils.print(plan3);
return true;
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
try {
System.out.println("Deleting Resource Group: " + RG_NAME);
azure.resourceGroups().beginDeleteByName(RG_NAME);
System.out.println("Deleted Resource Group: " + RG_NAME);
} catch (NullPointerException npe) {
System.out.println("Did not create any resources in Azure. No clean up is necessary");
} catch (Exception g) {
g.printStackTrace();
}
}
return false;
}
use of com.microsoft.azure.management.appservice.WebApp in project azure-sdk-for-java by Azure.
the class ManageWebAppSqlConnection method runSample.
/**
* Main function which runs the actual sample.
* @param azure instance of the azure client
* @return true if sample runs successfully
*/
public static boolean runSample(Azure azure) {
// New resources
final String suffix = ".azurewebsites.net";
final String appName = SdkContext.randomResourceName("webapp1-", 20);
final String appUrl = appName + suffix;
final String sqlServerName = SdkContext.randomResourceName("jsdkserver", 20);
final String sqlDbName = SdkContext.randomResourceName("jsdkdb", 20);
final String admin = "jsdkadmin";
final String password = "StrongPass!123";
final String rgName = SdkContext.randomResourceName("rg1NEMV_", 24);
try {
//============================================================
// Create a sql server
System.out.println("Creating SQL server " + sqlServerName + "...");
SqlServer server = azure.sqlServers().define(sqlServerName).withRegion(Region.US_WEST).withNewResourceGroup(rgName).withAdministratorLogin(admin).withAdministratorPassword(password).create();
System.out.println("Created SQL server " + server.name());
//============================================================
// Create a sql database for the web app to use
System.out.println("Creating SQL database " + sqlDbName + "...");
SqlDatabase db = server.databases().define(sqlDbName).create();
System.out.println("Created SQL database " + db.name());
//============================================================
// Create a web app with a new app service plan
System.out.println("Creating web app " + appName + "...");
WebApp app = azure.webApps().define(appName).withRegion(Region.US_WEST).withExistingResourceGroup(rgName).withNewWindowsPlan(PricingTier.STANDARD_S1).withPhpVersion(PhpVersion.PHP5_6).defineSourceControl().withPublicGitRepository("https://github.com/ProjectNami/projectnami").withBranch("master").attach().withAppSetting("ProjectNami.DBHost", server.fullyQualifiedDomainName()).withAppSetting("ProjectNami.DBName", db.name()).withAppSetting("ProjectNami.DBUser", admin).withAppSetting("ProjectNami.DBPass", password).create();
System.out.println("Created web app " + app.name());
Utils.print(app);
//============================================================
// Allow web app to access the SQL server
System.out.println("Allowing web app " + appName + " to access SQL server...");
SqlServer.Update update = server.update();
for (String ip : app.outboundIPAddresses()) {
update = update.withNewFirewallRule(ip);
}
server = update.apply();
System.out.println("Firewall rules added for web app " + appName);
Utils.print(server);
System.out.println("Your WordPress app is ready.");
System.out.println("Please navigate to http://" + appUrl + " to finish the GUI setup. Press enter to exit.");
System.in.read();
return true;
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
try {
System.out.println("Deleting Resource Group: " + rgName);
azure.resourceGroups().beginDeleteByName(rgName);
System.out.println("Deleted Resource Group: " + rgName);
} catch (NullPointerException npe) {
System.out.println("Did not create any resources in Azure. No clean up is necessary");
} catch (Exception g) {
g.printStackTrace();
}
}
return false;
}
use of com.microsoft.azure.management.appservice.WebApp in project azure-sdk-for-java by Azure.
the class ManageWebAppStorageAccountConnection method runSample.
/**
* Main function which runs the actual sample.
* @param azure instance of the azure client
* @return true if sample runs successfully
*/
public static boolean runSample(Azure azure) {
// New resources
final String suffix = ".azurewebsites.net";
final String app1Name = SdkContext.randomResourceName("webapp1-", 20);
final String app1Url = app1Name + suffix;
final String storageName = SdkContext.randomResourceName("jsdkstore", 20);
final String containerName = SdkContext.randomResourceName("jcontainer", 20);
final String rgName = SdkContext.randomResourceName("rg1NEMV_", 24);
try {
//============================================================
// Create a storage account for the web app to use
System.out.println("Creating storage account " + storageName + "...");
StorageAccount storageAccount = azure.storageAccounts().define(storageName).withRegion(Region.US_WEST).withNewResourceGroup(rgName).create();
String accountKey = storageAccount.getKeys().get(0).value();
String connectionString = String.format("DefaultEndpointsProtocol=https;AccountName=%s;AccountKey=%s", storageAccount.name(), accountKey);
System.out.println("Created storage account " + storageAccount.name());
//============================================================
// Upload a few files to the storage account blobs
System.out.println("Uploading 2 blobs to container " + containerName + "...");
CloudBlobContainer container = setUpStorageAccount(connectionString, containerName);
uploadFileToContainer(container, "helloworld.war", ManageWebAppStorageAccountConnection.class.getResource("/helloworld.war").getPath());
uploadFileToContainer(container, "install_apache.sh", ManageWebAppStorageAccountConnection.class.getResource("/install_apache.sh").getPath());
System.out.println("Uploaded 2 blobs to container " + container.getName());
//============================================================
// Create a web app with a new app service plan
System.out.println("Creating web app " + app1Name + "...");
WebApp app1 = azure.webApps().define(app1Name).withRegion(Region.US_WEST).withExistingResourceGroup(rgName).withNewWindowsPlan(PricingTier.STANDARD_S1).withJavaVersion(JavaVersion.JAVA_8_NEWEST).withWebContainer(WebContainer.TOMCAT_8_0_NEWEST).withConnectionString("storage.connectionString", connectionString, ConnectionStringType.CUSTOM).withAppSetting("storage.containerName", containerName).create();
System.out.println("Created web app " + app1.name());
Utils.print(app1);
//============================================================
// Deploy a web app that connects to the storage account
// Source code: https://github.com/jianghaolu/azure-samples-blob-explorer
System.out.println("Deploying azure-samples-blob-traverser.war to " + app1Name + " through FTP...");
Utils.uploadFileToFtp(app1.getPublishingProfile(), "azure-samples-blob-traverser.war", ManageWebAppStorageAccountConnection.class.getResourceAsStream("/azure-samples-blob-traverser.war"));
System.out.println("Deployment azure-samples-blob-traverser.war to web app " + app1.name() + " completed");
Utils.print(app1);
// warm up
System.out.println("Warming up " + app1Url + "/azure-samples-blob-traverser...");
curl("http://" + app1Url + "/azure-samples-blob-traverser");
Thread.sleep(5000);
System.out.println("CURLing " + app1Url + "/azure-samples-blob-traverser...");
System.out.println(curl("http://" + app1Url + "/azure-samples-blob-traverser"));
return true;
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
} finally {
try {
System.out.println("Deleting Resource Group: " + rgName);
azure.resourceGroups().beginDeleteByName(rgName);
System.out.println("Deleted Resource Group: " + rgName);
} catch (NullPointerException npe) {
System.out.println("Did not create any resources in Azure. No clean up is necessary");
} catch (Exception g) {
g.printStackTrace();
}
}
return false;
}
Aggregations