GVKun编程网logo

AWS CloudFormation和Windows Server 2008 R2用于引导文件下载(安装aws cli)

12

如果您想了解AWSCloudFormation和WindowsServer2008R2用于引导文件下载的相关知识,那么本文是一篇不可错过的文章,我们将对安装awscli进行全面详尽的解释,并且为您提供

如果您想了解AWS CloudFormation和Windows Server 2008 R2用于引导文件下载的相关知识,那么本文是一篇不可错过的文章,我们将对安装aws cli进行全面详尽的解释,并且为您提供关于com.amazonaws.services.cloudformation.AmazonCloudFormationClientBuilder的实例源码、com.amazonaws.services.cloudformation.AmazonCloudFormationClient的实例源码、com.amazonaws.services.cloudformation.AmazonCloudFormation的实例源码、windows-server-2008 – Server Foundation 2012计算机可以作为运行Server Foundation 2008的计算机的备份域控制器吗?的有价值的信息。

本文目录一览:

AWS CloudFormation和Windows Server 2008 R2用于引导文件下载(安装aws cli)

AWS CloudFormation和Windows Server 2008 R2用于引导文件下载(安装aws cli)

AWS最近发布了一个新的AMI,在Windows Server 2008 R2上默认安装了CloudFormation工具。 AMI本身可以在这里find:[ https://aws.amazon.com/amis/microsoft-windows-server-2008-r2-base-cloudformation]

当在一个CloudFormation模板中直接使用这个AMI并启动堆栈时,我能够轻松启动我的堆栈,并且实例在S3启动时没有任何问题地下载我的文件,所有由cfn-init命令创build的文件夹也可以如预期那样。

但是,如果我修改AMI以自定义(只启用IIS)并重新创build一个新的AMI,并在模板中使用此AMI,则文件不会被下载,其他文件夹也不会由cfn-init命令创build可见。

有什么build议么 ?! 我错过了什么?

需要FtpGetFile的例子,不工作

Windows使用代理从URL批量下载文件

Microsoft安全login框下载Word文档时

Curl命令不会下载文件(linux mint)

Perl SDL Windows安装

如何跟踪文件下载

如何从命令行下载python?

HTML下载和文本提取

权限在下载可执行文件时有时会被拒绝

更新多千兆字节程序(DVD履行?更新软件?)的最佳方法

最可能的原因是自定义AMI是在不使用EC2Config服务的 Bundle选项卡的情况下创建的 。

Windows上的CloudFormaion支持取决于EC2Config服务在首次启动时运行用户数据中指定的命令的功能。 该功能在第一次启动后自动被禁用,以便后续的启动不会导致重新运行相同的命令。

如果使用EC2Config的Bundle选项卡创建自定义AMI,则可确保生成的AMI启用了用户数据命令执行功能。 因此,有必要(并且总是推荐)使用EC2Config的Bundle选项卡来创建自定义的AMI。

希望这可以帮助。

谢谢,Shon

com.amazonaws.services.cloudformation.AmazonCloudFormationClientBuilder的实例源码

com.amazonaws.services.cloudformation.AmazonCloudFormationClientBuilder的实例源码

项目:aem-orchestrator    文件:AwsConfig.java   
@Bean
public AmazonCloudFormation amazonCloudFormationClient(final AWSCredentialsProvider awsCredentialsProvider,final ClientConfiguration awsClientConfig,final Region awsRegion) {
    return AmazonCloudFormationClientBuilder.standard()
        .withCredentials(awsCredentialsProvider)
        .withClientConfiguration(awsClientConfig)
        .withRegion(awsRegion.getName())
        .build();
}
项目:cfnassist    文件:FacadeFactory.java   
private void createAmazonapiclients() {
       cfnClient = AmazonCloudFormationClientBuilder.defaultClient();
       ec2Client = AmazonEC2ClientBuilder.defaultClient();
       snsClient = AmazonSNSClientBuilder.defaultClient();
       sqsClient = AmazonSQSClientBuilder.defaultClient();
       elbClient = AmazonElasticLoadBalancingClientBuilder.defaultClient();
       s3Client = AmazonS3ClientBuilder.defaultClient();
       rdsClient = AmazonRDSClientBuilder.defaultClient();
       iamClient = AmazonIdentityManagementClientBuilder.defaultClient();
}
项目:aws-sam-gradle    文件:DeployService.java   
public DeployService(SamConfig config) {
    this(config,config.getAwsClientFactory().create(AmazonCloudFormationClientBuilder.standard()));
}
项目:cfnassist    文件:EnvironmentSetupForTests.java   
public static AmazonCloudFormation createCFNClient() {
       return AmazonCloudFormationClientBuilder.defaultClient();
}

com.amazonaws.services.cloudformation.AmazonCloudFormationClient的实例源码

com.amazonaws.services.cloudformation.AmazonCloudFormationClient的实例源码

项目:cerberus-serverless-components    文件:CloudFrontLogEventHandler.java   
public CloudFrontLogEventHandler(AmazonCloudFormationClient cloudFormationClient,AmazonS3Client amazonS3Client,AWSWAF awsWaf) {

    cloudFormationClient.setRegion(Region.getRegion(Regions.US_WEST_2));
    this.amazonS3Client = amazonS3Client;
    objectMapper = new ObjectMapper();
    objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

    // New processors would need there own ip sets as there is a hard limit of 1000 ips and the
    // RateLimitingProcessor truncates the set and removes any ips from the set that it doesn't kNow about
    // see CloudFormationDefinedParams
    logEventProcessors.add(new RateLimitingProcessor(objectMapper,awsWaf,amazonS3Client));
    logEventProcessors.add(new GoogleAnalyticsKPIProcessor());
    logEventProcessors.add(new TlsverificationProcessor());
}
项目:cerberus-lifecycle-cli    文件:CreateCloudFrontSecurityGroupUpdaterLambdaOperation.java   
@Inject
public CreateCloudFrontSecurityGroupUpdaterLambdaOperation(final CloudFormationService cloudFormationService,final EnvironmentMetadata environmentMetadata,@Named(CF_OBJECT_MAPPER) final ObjectMapper cloudformationObjectMapper,AWSLambda awsLambda,AmazonS3 amazonS3) {

    this.cloudFormationService = cloudFormationService;
    this.cloudformationObjectMapper = cloudformationObjectMapper;
    this.environmentMetadata = environmentMetadata;
    this.awsLambda = awsLambda;
    this.amazonS3 = amazonS3;

    final Region region = Region.getRegion(Regions.US_EAST_1);
    AmazonCloudFormation amazonCloudFormation = new AmazonCloudFormationClient();
    amazonCloudFormation.setRegion(region);
    amazonSNS = new AmazonSNSClient();
    amazonSNS.setRegion(region);
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundle.java   
public CfSignalResourceBundle() {
  cloudFormationsupplier = (cfSignalResourceConfig) -> {
    AmazonCloudFormation amazonCloudFormation = internalCloudFormation.get();

    if (amazonCloudFormation != null) {
      return amazonCloudFormation;
    }

    return internalCloudFormation.updateAndGet((unused) -> {

      AmazonCloudFormationClient amazonCloudFormationClient = new AmazonCloudFormationClient();

      String awsRegion = cfSignalResourceConfig.getAwsRegion();
      Region region;
      if (Strings.isNullOrEmpty(awsRegion)) {
        region = Regions.getCurrentRegion();
      }
      else {
        region = Region.getRegion(Regions.fromName(awsRegion));
      }
      amazonCloudFormationClient.setRegion(region);

      return amazonCloudFormationClient;
    });
  };
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void parseInternal_stackConfigurationWithExternallyConfiguredCloudFormationClient_returnsConfiguredStackWithExternallyConfiguredClient() throws Exception {
    //Arrange
    DefaultListablebeanfactory beanfactory = new DefaultListablebeanfactory();
    XmlBeanDeFinitionReader reader = new XmlBeanDeFinitionReader(beanfactory);

    reader.loadBeanDeFinitions(new ClassPathResource(getClass().getSimpleName() + "-withCustomCloudFormationClient.xml",getClass()));

    AmazonCloudFormation amazonCloudFormationMock = beanfactory.getBean(AmazonCloudFormation.class);
    when(amazonCloudFormationMock.listStackResources(new ListStackResourcesRequest().withStackName("test"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));
    when(amazonCloudFormationMock.describeStacks(new DescribeStacksRequest().withStackName("test"))).
            thenReturn(new DescribeStacksResult().withStacks(new Stack()));


    //Act
    StackResourceRegistry stackResourceRegistry = beanfactory.getBean(StackResourceRegistry.class);

    //Assert
    assertNotNull(stackResourceRegistry);
    assertFalse(beanfactory.containsBeanDeFinition(getBeanName(AmazonCloudFormationClient.class.getName())));
    verify(amazonCloudFormationMock,times(1)).listStackResources(new ListStackResourcesRequest().withStackName("test"));
    beanfactory.getBean("customStackTags");
    verify(amazonCloudFormationMock,times(1)).describeStacks(new DescribeStacksRequest().withStackName("test"));
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private List<CloudResource> getCloudResources(AuthenticatedContext ac,CloudStack stack,String cFStackName,AmazonCloudFormationClient client,AmazonEC2Client amazonEC2Client,AmazonAutoScalingClient amazonASClient,boolean mapPublicIpOnLaunch) {
    List<CloudResource> cloudResources = new ArrayList<>();
    AmazonCloudFormationClient cloudFormationClient = awsClient.createCloudFormationClient(new AwsCredentialView(ac.getCloudCredential()),ac.getCloudContext().getLocation().getRegion().value());
    scheduleStatusChecks(stack,ac,cloudFormationClient);
    suspendAutoScaling(ac,stack);
    if (mapPublicIpOnLaunch) {
        Map<String,String> eipAllocationIds = getElasticIpAllocationIds(cFStackName,client);
        List<Group> gateways = getGatewayGroups(stack.getGroups());
        for (Group gateway : gateways) {
            List<String> eips = getEipsForGatewayGroup(eipAllocationIds,gateway);
            List<String> instanceIds = getInstancesForGroup(ac,amazonASClient,client,gateway);
            associateElasticIpsToInstances(amazonEC2Client,eips,instanceIds);
        }
    }
    return cloudResources;
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private void scheduleStatusChecks(CloudStack stack,AuthenticatedContext ac,AmazonCloudFormationClient cloudFormationClient) {
    for (Group group : stack.getGroups()) {
        String asGroupName = cfStackUtil.getAutoscalingGroupName(ac,cloudFormationClient,group.getName());
        LOGGER.info("Polling Auto Scaling group until new instances are ready. [stack: {},asGroup: {}]",ac.getCloudContext().getId(),asGroupName);
        PollTask<Boolean> task = awsPollTaskFactory.newASGroupStatusCheckerTask(ac,asGroupName,group.getInstancesSize(),awsClient,cfStackUtil);
        try {
            Boolean statePollerResult = task.call();
            if (!task.completed(statePollerResult)) {
                syncPollingScheduler.schedule(task);
            }
        } catch (Exception e) {
            throw new CloudConnectorException(e.getMessage(),e);
        }
    }
}
项目:cloudbreak    文件:AwsMetadataCollector.java   
@Override
public List<CloudVmMetaDataStatus> collect(AuthenticatedContext ac,List<CloudResource> resources,List<CloudInstance> vms) {
    List<CloudVmMetaDataStatus> cloudVmMetaDataStatuses = new ArrayList<>();
    try {
        String region = ac.getCloudContext().getLocation().getRegion().value();
        AmazonCloudFormationClient amazonCFClient =
                awsClient.createCloudFormationClient(new AwsCredentialView(ac.getCloudCredential()),region);
        AmazonAutoScalingClient amazonASClient =
                awsClient.createAutoScalingClient(new AwsCredentialView(ac.getCloudCredential()),region);
        AmazonEC2Client amazonEC2Client =
                awsClient.createAccess(new AwsCredentialView(ac.getCloudCredential()),region);

        //contains all instances
        ListMultimap<String,CloudInstance> groupByInstanceGroup = groupByInstanceGroup(vms);

        for (String key : groupByInstanceGroup.keySet()) {
            List<CloudInstance> cloudInstances = groupByInstanceGroup.get(key);
            cloudVmMetaDataStatuses.addAll(collectGroupMetaData(ac,amazonEC2Client,amazonCFClient,key,cloudInstances));
        }

        return cloudVmMetaDataStatuses;
    } catch (RuntimeException e) {
        throw new CloudConnectorException(e.getMessage(),e);
    }
}
项目:cloudbreak    文件:AwsCreateVpcNetworkTest.java   
private List<Output> getoutputForRequest(String vpcStackName,AmazonCloudFormationClient client) {
    int tried = 0;
    while (tried < MAX_TRY) {
        LOGGER.info("checking vpc stack creation result,tried: " + tried + '/' + MAX_TRY);
        DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest();
        describeStacksRequest.withStackName(vpcStackName);
        Stack resultStack = client.describeStacks(describeStacksRequest).getStacks().get(0);
        StackStatus stackStatus = StackStatus.valueOf(resultStack.getStackStatus());
        if (Failed_STATUSES.contains(stackStatus)) {
            LOGGER.error("stack creation Failed: ",stackStatus);
            throw new RuntimeException();
        } else if (CREATE_COMPLETE.equals(stackStatus)) {
            return resultStack.getoutputs();
        }
        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            LOGGER.error("thread sleep interrupted",e);
        }
        tried++;
    }
    throw new RuntimeException("vpc creation timed out");
}
项目:cerberus-lifecycle-cli    文件:CerberusModule.java   
/**
 * Binds all the Amazon services used.
 */
@Override
protected void configure() {
    final Region region = Region.getRegion(Regions.fromName(regionName));
    bind(AmazonEC2.class).toInstance(createAmazonClientInstance(AmazonEC2Client.class,region));
    bind(AmazonCloudFormation.class).toInstance(createAmazonClientInstance(AmazonCloudFormationClient.class,region));
    bind(AmazonIdentityManagement.class).toInstance(createAmazonClientInstance(AmazonIdentityManagementClient.class,region));
    bind(AWSKMS.class).toInstance(createAmazonClientInstance(AWSKMSClient.class,region));
    bind(AmazonS3.class).toInstance(createAmazonClientInstance(AmazonS3Client.class,region));
    bind(AmazonAutoScaling.class).toInstance(createAmazonClientInstance(AmazonAutoScalingClient.class,region));
    bind(AWSSecurityTokenService.class).toInstance(createAmazonClientInstance(AWSSecurityTokenServiceClient.class,region));
    bind(AWSLambda.class).toInstance(createAmazonClientInstance(AWSLambdaClient.class,region));
    bind(AmazonSNS.class).toInstance(createAmazonClientInstance(AmazonSNSClient.class,region));
}
项目:lambadaframework    文件:Cloudformation.java   
protected AmazonCloudFormationClient getCloudFormationClient() {
    if (null != cloudformationClient) {
        return cloudformationClient;
    }

    return cloudformationClient = new AmazonCloudFormationClient(getAWSCredentialsProvideChain()).withRegion(Region.getRegion(Regions.fromName(deployment.getRegion())));
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void parseInternal_withCustomregion_shouldConfigureDefaultClientWithCustomregion() throws Exception {
    //Arrange
    DefaultListablebeanfactory registry = new DefaultListablebeanfactory();
    XmlBeanDeFinitionReader reader = new XmlBeanDeFinitionReader(registry);

    //Act
    reader.loadBeanDeFinitions(new ClassPathResource(getClass().getSimpleName() + "-custom-region.xml",getClass()));

    // Assert
    AmazonCloudFormationClient amazonCloudFormation = registry.getBean(AmazonCloudFormationClient.class);
    assertEquals("https://" + Region.getRegion(Regions.SA_EAST_1).getServiceEndpoint("cloudformation"),ReflectionTestUtils.getField(amazonCloudFormation,"endpoint").toString());
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void parseInternal_withCustomregionProvider_shouldConfigureDefaultClientWithCustomregionReturnedByProvider() throws Exception {
    //Arrange
    DefaultListablebeanfactory registry = new DefaultListablebeanfactory();
    XmlBeanDeFinitionReader reader = new XmlBeanDeFinitionReader(registry);

    //Act
    reader.loadBeanDeFinitions(new ClassPathResource(getClass().getSimpleName() + "-custom-region-provider.xml",getClass()));

    // Assert
    AmazonCloudFormationClient amazonCloudFormation = registry.getBean(AmazonCloudFormationClient.class);
    assertEquals("https://" + Region.getRegion(Regions.AP_SOUTHEAST_2).getServiceEndpoint("cloudformation"),"endpoint").toString());
}
项目:aws-ant-tasks    文件:UpdateStackTask.java   
public void execute() {
    checkParams();
    AmazonCloudFormationClient client = getorCreateClient(AmazonCloudFormationClient.class);
    UpdateStackRequest request = new UpdateStackRequest()
            .withStackName(stackName).withStackPolicyBody(stackPolicyBody)
            .withStackPolicyURL(stackPolicyURL)
            .withTemplateBody(templateBody).withTemplateURL(templateURL)
            .withStackPolicyDuringUpdateBody(stackPolicyDuringUpdateBody)
            .withStackPolicyDuringUpdateURL(stackPolicyDuringUpdateURL)
            .withUsePrevIoUstemplate(usePrevIoUstemplate);

    if (capabilities.size() > 0) {
        request.setCapabilities(capabilities);
    }
    if (parameters.size() > 0) {
        request.setParameters(parameters);
    }
    if (notificationArns.size() > 0) {
        request.setNotificationARNs(notificationArns);
    }

    try {
        client.updateStack(request);
        System.out.println("Update stack " + stackName
                + " request submitted.");
    } catch (Exception e) {
        throw new BuildException("Could not update stack: "
                + e.getMessage(),e);
    }
}
项目:aws-ant-tasks    文件:CreateStackTask.java   
public void execute() {
    checkParams();
    AmazonCloudFormationClient client = getorCreateClient(AmazonCloudFormationClient.class);
    CreateStackRequest createStackRequest = new CreateStackRequest()
            .withdisableRollback(disableRollback).withOnFailure(onFailure)
            .withStackName(stackName).withStackPolicyBody(stackPolicyBody)
            .withStackPolicyURL(stackPolicyURL)
            .withTemplateBody(templateBody).withTemplateURL(templateURL)
            .withTimeoutInMinutes(timeoutInMinutes);

    if (capabilities.size() > 0) {
        createStackRequest.setCapabilities(capabilities);
    }
    if (parameters.size() > 0) {
        createStackRequest.setParameters(parameters);
    }
    if (tags.size() > 0) {
        createStackRequest.setTags(tags);
    }
    try {
        client.createStack(createStackRequest);
        System.out.println("Create stack " + stackName
                + " request submitted.");
        if(waitForCreation) {
            WaitForStackToReachStateTask.waitForCloudFormationStackToReachStatus(client,stackName,CREATE_COMPLETE);
        }
    } catch (Exception e) {
        throw new BuildException(
                "Could not create stack " + e.getMessage(),e);
    }
}
项目:aws-ant-tasks    文件:SetStackPolicyTask.java   
public void execute() {
    checkParams();
    AmazonCloudFormationClient client = getorCreateClient(AmazonCloudFormationClient.class);
    SetStackPolicyRequest setStackPolicyRequest = new SetStackPolicyRequest()
            .withStackName(stackName).withStackPolicyBody(stackPolicyBody)
            .withStackPolicyURL(stackPolicyURL);
    try {
        client.setStackPolicy(setStackPolicyRequest);
        System.out.println("Successfully set stack policy");
    } catch (Exception e) {
        throw new BuildException("Could not set the stack policy "
                + e.getMessage(),e);
    }
}
项目:aws-ant-tasks    文件:WaitForStackToReachStateTask.java   
public void execute() {
    checkParams();
    AmazonCloudFormationClient client = getorCreateClient(AmazonCloudFormationClient.class);
    if (!waitForCloudFormationStackToReachStatus(client,status)) {
        throw new BuildException("The stack update or creation Failed");
    }
}
项目:aws-ant-tasks    文件:WaitForStackToReachStateTask.java   
public static boolean waitForCloudFormationStackToReachStatus(
        AmazonCloudFormationClient client,String stackName,String status) {
    int count = 0;
    while (true) {
        if (count++ == 100) {
            System.out
                    .println(stackName + " never reached state " + status);
            return false;
        }
        try {
            Thread.sleep(1000 * 30);
        } catch (InterruptedException e) {
            System.out.println(e.getMessage());
            return false;
        }
        String stackStatus = client
                .describeStacks(
                        new DescribeStacksRequest()
                                .withStackName(stackName)).getStacks()
                .get(0).getStackStatus();
        if (stackStatus.equals(status)) {
            return true;
        } else if (stackStatus.contains(Failed)) {
            System.out.println("The process Failed with status " + stackStatus);
            return false;
        }
        System.out.println(stackName + " is in status " + stackStatus);
    }
}
项目:aws-ant-tasks    文件:CloudFormationTests.java   
@BeforeClass
public static void setUp() {
    client = new AmazonCloudFormationClient();
    project = new Project();
    SetUpCloudFormationTestsTask setUpTask = new SetUpCloudFormationTestsTask();
    setUpTask.setProject(project);
    setUpTask.execute();
}
项目:aws-ant-tasks    文件:TearDownCloudFormationTestsTask.java   
public void execute() {
    checkParams();
    AmazonEC2Client ec2Client = getorCreateClient(AmazonEC2Client.class);
    ec2Client
            .deleteKeyPair(new DeleteKeyPairRequest().withKeyName(keyName));
    AmazonCloudFormationClient cloudFormationClient = getorCreateClient(AmazonCloudFormationClient.class);
    cloudFormationClient.deleteStack(new DeleteStackRequest()
            .withStackName(stackName));
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private void saveS3AccessRoleArn(AuthenticatedContext ac,PersistenceNotifier resourceNotifier) {
    AwsInstanceProfileView awsInstanceProfileView = new AwsInstanceProfileView(stack);
    if (awsInstanceProfileView.isEnableInstanceProfileStrategy() && !awsInstanceProfileView.isinstanceProfileAvailable()) {
        String s3AccessRoleArn = getCreatedS3AccessRoleArn(cFStackName,client);
        CloudResource s3AccessRoleArnCloudResource = new Builder().type(ResourceType.S3_ACCESS_ROLE_ARN).name(s3AccessRoleArn).build();
        resourceNotifier.notifyAllocation(s3AccessRoleArnCloudResource,ac.getCloudContext());
    }
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private String getCreatedVpc(String cFStackName,AmazonCloudFormationClient client) {
    Map<String,String> outputs = getoutputs(cFStackName,client);
    if (outputs.containsKey(CREATED_VPC)) {
        return outputs.get(CREATED_VPC);
    } else {
        String outputKeyNotFound = String.format("Vpc Could not be found in the Cloudformation stack('%s') output.",cFStackName);
        throw new CloudConnectorException(outputKeyNotFound);
    }
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private String getCreatedsubnet(String cFStackName,client);
    if (outputs.containsKey(CREATED_subnet)) {
        return outputs.get(CREATED_subnet);
    } else {
        String outputKeyNotFound = String.format("subnet Could not be found in the Cloudformation stack('%s') output.",cFStackName);
        throw new CloudConnectorException(outputKeyNotFound);
    }
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private String getCreatedS3AccessRoleArn(String cFStackName,client);
    if (outputs.containsKey(S3_ACCESS_ROLE)) {
        return outputs.get(S3_ACCESS_ROLE);
    } else {
        String outputKeyNotFound = String.format("S3AccessRole arn Could not be found in the Cloudformation stack('%s') output.",cFStackName);
        throw new CloudConnectorException(outputKeyNotFound);
    }
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private Map<String,String> getElasticIpAllocationIds(String cFStackName,client);
    Map<String,String> elasticIpIds = outputs.entrySet().stream().filter(e -> e.getKey().startsWith(CFS_OUTPUT_EIPALLOCATION_ID))
            .collect(Collectors.toMap(e -> e.getKey(),e -> e.getValue()));
    if (!elasticIpIds.isEmpty()) {
        return elasticIpIds;
    } else {
        String outputKeyNotFound = String.format("Allocation Id of Elastic IP Could not be found in the Cloudformation stack('%s') output.",String> getoutputs(String cFStackName,AmazonCloudFormationClient client) {
    DescribeStacksRequest describeStacksRequest = new DescribeStacksRequest().withStackName(cFStackName);
    String outputNotFound = String.format("Couldn't get Cloudformation stack's('%s') output",cFStackName);
    List<Output> cfStackOutputs = client.describeStacks(describeStacksRequest).getStacks()
            .stream().findFirst().orElseThrow(getCloudConnectorExceptionsupplier(outputNotFound)).getoutputs();
    return cfStackOutputs.stream().collect(Collectors.toMap(Output::getoutputKey,Output::getoutputValue));
}
项目:cloudbreak    文件:CloudFormationStackUtil.java   
public String getAutoscalingGroupName(AuthenticatedContext ac,AmazonCloudFormationClient amazonCFClient,String instanceGroup) {
    String cFStackName = getCfStackName(ac);
    DescribeStackResourceResult asGroupResource = amazonCFClient.describeStackResource(new DescribeStackResourceRequest()
            .withStackName(cFStackName)
            .withLogicalResourceId(String.format("AmbariNodes%s",instanceGroup.replaceAll("_",""))));
    return asGroupResource.getStackResourceDetail().getPhysicalResourceId();
}
项目:cloudbreak    文件:AwsClient.java   
public AmazonCloudFormationClient createCloudFormationClient(AwsCredentialView awsCredential,String regionName) {
    AmazonCloudFormationClient client = isRoleAssumerequired(awsCredential)
            ? new AmazonCloudFormationClient(credentialClient.retrieveCachedSessionCredentials(awsCredential))
            : new AmazonCloudFormationClient(createAwsCredentials(awsCredential));
    client.setRegion(RegionUtils.getRegion(regionName));
    return client;
}
项目:cloudbreak    文件:AwsMetadataCollector.java   
private List<CloudVmMetaDataStatus> collectGroupMetaData(AuthenticatedContext ac,String groupName,List<CloudInstance> cloudInstances) {

    List<CloudVmMetaDataStatus> cloudVmMetaDataStatuses = new ArrayList<>();

    String asGroupName = cloudFormationStackUtil.getAutoscalingGroupName(ac,groupName);
    List<String> instanceIds = cloudFormationStackUtil.getInstanceIds(amazonASClient,asGroupName);

    DescribeInstancesRequest instancesRequest = cloudFormationStackUtil.createDescribeInstancesRequest(instanceIds);
    DescribeInstancesResult instancesResult = amazonEC2Client.describeInstances(instancesRequest);

    //contains instances with instanceId
    Map<String,CloudInstance> mapByInstanceId = mapByInstanceId(cloudInstances);

    //contains instances with privateId (without instanceId)
    Queue<CloudInstance> untrackedInstances = untrackedInstances(cloudInstances);

    for (Reservation reservation : instancesResult.getReservations()) {
        LOGGER.info("Number of instances found in reservation: {}",reservation.getInstances().size());
        for (Instance instance : reservation.getInstances()) {

            String instanceId = instance.getInstanceId();
            CloudInstance cloudInstance = ensureInstanceTag(mapByInstanceId,instance,instanceId,untrackedInstances,amazonEC2Client);
            if (cloudInstance != null) {
                CloudInstanceMetaData md = new CloudInstanceMetaData(instance.getPrivateIpAddress(),instance.getPublicIpAddress());
                CloudVmInstanceStatus cloudVmInstanceStatus = new CloudVmInstanceStatus(cloudInstance,InstanceStatus.CREATED);
                CloudVmMetaDataStatus cloudVmMetaDataStatus = new CloudVmMetaDataStatus(cloudVmInstanceStatus,md);
                cloudVmMetaDataStatuses.add(cloudVmMetaDataStatus);
            }
        }
    }

    return cloudVmMetaDataStatuses;
}
项目:cloudbreak    文件:AwsstackValidator.java   
@Override
public void validate(AuthenticatedContext ac,CloudStack cloudStack) {
    AwsCredentialView credentialView = new AwsCredentialView(ac.getCloudCredential());
    String regionName = ac.getCloudContext().getLocation().getRegion().value();
    AmazonCloudFormationClient cfClient = awsClient.createCloudFormationClient(credentialView,regionName);
    String cFStackName = cfStackUtil.getCfStackName(ac);
    try {
        cfClient.describeStacks(new DescribeStacksRequest().withStackName(cFStackName));
        throw new CloudConnectorException(String.format("Stack is already exists with the given name: %s",cFStackName));
    } catch (AmazonServiceException ignored) {

    }
}
项目:cloudbreak    文件:AbstractAwsstackStatusCheckerTask.java   
AbstractAwsstackStatusCheckerTask(AuthenticatedContext authenticatedContext,AmazonCloudFormationClient cfClient,StackStatus successstatus,StackStatus errorStatus,List<StackStatus> stackerrorStatuses,String cloudFormationStackName,boolean cancellable) {
    super(authenticatedContext,cancellable);
    this.cfClient = cfClient;
    this.successstatus = successstatus;
    this.errorStatus = errorStatus;
    this.stackerrorStatuses = stackerrorStatuses;
    this.cloudFormationStackName = cloudFormationStackName;

    describeStacksRequest = new DescribeStacksRequest().withStackName(cloudFormationStackName);
    stackEventsRequest = new DescribeStackEventsRequest().withStackName(cloudFormationStackName);
}
项目:cloudbreak    文件:AwsDeleteVpcTest.java   
@AfterSuite
@Parameters({ "regionName","vpcStackName" })
public void deleteNetwork(String regionName,@Optional("it-vpc-stack") String vpcStackName) {
    AmazonCloudFormationClient client = new AmazonCloudFormationClient();
    client.setRegion(RegionUtils.getRegion(regionName));
    client.deleteStack(new DeleteStackRequest().withStackName(vpcStackName));
}
项目:cloudbreak    文件:AwsCreateVpcNetworkTest.java   
@Test
@Parameters({ "networkName","description","publicInAccount","regionName","vpcStackName","vpcName","existingsubnet" })
public void createNetwork(String networkName,@Optional("") String description,@Optional("false") boolean publicInAccount,String regionName,@Optional("it-vpc-stack") String vpcStackName,@Optional("it-vpc") String vpcName,boolean existingsubnet) {
    AmazonCloudFormationClient client = new AmazonCloudFormationClient();
    client.setRegion(RegionUtils.getRegion(regionName));

    Map<String,Object> networkMap = new HashMap<>();

    String vpcCreationjson = existingsubnet ?  "public_vpc_with_subnet.json" : "public_vpc_wihout_subnet.json";

    try (InputStream vpcJsonInputStream = getClass().getResourceAsstream("/cloudformation/" + vpcCreationjson)) {
        String vpcCFTemplateString = IoUtils.toString(vpcJsonInputStream);
        CreateStackRequest stackRequest = createStackRequest(vpcStackName,vpcName,vpcCFTemplateString);
        client.createStack(stackRequest);

        List<Output> outputForRequest = getoutputForRequest(vpcStackName,client);
        if (existingsubnet) {
            networkMap.put("vpcId",outputForRequest.get(0).getoutputValue());
            networkMap.put("subnetId",outputForRequest.get(1).getoutputValue());
        } else {
            networkMap.put("vpcId",outputForRequest.get(1).getoutputValue());
            networkMap.put("internetGatewayId",outputForRequest.get(0).getoutputValue());
        }
    } catch (IOException e) {
        LOGGER.error("can't read vpc cloudformation template file");
        throw new RuntimeException(e);
    }

    NetworkRequest networkRequest = new NetworkRequest();
    networkRequest.setName(networkName);
    networkRequest.setDescription(description);
    networkRequest.setParameters(networkMap);
    if (!existingsubnet) {
        networkRequest.setsubnetCIDR("10.0.0.0/24");
    }
    networkRequest.setCloudplatform("AWS");
    String id = getCloudbreakClient().networkEndpoint().postPrivate(networkRequest).getId().toString();
    getItContext().putContextParam(CloudbreakITContextConstants.NETWORK_ID,id,true);
}
项目:cerberus-serverless-components    文件:CloudFrontLogEventHandler.java   
public CloudFrontLogEventHandler() {
    this(new AmazonCloudFormationClient(),new AmazonS3Client(),new AWSWAFClient());
}
项目:spring-cloud-stream-app-starters    文件:AwsIntegrationTestStackRule.java   
@Override
protected void before() throws Throwable {
    try {
        String awsCredentialsDir = System.getProperty("aws.credentials.path");
        File awsCredentialsFile = new File(awsCredentialsDir,"aws.credentials.properties");
        Properties awsCredentials = new Properties();
        awsCredentials.load(new FileReader(awsCredentialsFile));
        String accessKey = awsCredentials.getProperty("cloud.aws.credentials.accessKey");
        String secretKey = awsCredentials.getProperty("cloud.aws.credentials.secretKey");
        this.cloudFormation = new AmazonCloudFormationClient(new BasicAWSCredentials(accessKey,secretKey));

        YamlPropertiesfactorybean yamlPropertiesfactorybean = new YamlPropertiesfactorybean();
        yamlPropertiesfactorybean.setResources(new ClassPathResource("application.yml"));
        Properties applicationProperties = yamlPropertiesfactorybean.getobject();

        this.stackName = applicationProperties.getProperty("cloud.aws.stack.name");

        after();

        ClassPathResource stackTemplate = new ClassPathResource("AwsIntegrationTestTemplate.json");
        String templateBody = FilecopyUtils.copyToString(new InputStreamReader(stackTemplate.getInputStream()));

        this.cloudFormation.createStack(
                new CreateStackRequest()
                        .withTemplateBody(templateBody)
                        .withOnFailure(OnFailure.DELETE)
                        .withStackName(this.stackName));

        waitForCompletion();

        System.setProperty("cloud.aws.credentials.accessKey",accessKey);
        System.setProperty("cloud.aws.credentials.secretKey",secretKey);
    }
    catch (Exception e) {
        if (!(e instanceof AssumptionViolatedException)) {
            Assume.assumeTrue("Can't perform AWS integration test because of: " + e.getMessage(),false);
        }
        else {
            throw e;
        }
    }
}
项目:enhanced-snapshots    文件:AmazonConfigProvider.java   
protected AmazonCloudFormation amazonCloudFormationClient() {
    AmazonCloudFormation amazonCloudFormation = new AmazonCloudFormationClient(amazonCredentialsProvider());
    amazonCloudFormation.setRegion(getRegion());
    return amazonCloudFormation;
}
项目:enhanced-snapshots    文件:AmazonConfigProviderDEV.java   
@Override
protected AmazonCloudFormation amazonCloudFormationClient() {
    AmazonCloudFormation amazonCloudFormation = new AmazonCloudFormationClient(awsCredentials());
    amazonCloudFormation.setRegion(getRegion());
    return amazonCloudFormation;
}
项目:spring-cloud-aws    文件:ContextStackConfiguration.java   
@Bean
@ConditionalOnMissingAmazonClient(AmazonCloudFormation.class)
public AmazonWebserviceClientfactorybean<AmazonCloudFormationClient> amazonCloudFormation() {
    return new AmazonWebserviceClientfactorybean<>(AmazonCloudFormationClient.class,this.credentialsProvider,this.regionProvider);
}
项目:cloudbreak    文件:AwsResourceConnector.java   
@Override
public List<CloudResourceStatus> launch(AuthenticatedContext ac,PersistenceNotifier resourceNotifier,AdjustmentType adjustmentType,Long threshold) throws Exception {
    createKeyPair(ac,stack);
    String cFStackName = cfStackUtil.getCfStackName(ac);
    AwsCredentialView credentialView = new AwsCredentialView(ac.getCloudCredential());
    String regionName = ac.getCloudContext().getLocation().getRegion().value();
    AmazonCloudFormationClient cfClient = awsClient.createCloudFormationClient(credentialView,regionName);
    AmazonEC2Client amazonEC2Client = awsClient.createAccess(credentialView,regionName);
    AwsNetworkView awsNetworkView = new AwsNetworkView(stack.getNetwork());
    boolean existingVPC = awsNetworkView.isExistingVPC();
    boolean existingsubnet = awsNetworkView.isExistingsubnet();
    boolean mapPublicIpOnLaunch = isMapPublicOnLaunch(awsNetworkView,amazonEC2Client);
    try {
        cfClient.describeStacks(new DescribeStacksRequest().withStackName(cFStackName));
        LOGGER.info("Stack already exists: {}",cFStackName);
    } catch (AmazonServiceException ignored) {
        CloudResource cloudFormationStack = new Builder().type(ResourceType.CLOUDFORMATION_STACK).name(cFStackName).build();
        resourceNotifier.notifyAllocation(cloudFormationStack,ac.getCloudContext());

        String cidr = stack.getNetwork().getsubnet().getCidr();
        String subnet = isNoCIDRProvided(existingVPC,existingsubnet,cidr) ? findNonOverLappingCIDR(ac,stack) : cidr;
        AwsInstanceProfileView awsInstanceProfileView = new AwsInstanceProfileView(stack);
        ModelContext modelContext = new ModelContext()
                .withAuthenticatedContext(ac)
                .withStack(stack)
                .withExistingVpc(existingVPC)
                .withSnapshotId(getEbsSnapshotIdIfNeeded(ac,stack))
                .withExistingIGW(awsNetworkView.isExistingIGW())
                .withExistingsubnetCidr(existingsubnet ? getExistingsubnetCidr(ac,stack) : null)
                .withExistingsubnetIds(existingsubnet ? awsNetworkView.getsubnetList() : null)
                .mapPublicIpOnLaunch(mapPublicIpOnLaunch)
                .withEnableInstanceProfile(awsInstanceProfileView.isEnableInstanceProfileStrategy())
                .withInstanceProfileAvailable(awsInstanceProfileView.isinstanceProfileAvailable())
                .withTemplate(stack.getTemplate())
                .withDefaultsubnet(subnet);
        String cfTemplate = cloudFormationTemplateBuilder.build(modelContext);
        LOGGER.debug("CloudFormationTemplate: {}",cfTemplate);
        cfClient.createStack(createCreateStackRequest(ac,stack,cFStackName,subnet,cfTemplate));
    }
    LOGGER.info("CloudFormation stack creation request sent with stack name: '{}' for stack: '{}'",ac.getCloudContext().getId());
    AmazonAutoScalingClient asClient = awsClient.createAutoScalingClient(credentialView,regionName);
    PollTask<Boolean> task = awsPollTaskFactory.newAwsCreateStackStatusCheckerTask(ac,cfClient,asClient,CREATE_COMPLETE,CREATE_Failed,ERROR_STATUSES,cFStackName);
    try {
        Boolean statePollerResult = task.call();
        if (!task.completed(statePollerResult)) {
            syncPollingScheduler.schedule(task);
        }
    } catch (RuntimeException e) {
        throw new CloudConnectorException(e.getMessage(),e);
    }

    AmazonAutoScalingClient amazonASClient = awsClient.createAutoScalingClient(credentialView,regionName);
    saveS3AccessRoleArn(ac,resourceNotifier);
    saveGeneratedsubnet(ac,resourceNotifier);
    List<CloudResource> cloudResources = getCloudResources(ac,mapPublicIpOnLaunch);
    return check(ac,cloudResources);
}
项目:cloudbreak    文件:AwsResourceConnector.java   
@Override
public List<CloudResourceStatus> upscale(AuthenticatedContext ac,List<CloudResource> resources) {
    resumeAutoScaling(ac,stack);

    AmazonAutoScalingClient amazonASClient = awsClient.createAutoScalingClient(new AwsCredentialView(ac.getCloudCredential()),ac.getCloudContext().getLocation().getRegion().value());
    AmazonCloudFormationClient cloudFormationClient = awsClient.createCloudFormationClient(new AwsCredentialView(ac.getCloudCredential()),ac.getCloudContext().getLocation().getRegion().value());
    AmazonEC2Client amazonEC2Client = awsClient.createAccess(new AwsCredentialView(ac.getCloudCredential()),ac.getCloudContext().getLocation().getRegion().value());

    List<Group> scaledGroups = getScaledGroups(stack);
    for (Group group : scaledGroups) {
        String asGroupName = cfStackUtil.getAutoscalingGroupName(ac,group.getName());

        amazonASClient.updateAutoScalingGroup(new UpdateAutoScalingGroupRequest()
                .withAutoScalingGroupName(asGroupName)
                .withMaxSize(group.getInstancesSize())
                .withDesiredCapacity(group.getInstancesSize()));
        LOGGER.info("Updated Auto Scaling group's desiredCapacity: [stack: '{}',to: '{}']",resources.size());
    }
    scheduleStatusChecks(stack,stack);

    boolean mapPublicIpOnLaunch = isMapPublicOnLaunch(new AwsNetworkView(stack.getNetwork()),amazonEC2Client);
    List<Group> gateways = getGatewayGroups(scaledGroups);
    if (mapPublicIpOnLaunch && !gateways.isEmpty()) {
        String cFStackName = getCloudFormationStackResource(resources).getName();
        Map<String,cloudFormationClient);
        for (Group gateway : gateways) {
            List<String> eips = getEipsForGatewayGroup(eipAllocationIds,gateway);
            List<String> freeEips = getFreeIps(eips,amazonEC2Client);
            List<String> instanceIds = getInstancesForGroup(ac,gateway);
            List<String> newInstances = instanceIds.stream().filter(
                    iid -> gateway.getInstances().stream().noneMatch(inst -> iid.equals(inst.getInstanceId()))).collect(Collectors.toList());
            associateElasticIpsToInstances(amazonEC2Client,freeEips,newInstances);
        }
    }

    return singletonList(new CloudResourceStatus(getCloudFormationStackResource(resources),ResourceStatus.UPDATED));
}
项目:cloudbreak    文件:AwsResourceConnector.java   
private List<String> getInstancesForGroup(AuthenticatedContext ac,Group group) {
    return cfStackUtil.getInstanceIds(amazonASClient,cfStackUtil.getAutoscalingGroupName(ac,group.getName()));
}

com.amazonaws.services.cloudformation.AmazonCloudFormation的实例源码

com.amazonaws.services.cloudformation.AmazonCloudFormation的实例源码

项目:cerberus-lifecycle-cli    文件:CreateCloudFrontSecurityGroupUpdaterLambdaOperation.java   
@Inject
public CreateCloudFrontSecurityGroupUpdaterLambdaOperation(final CloudFormationService cloudFormationService,final EnvironmentMetadata environmentMetadata,@Named(CF_OBJECT_MAPPER) final ObjectMapper cloudformationObjectMapper,AWSLambda awsLambda,AmazonS3 amazonS3) {

    this.cloudFormationService = cloudFormationService;
    this.cloudformationObjectMapper = cloudformationObjectMapper;
    this.environmentMetadata = environmentMetadata;
    this.awsLambda = awsLambda;
    this.amazonS3 = amazonS3;

    final Region region = Region.getRegion(Regions.US_EAST_1);
    AmazonCloudFormation amazonCloudFormation = new AmazonCloudFormationClient();
    amazonCloudFormation.setRegion(region);
    amazonSNS = new AmazonSNSClient();
    amazonSNS.setRegion(region);
}
项目:aws-maven-plugin    文件:CloudFormationDeployer.java   
private void deleteFailedCreate(final String stackName,AmazonCloudFormation cf,int statusPollingIntervalMs) {
    {
        // delete an application in ROLLBACK_COMPLETE status

        ListStacksResult r = cf.listStacks();
        r.getStackSummaries() //
                .stream() //
                .filter(x -> x.getStackName().equals(stackName)) //
                .limit(1) //
                .filter(x -> StackStatus.ROLLBACK_COMPLETE.toString().equals(x.getStackStatus())) //
                .forEach(x -> {
                    log.info("Deleting stack with status " + x.getStackStatus()); //
                    cf.deleteStack(new DeleteStackRequest().withStackName(stackName));
                    waitForCompletion(cf,stackName,statusPollingIntervalMs,log);
                });

    }
}
项目:aws-maven-plugin    文件:CloudFormationDeployer.java   
private void displayStatusHistory(final String stackName,AmazonCloudFormation cf) {
    {
        // list history of application
        log.info("------------------------------");
        log.info("Stack history - " + stackName);
        log.info("------------------------------");
        ListStacksResult r = cf.listStacks();
        r.getStackSummaries() //
                .stream() //
                .filter(x -> x.getStackName().equals(stackName)) //
                .forEach(x -> {
                    log.info("id=" + x.getStackId());
                    log.info("  status=" + x.getStackStatus());
                    log.info("  created=" + x.getCreationTime());
                    log.info("  update=" + x.getLastUpdatedTime());
                    log.info("  deleted=" + x.getDeletionTime());
                });
        log.info("");
    }
}
项目:aws-maven-plugin    文件:CloudFormationDeployer.java   
private void displayEvents(final String stackName,long sinceTime) {
    // list history of application
    log.info("------------------------------");
    log.info("Event history - " + stackName);
    log.info("------------------------------");
    DescribeStackEventsResult r = cf.describeStackEvents(new DescribeStackEventsRequest().withStackName(stackName));
    r.getStackEvents() //
            .stream() //
            .sorted((a,b) -> a.getTimestamp().compareto(b.getTimestamp())) //
            .filter(x -> x.getTimestamp().getTime() >= sinceTime - TimeUnit.MINUTES.toMillis(1)) //
            .forEach(x -> {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddd HH:mm:ss");
                log.info(sdf.format(x.getTimestamp()) + " " + x.getResourceStatus() + " " + x.getResourceType());
                if (x.getResourceStatusReason() != null) {
                    log.info("  reason=" + x.getResourceStatusReason());
                    if (x.getResourceProperties() != null) {
                        log.info("  properties=\n");
                        log.info(Util.formatJson(x.getResourceProperties()));
                    }
                }
            });
}
项目:lambadaframework    文件:Cloudformation.java   
public CloudFormationOutput getStackOutputs(AmazonCloudFormation stackbuilder,String stackName) {
    DescribeStacksRequest wait = new DescribeStacksRequest();
    wait.setStackName(stackName);
    List<Stack> stacks = getCloudFormationClient().describeStacks(wait).getStacks();

    CloudFormationOutput cloudFormationOutput = new CloudFormationOutput();

    for (Stack stack : stacks) {
        if (stack.getStackName().equals(stackName)) {
            stack.getoutputs().forEach(output -> {
                if (output.getoutputKey().equals(LAMBDA_EXECUTION_IAM_RESOURCE_NAME)) {
                    cloudFormationOutput.setLambdaExecutionRole(output.getoutputValue());
                }

                if (output.getoutputKey().equals(LAMBDA_EXECUTION_NAME)) {
                    cloudFormationOutput.setLambdaFunctionArn(output.getoutputValue());
                }
            });
            return cloudFormationOutput;
        }
    }
    throw new RuntimeException("UnkNown Cloudformation error. Try deploying.");

}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundle.java   
public CfSignalResourceBundle() {
  cloudFormationsupplier = (cfSignalResourceConfig) -> {
    AmazonCloudFormation amazonCloudFormation = internalCloudFormation.get();

    if (amazonCloudFormation != null) {
      return amazonCloudFormation;
    }

    return internalCloudFormation.updateAndGet((unused) -> {

      AmazonCloudFormationClient amazonCloudFormationClient = new AmazonCloudFormationClient();

      String awsRegion = cfSignalResourceConfig.getAwsRegion();
      Region region;
      if (Strings.isNullOrEmpty(awsRegion)) {
        region = Regions.getCurrentRegion();
      }
      else {
        region = Region.getRegion(Regions.fromName(awsRegion));
      }
      amazonCloudFormationClient.setRegion(region);

      return amazonCloudFormationClient;
    });
  };
}
项目:spring-cloud-aws    文件:StackResourceUserTagsfactorybeanTest.java   
@Test
public void getobject_stackWithTagsDefined_createTagsMap() throws Exception {
    //Arrange
    AmazonCloudFormation cloudFormation = mock(AmazonCloudFormation.class);
    StackNameProvider stackNameProvider = mock(StackNameProvider.class);

    when(stackNameProvider.getStackName()).thenReturn("testStack");
    when(cloudFormation.describeStacks(new DescribeStacksRequest().withStackName("testStack"))).
            thenReturn(new DescribeStacksResult().withStacks(new Stack().withTags(
                    new Tag().withKey("key1").withValue("value1"),new Tag().withKey("key2").withValue("value2")
            )));


    StackResourceUserTagsfactorybean factorybean = new StackResourceUserTagsfactorybean(cloudFormation,stackNameProvider);

    //Act
    factorybean.afterPropertiesSet();
    Map<String,String> factorybeanObject = factorybean.getobject();

    //Assert
    assertEquals("value1",factorybeanObject.get("key1"));
    assertEquals("value2",factorybeanObject.get("key2"));
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void parseInternal_stackConfigurationWithExternallyConfiguredCloudFormationClient_returnsConfiguredStackWithExternallyConfiguredClient() throws Exception {
    //Arrange
    DefaultListablebeanfactory beanfactory = new DefaultListablebeanfactory();
    XmlBeanDeFinitionReader reader = new XmlBeanDeFinitionReader(beanfactory);

    reader.loadBeanDeFinitions(new ClassPathResource(getClass().getSimpleName() + "-withCustomCloudFormationClient.xml",getClass()));

    AmazonCloudFormation amazonCloudFormationMock = beanfactory.getBean(AmazonCloudFormation.class);
    when(amazonCloudFormationMock.listStackResources(new ListStackResourcesRequest().withStackName("test"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));
    when(amazonCloudFormationMock.describeStacks(new DescribeStacksRequest().withStackName("test"))).
            thenReturn(new DescribeStacksResult().withStacks(new Stack()));


    //Act
    StackResourceRegistry stackResourceRegistry = beanfactory.getBean(StackResourceRegistry.class);

    //Assert
    assertNotNull(stackResourceRegistry);
    assertFalse(beanfactory.containsBeanDeFinition(getBeanName(AmazonCloudFormationClient.class.getName())));
    verify(amazonCloudFormationMock,times(1)).listStackResources(new ListStackResourcesRequest().withStackName("test"));
    beanfactory.getBean("customStackTags");
    verify(amazonCloudFormationMock,times(1)).describeStacks(new DescribeStacksRequest().withStackName("test"));
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void resourceIdResolver_stackConfiguration_resourceIdResolverBeanExposed() {
    // Arrange
    GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext();
    AmazonCloudFormation amazonCloudFormation = Mockito.mock(AmazonCloudFormation.class);

    when(amazonCloudFormation.listStackResources(new ListStackResourcesRequest().withStackName("IntegrationTestStack"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));

    applicationContext.load(new ClassPathResource(getClass().getSimpleName() + "-staticStackName.xml",getClass()));
    applicationContext.getbeanfactory().registerSingleton(getBeanName(AmazonCloudFormation.class.getName()),amazonCloudFormation);

    applicationContext.refresh();

    // Act
    ResourceIdResolver resourceIdResolver = applicationContext.getBean(ResourceIdResolver.class);

    // Assert
    assertthat(resourceIdResolver,is(not(nullValue())));
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void stackResourceRegistry_stackConfigurationWithStaticName_stackResourceRegistryBeanExposedUnderStaticStackName() throws Exception {
    // Arrange
    GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext();
    AmazonCloudFormation amazonCloudFormation = Mockito.mock(AmazonCloudFormation.class);

    when(amazonCloudFormation.listStackResources(new ListStackResourcesRequest().withStackName("IntegrationTestStack"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));

    applicationContext.load(new ClassPathResource(getClass().getSimpleName() + "-staticStackName.xml",amazonCloudFormation);

    applicationContext.refresh();

    // Act
    StackResourceRegistry staticStackNameProviderBasedStackResourceRegistry = applicationContext.getBean("IntegrationTestStack",StackResourceRegistry.class);

    // Assert
    assertthat(staticStackNameProviderBasedStackResourceRegistry,is(not(nullValue())));
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void resourceIdResolverResolvetoPhysicalResourceId_stackConfigurationWithStaticNameAndLogicalResourceIdOfExistingResourceProvided_returnsPhysicalResourceId() {
    // Arrange
    GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext();
    AmazonCloudFormation amazonCloudFormation = Mockito.mock(AmazonCloudFormation.class);

    when(amazonCloudFormation.listStackResources(new ListStackResourcesRequest().withStackName("IntegrationTestStack"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(
                    new StackResourceSummary().withLogicalResourceId("EmptyBucket").withPhysicalResourceId("integrationteststack-emptybucket-foo")));

    applicationContext.load(new ClassPathResource(getClass().getSimpleName() + "-staticStackName.xml",amazonCloudFormation);

    applicationContext.refresh();

    ResourceIdResolver resourceIdResolver = applicationContext.getBean(ResourceIdResolver.class);

    // Act
    String physicalResourceId = resourceIdResolver.resolvetoPhysicalResourceId("EmptyBucket");

    // Assert
    assertthat(physicalResourceId,startsWith("integrationteststack-emptybucket-"));
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void resourceIdResolverResolvetoPhysicalResourceId_logicalResourceIdOfNonExistingResourceProvided_returnsLogicalResourceIdAsPhysicalResourceId() {
    // Arrange
    GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext();
    AmazonCloudFormation amazonCloudFormation = Mockito.mock(AmazonCloudFormation.class);

    when(amazonCloudFormation.listStackResources(new ListStackResourcesRequest().withStackName("IntegrationTestStack"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));

    applicationContext.load(new ClassPathResource(getClass().getSimpleName() + "-staticStackName.xml",amazonCloudFormation);

    applicationContext.refresh();
    ResourceIdResolver resourceIdResolver = applicationContext.getBean(ResourceIdResolver.class);

    // Act
    String physicalResourceId = resourceIdResolver.resolvetoPhysicalResourceId("nonExistingLogicalResourceId");

    // Assert
    assertthat(physicalResourceId,is("nonExistingLogicalResourceId"));
}
项目:cfnassist    文件:TestPictureGeneration.java   
@Before
public void beforeEachTestRuns() {
    AWSCredentialsProvider credentialsProvider = new DefaultAWSCredentialsProviderChain();
    AmazonEC2 ec2Client = EnvironmentSetupForTests.createEC2Client();
    AmazonElasticLoadBalancing awsElbClient = EnvironmentSetupForTests.createELBClient();
    AmazonCloudFormation cfnClient = EnvironmentSetupForTests.createCFNClient();
    AmazonRDS awsRdsClient = EnvironmentSetupForTests.createRDSClient();

    CloudClient cloudClient = new CloudClient(ec2Client,new DefaultAwsRegionProviderChain());
    LoadBalancerClient elbClient = new LoadBalancerClient(awsElbClient);
    VpcRepository vpcRepository = new VpcRepository(cloudClient);

    CloudFormationClient cloudFormationClient = new CloudFormationClient(cfnClient);
    cloudRepository = new CloudRepository(cloudClient);
    ResourceRepository cfnRepository = new CfnRepository(cloudFormationClient,cloudRepository,"CfnAssist");

    elbRepository = new ELBRepository(elbClient,vpcRepository,cfnRepository);
    rdsClient = new RDSClient(awsRdsClient);
}
项目:cfnassist    文件:EnvironmentSetupForTests.java   
public static StackNameAndId createTemporarySimpleStack(AmazonCloudFormation cfnClient,String vpcId,String arn) throws IOException {
    CreateStackRequest createStackRequest = new CreateStackRequest();
    createStackRequest.setStackName(TEMPORARY_STACK);
    File file = new File(FilesForTesting.SIMPLE_STACK);
    createStackRequest.setTemplateBody(FileUtils.readFiletoString(file,Charset.defaultCharset()));
    Collection<Parameter> parameters = new LinkedList<>();
    parameters.add(createParam("env",EnvironmentSetupForTests.ENV));
    parameters.add(createParam("vpc",vpcId));
    if (!arn.isEmpty()) {
        Collection<String> notificationARNs = new LinkedList<>();
        notificationARNs.add(arn);
        logger.debug("Adding arn subscription "+ arn);
        createStackRequest.setNotificationARNs(notificationARNs);
    }
    createStackRequest.setParameters(parameters);
    CreateStackResult result = cfnClient.createStack(createStackRequest);
    return new StackNameAndId(TEMPORARY_STACK,result.getStackId());
}
项目:aem-orchestrator    文件:AwsConfig.java   
@Bean
public AmazonCloudFormation amazonCloudFormationClient(final AWSCredentialsProvider awsCredentialsProvider,final ClientConfiguration awsClientConfig,final Region awsRegion) {
    return AmazonCloudFormationClientBuilder.standard()
        .withCredentials(awsCredentialsProvider)
        .withClientConfiguration(awsClientConfig)
        .withRegion(awsRegion.getName())
        .build();
}
项目:cerberus-lifecycle-cli    文件:CerberusModule.java   
/**
 * Binds all the Amazon services used.
 */
@Override
protected void configure() {
    final Region region = Region.getRegion(Regions.fromName(regionName));
    bind(AmazonEC2.class).toInstance(createAmazonClientInstance(AmazonEC2Client.class,region));
    bind(AmazonCloudFormation.class).toInstance(createAmazonClientInstance(AmazonCloudFormationClient.class,region));
    bind(AmazonIdentityManagement.class).toInstance(createAmazonClientInstance(AmazonIdentityManagementClient.class,region));
    bind(AWSKMS.class).toInstance(createAmazonClientInstance(AWSKMSClient.class,region));
    bind(AmazonS3.class).toInstance(createAmazonClientInstance(AmazonS3Client.class,region));
    bind(AmazonAutoScaling.class).toInstance(createAmazonClientInstance(AmazonAutoScalingClient.class,region));
    bind(AWSSecurityTokenService.class).toInstance(createAmazonClientInstance(AWSSecurityTokenServiceClient.class,region));
    bind(AWSLambda.class).toInstance(createAmazonClientInstance(AWSLambdaClient.class,region));
    bind(AmazonSNS.class).toInstance(createAmazonClientInstance(AmazonSNSClient.class,region));
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
  public void testSkip() {
    testConfig.cfSignalResourceConfig.setSkip(true);
//  purposefully null this to test for NPE
    testConfig.cfSignalResourceConfig.setStackName(null);

    AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

    new CfSignalResourceBundle(amazonCloudFormation).run(testConfig,environment);

    verifyZeroInteractions(amazonCloudFormation,lifecycleEnvironment);
    verify(testConfig).getCfSignalResourceConfig();
  }
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
public void testRunNoAWS() throws Exception {
  AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

  testConfig.cfSignalResourceConfig.setEc2InstanceId("");

  new CfSignalResourceBundle(amazonCloudFormation).run(testConfig,environment);

  verify(testConfig).getCfSignalResourceConfig();
  verifyZeroInteractions(lifecycleEnvironment,amazonCloudFormation);
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
public void testRunAWS() throws Exception {
  AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

  new CfSignalResourceBundle(amazonCloudFormation).run(testConfig,environment);

  verify(testConfig).getCfSignalResourceConfig();
  verify(lifecycleEnvironment).addLifeCycleListener(any(CfSignalResourceBundle.CfSignalResourceLifcycleListener.class));
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
public void lifecycleListenerDoesNotSignalOutsideCloudFormationUpdate() throws Exception {
  AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

  final String uniqueId = "i-123";
  testConfig.cfSignalResourceConfig.setEc2InstanceId(uniqueId);

  CfSignalResourceBundle cfSignalResourceBundle = new CfSignalResourceBundle(amazonCloudFormation);

  cfSignalResourceBundle.run(testConfig,environment);

  verify(testConfig).getCfSignalResourceConfig();

  verify(lifecycleEnvironment).addLifeCycleListener(listenerArgumentCaptor.capture());

  when(amazonCloudFormation.describeStackResource(any())).thenReturn(
      new DescribeStackResourceResult().withStackResourceDetail(
          new StackResourceDetail().withResourceStatus(ResourceStatus.UPDATE_COMPLETE)));

  listenerArgumentCaptor.getValue().lifeCycleStarted(mock(LifeCycle.class));

  verify(amazonCloudFormation)
    .describeStackResource(
        argThat(
          allOf(
            hasProperty("stackName",equalTo(testConfig.getCfSignalResourceConfig().getStackName())),hasProperty("logicalResourceId",equalTo(testConfig.getCfSignalResourceConfig().getAsgResourceName())))));
  verify(amazonCloudFormation,never()).signalResource(any());

  assertthat(cfSignalResourceBundle.getInternalCloudFormation(),nullValue());
}
项目:spring-cloud-aws    文件:ContextStackConfiguration.java   
@Bean
public StackResourceRegistryfactorybean stackResourceRegistryfactorybean(AmazonCloudFormation amazonCloudFormation) {
    if (StringUtils.hasText(this.annotationAttributes.getString("stackName"))) {
        return new StackResourceRegistryfactorybean(amazonCloudFormation,new StaticStackNameProvider(this.annotationAttributes.getString("stackName")));
    } else {
        return new StackResourceRegistryfactorybean(amazonCloudFormation,new AutoDetectingStackNameProvider(amazonCloudFormation,this.amazonEc2));
    }
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void stackResourceRegistry_stackConfigurationWithoutStaticName_stackResourceRegistryBeanExposedUnderGeneratedname() throws Exception {
    // Arrange
    HttpServer server = MetaDataServer.setupHttpServer();
    HttpContext httpContext = server.createContext("/latest/Meta-data/instance-id",new MetaDataServer.HttpResponseWriterHandler("foo"));

    GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext();
    AmazonCloudFormation amazonCloudFormation = Mockito.mock(AmazonCloudFormation.class);

    when(amazonCloudFormation.describeStackResources(new DescribeStackResourcesRequest().withPhysicalResourceId("foo"))).
            thenReturn(new DescribeStackResourcesResult().withStackResources(new StackResource().withStackName("test")));

    when(amazonCloudFormation.listStackResources(new ListStackResourcesRequest().withStackName("test"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(new StackResourceSummary()));

    applicationContext.load(new ClassPathResource(getClass().getSimpleName() + "-autoDetectStackName.xml",amazonCloudFormation);

    applicationContext.refresh();

    // Act
    StackResourceRegistry autoDetectingStackNameProviderBasedStackResourceRegistry = applicationContext.getBean("org.springframework.cloud.aws.core.env.stack.config.StackResourceRegistryfactorybean#0",StackResourceRegistry.class);

    // Assert
    assertthat(autoDetectingStackNameProviderBasedStackResourceRegistry,is(not(nullValue())));

    server.removeContext(httpContext);
}
项目:spring-cloud-aws    文件:StackConfigurationBeanDeFinitionParserTest.java   
@Test
public void resourceIdResolverResolvetoPhysicalResourceId_stackConfigurationWithoutStaticNameAndLogicalResourceIdOfExistingResourceProvided_returnsPhysicalResourceId() throws Exception {
    // Arrange
    HttpServer server = MetaDataServer.setupHttpServer();
    HttpContext httpContext = server.createContext("/latest/Meta-data/instance-id",new MetaDataServer.HttpResponseWriterHandler("foo"));

    GenericXmlApplicationContext applicationContext = new GenericXmlApplicationContext();
    AmazonCloudFormation amazonCloudFormation = Mockito.mock(AmazonCloudFormation.class);
    when(amazonCloudFormation.describeStackResources(new DescribeStackResourcesRequest().withPhysicalResourceId("foo"))).
            thenReturn(new DescribeStackResourcesResult().withStackResources(new StackResource().withStackName("test")));

    when(amazonCloudFormation.listStackResources(new ListStackResourcesRequest().withStackName("test"))).
            thenReturn(new ListStackResourcesResult().withStackResourceSummaries(
                    new StackResourceSummary().withLogicalResourceId("EmptyBucket").withPhysicalResourceId("integrationteststack-emptybucket-foo")));


    applicationContext.load(new ClassPathResource(getClass().getSimpleName() + "-autoDetectStackName.xml",startsWith("integrationteststack-emptybucket-"));

    server.removeContext(httpContext);
}
项目:cfnassist    文件:TestHaveValidTemplateFiles.java   
@Test
public void testAllTestCfnFilesAreValid() throws IOException,InterruptedException {
    AmazonCloudFormation cfnClient = EnvironmentSetupForTests.createCFNClient();
    CloudFormationClient cloudClient = new CloudFormationClient(cfnClient);
    File folder = new File("src/cfnScripts");

    assertTrue(folder.exists());    
    validateFolder(cloudClient,folder);
}
项目:aws-sam-gradle    文件:StackReadyWaitCondition.java   
StackReadyWaitCondition(AmazonCloudFormation cloudFormation,String stackName) {
    super(cloudFormation,stackName);
}
项目:aws-sam-gradle    文件:ChangeSetCreateCompleteWaitCondition.java   
public ChangeSetCreateCompleteWaitCondition(AmazonCloudFormation cloudFormation,String changeSetArn) {
    this.cloudFormation = cloudFormation;
    this.changeSetArn = changeSetArn;
}
项目:aws-sam-gradle    文件:StackDeletedWaitCondition.java   
StackDeletedWaitCondition(AmazonCloudFormation cloudFormation,stackName);
}
项目:aws-sam-gradle    文件:CloudFormationPollingService.java   
CloudFormationPollingService(AmazonCloudFormation cloudFormation,StatusPollingService pollingService) {
    this.cloudFormation = cloudFormation;
    this.pollingService = pollingService;
}
项目:aws-sam-gradle    文件:CloudFormationPollingService.java   
public CloudFormationPollingService(AmazonCloudFormation cloudFormation) {
    this(cloudFormation,new StatusPollingService());
}
项目:aws-sam-gradle    文件:StackStatusWaitCondition.java   
StackStatusWaitCondition(AmazonCloudFormation cloudFormation,String stackName) {
    this.cloudFormation = cloudFormation;
    this.stackName = stackName;
}
项目:aws-sam-gradle    文件:DeployService.java   
public DeployService(SamConfig config,AmazonCloudFormation cloudFormation) {
    this(config,new CloudformationService(cloudFormation),new CloudFormationPollingService(cloudFormation),new TemplateService());
}
项目:aws-sam-gradle    文件:CloudformationService.java   
public CloudformationService(AmazonCloudFormation cloudFormation) {
    this.cloudFormation = cloudFormation;
}
项目:cerberus-lifecycle-cli    文件:CloudFormationService.java   
@Inject
public CloudFormationService(final AmazonCloudFormation cloudFormationClient,final EnvironmentMetadata environmentMetadata) {
    this.cloudFormationClient = cloudFormationClient;
    this.environmentMetadata = environmentMetadata;
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundle.java   
@Inject
public CfSignalResourceBundle(AmazonCloudFormation amazonCloudFormation) {
  checkNotNull(amazonCloudFormation);
  cloudFormationsupplier = (config) -> amazonCloudFormation;
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundle.java   
@VisibleForTesting
/*package-private*/ AmazonCloudFormation getInternalCloudFormation() {
  return internalCloudFormation.get();
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundle.java   
@VisibleForTesting
/*package-private*/ AmazonCloudFormation getCloudFormation(final CfSignalResourceConfig config) {
  return cloudFormationsupplier.apply(config);
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
public void lifecycleListenerSignalsSuccess() throws Exception {
  AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

  final String uniqueId = "i-123";
  testConfig.cfSignalResourceConfig.setEc2InstanceId(uniqueId);

  CfSignalResourceBundle cfSignalResourceBundle =
    new CfSignalResourceBundle(amazonCloudFormation);
  cfSignalResourceBundle.run(testConfig,environment);

  verify(testConfig).getCfSignalResourceConfig();

  verify(lifecycleEnvironment).addLifeCycleListener(listenerArgumentCaptor.capture());

  when(amazonCloudFormation.describeStackResource(any())).thenReturn(
      new DescribeStackResourceResult().withStackResourceDetail(
          new StackResourceDetail().withResourceStatus(ResourceStatus.UPDATE_IN_PROGRESS)));

  LifeCycle event = mock(LifeCycle.class);

  listenerArgumentCaptor.getValue().lifeCycleStarted(event);

  verify(amazonCloudFormation)
    .describeStackResource(
        argThat(
            allOf(
                hasProperty("stackName",equalTo(testConfig.getCfSignalResourceConfig().getAsgResourceName())))));
  verify(amazonCloudFormation)
    .signalResource(
      argThat(
        allOf(
          hasProperty("status",equalTo(ResourceSignalStatus.SUCCESS.toString())),hasProperty("stackName",equalTo(testConfig.getCfSignalResourceConfig().getAsgResourceName())),hasProperty("uniqueId",equalTo(uniqueId)))));

  assertthat(cfSignalResourceBundle.getInternalCloudFormation(),nullValue());
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
public void lifecycleListenerSignalsFailureOnStartup() throws Exception {
  AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

  final String uniqueId = "i-123";
  testConfig.cfSignalResourceConfig.setEc2InstanceId(uniqueId);

  CfSignalResourceBundle cfSignalResourceBundle =
    new CfSignalResourceBundle(amazonCloudFormation);
  cfSignalResourceBundle.run(testConfig,environment);

  verify(testConfig).getCfSignalResourceConfig();

  verify(lifecycleEnvironment).addLifeCycleListener(listenerArgumentCaptor.capture());

  when(amazonCloudFormation.describeStackResource(any())).thenReturn(
      new DescribeStackResourceResult().withStackResourceDetail(
          new StackResourceDetail().withResourceStatus(ResourceStatus.CREATE_IN_PROGRESS)));

  LifeCycle event = mock(LifeCycle.class);
  when(event.isstopping()).thenReturn(Boolean.FALSE);
  when(event.isstopped()).thenReturn(Boolean.FALSE);

  listenerArgumentCaptor.getValue().lifeCycleFailure(event,new Throwable("testing"));

  verify(amazonCloudFormation)
    .describeStackResource(
      argThat(
        allOf(
          hasProperty("stackName",equalTo(ResourceSignalStatus.FAILURE.toString())),nullValue());
}
项目:cf-signal-resource-bundle    文件:CfSignalResourceBundleTest.java   
@Test
public void lifecycleListenerDoesNotSignalFailureOnShutdown() throws Exception {
  AmazonCloudFormation amazonCloudFormation = mock(AmazonCloudFormation.class);

  final String uniqueId = "i-123";
  testConfig.cfSignalResourceConfig.setEc2InstanceId(uniqueId);

  new CfSignalResourceBundle(amazonCloudFormation).run(testConfig,environment);

  verify(testConfig).getCfSignalResourceConfig();

  verify(lifecycleEnvironment).addLifeCycleListener(listenerArgumentCaptor.capture());

  LifeCycle event = mock(LifeCycle.class);
  when(event.isstopping()).thenReturn(Boolean.TRUE);
  when(event.isstopped()).thenReturn(Boolean.FALSE);

  verifyZeroInteractions(amazonCloudFormation);
}
项目:enhanced-snapshots    文件:AmazonConfigProvider.java   
protected AmazonCloudFormation amazonCloudFormationClient() {
    AmazonCloudFormation amazonCloudFormation = new AmazonCloudFormationClient(amazonCredentialsProvider());
    amazonCloudFormation.setRegion(getRegion());
    return amazonCloudFormation;
}

windows-server-2008 – Server Foundation 2012计算机可以作为运行Server Foundation 2008的计算机的备份域控制器吗?

windows-server-2008 – Server Foundation 2012计算机可以作为运行Server Foundation 2008的计算机的备份域控制器吗?

在这个特定的环境中,我们有一个小型企业(10个用户办公室),希望建立一个域设置.已经有一台机器运行Server Foundation 2008.如果选择该机器作为域控制器,我们是否可以购买另一台运行的Foundation 2012作为备份,还是必须是Foundation 2008?
您可以在AD域中混合所有您喜欢的 Windows版本.唯一的限制是域和林的功能级别最多可以与使用的最旧的Windows版本相对应.

所以,是的,当然你可以做到这一点.

关于AWS CloudFormation和Windows Server 2008 R2用于引导文件下载安装aws cli的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于com.amazonaws.services.cloudformation.AmazonCloudFormationClientBuilder的实例源码、com.amazonaws.services.cloudformation.AmazonCloudFormationClient的实例源码、com.amazonaws.services.cloudformation.AmazonCloudFormation的实例源码、windows-server-2008 – Server Foundation 2012计算机可以作为运行Server Foundation 2008的计算机的备份域控制器吗?的相关信息,请在本站寻找。

本文标签: