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; } }
public async Task OnGet() { var account = await _amazonSecurityTokenService.GetCallerIdentityAsync(new GetCallerIdentityRequest()); await LoadDashBoardsAsync(account.Account); }