Пример #1
0
            public override async Task <Context> Execute(Context context)
            {
                var getCallerResult = await sts.GetCallerIdentityAsync(new GetCallerIdentityRequest());

                var accountId = getCallerResult.Account;
                var region    = Environment.GetEnvironmentVariable("AWS_DEFAULT_REGION") ?? "us-west-2";

                var bucketName = $"{typeof(SimpleCalculator).Name}-{region}-{accountId}".ToLower();

                if (!s3.DoesS3BucketExistAsync(bucketName).Result)
                {
                    await s3.PutBucketAsync(
                        new PutBucketRequest
                    {
                        BucketName      = bucketName,
                        UseClientRegion = true
                    });
                }

                var putResult = await s3.PutObjectAsync(new PutObjectRequest
                {
                    BucketName  = bucketName,
                    Key         = "state.json",
                    ContentType = "application/json",
                    ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256,
                    ContentBody = JsonConvert.SerializeObject(context)
                });

                return(context);
            }
        public async Task <Role> EnsureRoleExistsAsync(RoleName roleName)
        {
            var identityResponse =
                await _securityTokenServiceClient.GetCallerIdentityAsync(new GetCallerIdentityRequest());

            var accountArn = new AwsAccountArn(identityResponse.Account);

            var request = CreateRoleRequest(accountArn, roleName);

            try
            {
                var response = await _client.CreateRoleAsync(request);

                if (response.HttpStatusCode != HttpStatusCode.OK)
                {
                    var metadata = string.Join(", ",
                                               response.ResponseMetadata.Metadata.Select(m => $"{m.Key}:{m.Value}"));
                    throw new Exception(
                              $"Error creating role: \"{roleName}\". Status code was {response.HttpStatusCode}, metadata: {metadata}");
                }

                return(response.Role);
            }
            catch (EntityAlreadyExistsException)
            {
                // Role exists we are happy
                var getRoleRequest = new GetRoleRequest {
                    RoleName = roleName
                };
                var getRoleResponse = await _client.GetRoleAsync(getRoleRequest);

                return(getRoleResponse.Role);
            }
        }
 private Amazon.SecurityToken.Model.GetCallerIdentityResponse CallAWSServiceOperation(IAmazonSecurityTokenService client, Amazon.SecurityToken.Model.GetCallerIdentityRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS Security Token Service (STS)", "GetCallerIdentity");
     try
     {
         #if DESKTOP
         return(client.GetCallerIdentity(request));
         #elif CORECLR
         return(client.GetCallerIdentityAsync(request).GetAwaiter().GetResult());
         #else
                 #error "Unknown build edition"
         #endif
     }
     catch (AmazonServiceException exc)
     {
         var webException = exc.InnerException as System.Net.WebException;
         if (webException != null)
         {
             throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
         }
         throw;
     }
 }
Пример #4
0
        public async Task OnGet()
        {
            var account = await _amazonSecurityTokenService.GetCallerIdentityAsync(new GetCallerIdentityRequest());

            await LoadDashBoardsAsync(account.Account);
        }